0.5.7: Work on reducing app size a bit, some fixes/optimizations/improvements, and animations have been added to the UI
|
@ -10,8 +10,8 @@ android {
|
||||||
applicationId "net.mynero.wallet"
|
applicationId "net.mynero.wallet"
|
||||||
minSdkVersion 21
|
minSdkVersion 21
|
||||||
targetSdkVersion 34
|
targetSdkVersion 34
|
||||||
versionCode 50601
|
versionCode 50700
|
||||||
versionName "0.5.6.1 'Fluorine Fermi'"
|
versionName "0.5.7 'Fluorine Fermi'"
|
||||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||||
externalNativeBuild {
|
externalNativeBuild {
|
||||||
cmake {
|
cmake {
|
||||||
|
|
|
@ -2,6 +2,10 @@
|
||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:tools="http://schemas.android.com/tools">
|
xmlns:tools="http://schemas.android.com/tools">
|
||||||
|
|
||||||
|
<uses-feature
|
||||||
|
android:name="android.hardware.camera"
|
||||||
|
android:required="false" />
|
||||||
|
|
||||||
<uses-permission android:name="android.permission.INTERNET" />
|
<uses-permission android:name="android.permission.INTERNET" />
|
||||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
|
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
|
||||||
<uses-permission android:name="android.permission.CAMERA" />
|
<uses-permission android:name="android.permission.CAMERA" />
|
||||||
|
|
|
@ -1,834 +0,0 @@
|
||||||
<h1>Open Source Licenses</h1>
|
|
||||||
<h2>Licensed under the Apache License, Version 2.0</h2>
|
|
||||||
<h3>monerujo (https://github.com/m2049r/xmrwallet)</h3>
|
|
||||||
Copyright (c) 2017-2018 m2049r et al.
|
|
||||||
|
|
||||||
<h3>The Android Open Source Project</h3>
|
|
||||||
<ul>
|
|
||||||
<li>com.android.support:design</li>
|
|
||||||
<li>com.android.support:support-v4</li>
|
|
||||||
<li>com.android.support:appcompat-v7</li>
|
|
||||||
<li>com.android.support:recyclerview-v7</li>
|
|
||||||
<li>com.android.support:cardview-v7</li>
|
|
||||||
<li>com.android.support.constraint:constraint-layout</li>
|
|
||||||
<li>com.android.support:support-annotations</li>
|
|
||||||
<li>com.android.support:support-vector-drawable</li>
|
|
||||||
<li>com.android.support:animated-vector-drawable</li>
|
|
||||||
<li>com.android.support:transition</li>
|
|
||||||
<li>com.android.support:support-compat</li>
|
|
||||||
<li>com.android.support:support-media-compat</li>
|
|
||||||
<li>com.android.support:support-core-utils</li>
|
|
||||||
<li>com.android.support:support-core-ui</li>
|
|
||||||
<li>com.android.support:support-fragment</li>
|
|
||||||
<li>com.android.support.constraint:constraint-layout-solver</li>
|
|
||||||
</ul>
|
|
||||||
Copyright (c) The Android Open Source Project
|
|
||||||
|
|
||||||
<h3>OkHttp</h3>
|
|
||||||
Copyright (c) 2014 Square, Inc.
|
|
||||||
|
|
||||||
<h3>Timber</h3>
|
|
||||||
Copyright (c) 2013 Jake Wharton
|
|
||||||
|
|
||||||
<h3>com.google.zxing:core</h3>
|
|
||||||
Copyright (c) 2012 ZXing authors
|
|
||||||
|
|
||||||
<h3>me.dm7.barcodescanner</h3>
|
|
||||||
<ul>
|
|
||||||
<li>me.dm7.barcodescanner:core</li>
|
|
||||||
<li>me.dm7.barcodescanner:zxing</li>
|
|
||||||
</ul>
|
|
||||||
Copyright (c) 2014 Dushyanth Maguluru
|
|
||||||
|
|
||||||
<h3>AndroidLicensesPage (https://github.com/adamsp/AndroidLicensesPage)</h3>
|
|
||||||
Copyright (c) 2013 Adam Speakman
|
|
||||||
|
|
||||||
<h3>SwipeableRecyclerView (https://github.com/brnunes/SwipeableRecyclerView)</h3>
|
|
||||||
Copyright (c) 2015 Bruno R. Nunes
|
|
||||||
|
|
||||||
<h3>Apache License, Version 2.0, January 2004</h3>
|
|
||||||
http://www.apache.org/licenses/<br/>
|
|
||||||
<br/>
|
|
||||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION<br/>
|
|
||||||
<br/>
|
|
||||||
1. Definitions.<br/>
|
|
||||||
<br/>
|
|
||||||
"License" shall mean the terms and conditions for use, reproduction,
|
|
||||||
and distribution as defined by Sections 1 through 9 of this document.<br/>
|
|
||||||
<br/>
|
|
||||||
"Licensor" shall mean the copyright owner or entity authorized by
|
|
||||||
the copyright owner that is granting the License.<br/>
|
|
||||||
<br/>
|
|
||||||
"Legal Entity" shall mean the union of the acting entity and all
|
|
||||||
other entities that control, are controlled by, or are under common
|
|
||||||
control with that entity. For the purposes of this definition,
|
|
||||||
"control" means (i) the power, direct or indirect, to cause the
|
|
||||||
direction or management of such entity, whether by contract or
|
|
||||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
|
||||||
outstanding shares, or (iii) beneficial ownership of such entity.<br/>
|
|
||||||
<br/>
|
|
||||||
"You" (or "Your") shall mean an individual or Legal Entity
|
|
||||||
exercising permissions granted by this License.<br/>
|
|
||||||
<br/>
|
|
||||||
"Source" form shall mean the preferred form for making modifications,
|
|
||||||
including but not limited to software source code, documentation
|
|
||||||
source, and configuration files.<br/>
|
|
||||||
<br/>
|
|
||||||
"Object" form shall mean any form resulting from mechanical
|
|
||||||
transformation or translation of a Source form, including but
|
|
||||||
not limited to compiled object code, generated documentation,
|
|
||||||
and conversions to other media types.<br/>
|
|
||||||
<br/>
|
|
||||||
"Work" shall mean the work of authorship, whether in Source or
|
|
||||||
Object form, made available under the License, as indicated by a
|
|
||||||
copyright notice that is included in or attached to the work
|
|
||||||
(an example is provided in the Appendix below).<br/>
|
|
||||||
<br/>
|
|
||||||
"Derivative Works" shall mean any work, whether in Source or Object
|
|
||||||
form, that is based on (or derived from) the Work and for which the
|
|
||||||
editorial revisions, annotations, elaborations, or other modifications
|
|
||||||
represent, as a whole, an original work of authorship. For the purposes
|
|
||||||
of this License, Derivative Works shall not include works that remain
|
|
||||||
separable from, or merely link (or bind by name) to the interfaces of,
|
|
||||||
the Work and Derivative Works thereof.<br/>
|
|
||||||
<br/>
|
|
||||||
"Contribution" shall mean any work of authorship, including
|
|
||||||
the original version of the Work and any modifications or additions
|
|
||||||
to that Work or Derivative Works thereof, that is intentionally
|
|
||||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
|
||||||
or by an individual or Legal Entity authorized to submit on behalf of
|
|
||||||
the copyright owner. For the purposes of this definition, "submitted"
|
|
||||||
means any form of electronic, verbal, or written communication sent
|
|
||||||
to the Licensor or its representatives, including but not limited to
|
|
||||||
communication on electronic mailing lists, source code control systems,
|
|
||||||
and issue tracking systems that are managed by, or on behalf of, the
|
|
||||||
Licensor for the purpose of discussing and improving the Work, but
|
|
||||||
excluding communication that is conspicuously marked or otherwise
|
|
||||||
designated in writing by the copyright owner as "Not a Contribution."<br/>
|
|
||||||
<br/>
|
|
||||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
|
||||||
on behalf of whom a Contribution has been received by Licensor and
|
|
||||||
subsequently incorporated within the Work.<br/>
|
|
||||||
<br/>
|
|
||||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
|
||||||
this License, each Contributor hereby grants to You a perpetual,
|
|
||||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
|
||||||
copyright license to reproduce, prepare Derivative Works of,
|
|
||||||
publicly display, publicly perform, sublicense, and distribute the
|
|
||||||
Work and such Derivative Works in Source or Object form.<br/>
|
|
||||||
<br/>
|
|
||||||
3. Grant of Patent License. Subject to the terms and conditions of
|
|
||||||
this License, each Contributor hereby grants to You a perpetual,
|
|
||||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
|
||||||
(except as stated in this section) patent license to make, have made,
|
|
||||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
|
||||||
where such license applies only to those patent claims licensable
|
|
||||||
by such Contributor that are necessarily infringed by their
|
|
||||||
Contribution(s) alone or by combination of their Contribution(s)
|
|
||||||
with the Work to which such Contribution(s) was submitted. If You
|
|
||||||
institute patent litigation against any entity (including a
|
|
||||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
|
||||||
or a Contribution incorporated within the Work constitutes direct
|
|
||||||
or contributory patent infringement, then any patent licenses
|
|
||||||
granted to You under this License for that Work shall terminate
|
|
||||||
as of the date such litigation is filed.<br/>
|
|
||||||
<br/>
|
|
||||||
4. Redistribution. You may reproduce and distribute copies of the
|
|
||||||
Work or Derivative Works thereof in any medium, with or without
|
|
||||||
modifications, and in Source or Object form, provided that You
|
|
||||||
meet the following conditions:<br/>
|
|
||||||
<br/>
|
|
||||||
(a) You must give any other recipients of the Work or
|
|
||||||
Derivative Works a copy of this License; and<br/>
|
|
||||||
<br/>
|
|
||||||
(b) You must cause any modified files to carry prominent notices
|
|
||||||
stating that You changed the files; and<br/>
|
|
||||||
<br/>
|
|
||||||
(c) You must retain, in the Source form of any Derivative Works
|
|
||||||
that You distribute, all copyright, patent, trademark, and
|
|
||||||
attribution notices from the Source form of the Work,
|
|
||||||
excluding those notices that do not pertain to any part of
|
|
||||||
the Derivative Works; and<br/>
|
|
||||||
<br/>
|
|
||||||
(d) If the Work includes a "NOTICE" text file as part of its
|
|
||||||
distribution, then any Derivative Works that You distribute must
|
|
||||||
include a readable copy of the attribution notices contained
|
|
||||||
within such NOTICE file, excluding those notices that do not
|
|
||||||
pertain to any part of the Derivative Works, in at least one
|
|
||||||
of the following places: within a NOTICE text file distributed
|
|
||||||
as part of the Derivative Works; within the Source form or
|
|
||||||
documentation, if provided along with the Derivative Works; or,
|
|
||||||
within a display generated by the Derivative Works, if and
|
|
||||||
wherever such third-party notices normally appear. The contents
|
|
||||||
of the NOTICE file are for informational purposes only and
|
|
||||||
do not modify the License. You may add Your own attribution
|
|
||||||
notices within Derivative Works that You distribute, alongside
|
|
||||||
or as an addendum to the NOTICE text from the Work, provided
|
|
||||||
that such additional attribution notices cannot be construed
|
|
||||||
as modifying the License.<br/>
|
|
||||||
<br/>
|
|
||||||
You may add Your own copyright statement to Your modifications and
|
|
||||||
may provide additional or different license terms and conditions
|
|
||||||
for use, reproduction, or distribution of Your modifications, or
|
|
||||||
for any such Derivative Works as a whole, provided Your use,
|
|
||||||
reproduction, and distribution of the Work otherwise complies with
|
|
||||||
the conditions stated in this License.<br/>
|
|
||||||
<br/>
|
|
||||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
|
||||||
any Contribution intentionally submitted for inclusion in the Work
|
|
||||||
by You to the Licensor shall be under the terms and conditions of
|
|
||||||
this License, without any additional terms or conditions.
|
|
||||||
Notwithstanding the above, nothing herein shall supersede or modify
|
|
||||||
the terms of any separate license agreement you may have executed
|
|
||||||
with Licensor regarding such Contributions.<br/>
|
|
||||||
<br/>
|
|
||||||
6. Trademarks. This License does not grant permission to use the trade
|
|
||||||
names, trademarks, service marks, or product names of the Licensor,
|
|
||||||
except as required for reasonable and customary use in describing the
|
|
||||||
origin of the Work and reproducing the content of the NOTICE file.<br/>
|
|
||||||
<br/>
|
|
||||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
|
||||||
agreed to in writing, Licensor provides the Work (and each
|
|
||||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
|
||||||
implied, including, without limitation, any warranties or conditions
|
|
||||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
|
||||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
|
||||||
appropriateness of using or redistributing the Work and assume any
|
|
||||||
risks associated with Your exercise of permissions under this License.<br/>
|
|
||||||
<br/>
|
|
||||||
8. Limitation of Liability. In no event and under no legal theory,
|
|
||||||
whether in tort (including negligence), contract, or otherwise,
|
|
||||||
unless required by applicable law (such as deliberate and grossly
|
|
||||||
negligent acts) or agreed to in writing, shall any Contributor be
|
|
||||||
liable to You for damages, including any direct, indirect, special,
|
|
||||||
incidental, or consequential damages of any character arising as a
|
|
||||||
result of this License or out of the use or inability to use the
|
|
||||||
Work (including but not limited to damages for loss of goodwill,
|
|
||||||
work stoppage, computer failure or malfunction, or any and all
|
|
||||||
other commercial damages or losses), even if such Contributor
|
|
||||||
has been advised of the possibility of such damages.<br/>
|
|
||||||
<br/>
|
|
||||||
9. Accepting Warranty or Additional Liability. While redistributing
|
|
||||||
the Work or Derivative Works thereof, You may choose to offer,
|
|
||||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
|
||||||
or other liability obligations and/or rights consistent with this
|
|
||||||
License. However, in accepting such obligations, You may act only
|
|
||||||
on Your own behalf and on Your sole responsibility, not on behalf
|
|
||||||
of any other Contributor, and only if You agree to indemnify,
|
|
||||||
defend, and hold each Contributor harmless for any liability
|
|
||||||
incurred by, or claims asserted against, such Contributor by reason
|
|
||||||
of your accepting any such warranty or additional liability.
|
|
||||||
|
|
||||||
<h2>dnsjava (http://dnsjava.org/)</h2>
|
|
||||||
Copyright (c) 1998-2011, Brian Wellington. All rights reserved.<br/>
|
|
||||||
<h3>The 2-Clause BSD License</h3>
|
|
||||||
<br/>
|
|
||||||
Redistribution and use in source and binary forms, with or without
|
|
||||||
modification, are permitted provided that the following conditions are met:<br/>
|
|
||||||
<br/>
|
|
||||||
* Redistributions of source code must retain the above copyright notice,
|
|
||||||
this list of conditions and the following disclaimer.<br/>
|
|
||||||
<br/>
|
|
||||||
* Redistributions in binary form must reproduce the above copyright notice,
|
|
||||||
this list of conditions and the following disclaimer in the documentation
|
|
||||||
and/or other materials provided with the distribution.<br/>
|
|
||||||
<br/>
|
|
||||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
|
||||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
|
|
||||||
<h2>dnssecjava - a DNSSEC validating stub resolver for Java</h2>
|
|
||||||
Copyright (c) 2013-2015 Ingo Bauersachs
|
|
||||||
<h3>The Eclipse Public License - v 1.0</h3>
|
|
||||||
THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC
|
|
||||||
LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM
|
|
||||||
CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.<br/>
|
|
||||||
<br/>
|
|
||||||
1. DEFINITIONS<br/>
|
|
||||||
<br/>
|
|
||||||
"Contribution" means:<br/>
|
|
||||||
<br/>
|
|
||||||
a) in the case of the initial Contributor, the initial code and documentation
|
|
||||||
distributed under this Agreement, and<br/>
|
|
||||||
<br/>
|
|
||||||
b) in the case of each subsequent Contributor:<br/>
|
|
||||||
<br/>
|
|
||||||
i) changes to the Program, and<br/>
|
|
||||||
<br/>
|
|
||||||
ii) additions to the Program;<br/>
|
|
||||||
<br/>
|
|
||||||
where such changes and/or additions to the Program originate from and are distributed
|
|
||||||
by that particular Contributor. A Contribution 'originates' from a Contributor if it was
|
|
||||||
added to the Program by such Contributor itself or anyone acting on such Contributor's
|
|
||||||
behalf. Contributions do not include additions to the Program which: (i) are separate modules
|
|
||||||
of software distributed in conjunction with the Program under their own license agreement, and
|
|
||||||
(ii) are not derivative works of the Program.<br/>
|
|
||||||
<br/>
|
|
||||||
"Contributor" means any person or entity that distributes the Program.<br/>
|
|
||||||
<br/>
|
|
||||||
"Licensed Patents" mean patent claims licensable by a Contributor which are necessarily
|
|
||||||
infringed by the use or sale of its Contribution alone or when combined with the Program.<br/>
|
|
||||||
<br/>
|
|
||||||
"Program" means the Contributions distributed in accordance with this Agreement.<br/>
|
|
||||||
<br/>
|
|
||||||
"Recipient" means anyone who receives the Program under this Agreement, including all
|
|
||||||
Contributors.<br/>
|
|
||||||
<br/>
|
|
||||||
2. GRANT OF RIGHTS<br/>
|
|
||||||
<br/>
|
|
||||||
a) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a
|
|
||||||
non-exclusive, worldwide, royalty-free copyright license to reproduce, prepare derivative
|
|
||||||
works of, publicly display, publicly perform, distribute and sublicense the Contribution of
|
|
||||||
such Contributor, if any, and such derivative works, in source code and object code form.<br/>
|
|
||||||
<br/>
|
|
||||||
b) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a
|
|
||||||
non-exclusive, worldwide, royalty-free patent license under Licensed Patents to make, use,
|
|
||||||
sell, offer to sell, import and otherwise transfer the Contribution of such Contributor, if any,
|
|
||||||
in source code and object code form. This patent license shall apply to the combination of
|
|
||||||
the Contribution and the Program if, at the time the Contribution is added by the Contributor,
|
|
||||||
such addition of the Contribution causes such combination to be covered by the Licensed Patents.
|
|
||||||
The patent license shall not apply to any other combinations which include the Contribution.
|
|
||||||
No hardware per se is licensed hereunder.<br/>
|
|
||||||
<br/>
|
|
||||||
c) Recipient understands that although each Contributor grants the licenses to its Contributions
|
|
||||||
set forth herein, no assurances are provided by any Contributor that the Program does not
|
|
||||||
infringe the patent or other intellectual property rights of any other entity. Each Contributor
|
|
||||||
disclaims any liability to Recipient for claims brought by any other entity based on
|
|
||||||
infringement of intellectual property rights or otherwise. As a condition to exercising the
|
|
||||||
rights and licenses granted hereunder, each Recipient hereby assumes sole responsibility to
|
|
||||||
secure any other intellectual property rights needed, if any. For example, if a third party
|
|
||||||
patent license is required to allow Recipient to distribute the Program, it is Recipient's
|
|
||||||
responsibility to acquire that license before distributing the Program.<br/>
|
|
||||||
<br/>
|
|
||||||
d) Each Contributor represents that to its knowledge it has sufficient copyright rights in its
|
|
||||||
Contribution, if any, to grant the copyright license set forth in this Agreement.<br/>
|
|
||||||
<br/>
|
|
||||||
3. REQUIREMENTS<br/>
|
|
||||||
<br/>
|
|
||||||
A Contributor may choose to distribute the Program in object code form under its own license
|
|
||||||
agreement, provided that:<br/>
|
|
||||||
<br/>
|
|
||||||
a) it complies with the terms and conditions of this Agreement; and<br/>
|
|
||||||
<br/>
|
|
||||||
b) its license agreement:<br/>
|
|
||||||
<br/>
|
|
||||||
i) effectively disclaims on behalf of all Contributors all warranties and conditions,
|
|
||||||
express and implied, including warranties or conditions of title and non-infringement,
|
|
||||||
and implied warranties or conditions of merchantability and fitness for a particular purpose;<br/>
|
|
||||||
<br/>
|
|
||||||
ii) effectively excludes on behalf of all Contributors all liability for damages, including
|
|
||||||
direct, indirect, special, incidental and consequential damages, such as lost profits;<br/>
|
|
||||||
<br/>
|
|
||||||
iii) states that any provisions which differ from this Agreement are offered by that Contributor
|
|
||||||
alone and not by any other party; and<br/>
|
|
||||||
<br/>
|
|
||||||
iv) states that source code for the Program is available from such Contributor, and informs
|
|
||||||
licensees how to obtain it in a reasonable manner on or through a medium customarily used for
|
|
||||||
software exchange.<br/>
|
|
||||||
<br/>
|
|
||||||
When the Program is made available in source code form:<br/>
|
|
||||||
<br/>
|
|
||||||
a) it must be made available under this Agreement; and<br/>
|
|
||||||
<br/>
|
|
||||||
b) a copy of this Agreement must be included with each copy of the Program.<br/>
|
|
||||||
<br/>
|
|
||||||
Contributors may not remove or alter any copyright notices contained within the Program.<br/>
|
|
||||||
<br/>
|
|
||||||
Each Contributor must identify itself as the originator of its Contribution, if any, in a
|
|
||||||
manner that reasonably allows subsequent Recipients to identify the originator of the
|
|
||||||
Contribution.<br/>
|
|
||||||
<br/>
|
|
||||||
4. COMMERCIAL DISTRIBUTION<br/>
|
|
||||||
<br/>
|
|
||||||
Commercial distributors of software may accept certain responsibilities with respect to end
|
|
||||||
users, business partners and the like. While this license is intended to facilitate the
|
|
||||||
commercial use of the Program, the Contributor who includes the Program in a commercial
|
|
||||||
product offering should do so in a manner which does not create potential liability for
|
|
||||||
other Contributors. Therefore, if a Contributor includes the Program in a commercial
|
|
||||||
product offering, such Contributor ("Commercial Contributor") hereby agrees to defend and
|
|
||||||
indemnify every other Contributor ("Indemnified Contributor") against any losses, damages
|
|
||||||
and costs (collectively "Losses") arising from claims, lawsuits and other legal actions
|
|
||||||
brought by a third party against the Indemnified Contributor to the extent caused by the
|
|
||||||
acts or omissions of such Commercial Contributor in connection with its distribution of the
|
|
||||||
Program in a commercial product offering. The obligations in this section do not apply to
|
|
||||||
any claims or Losses relating to any actual or alleged intellectual property infringement.
|
|
||||||
In order to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
|
|
||||||
Contributor in writing of such claim, and b) allow the Commercial Contributor to control,
|
|
||||||
and cooperate with the Commercial Contributor in, the defense and any related settlement
|
|
||||||
negotiations. The Indemnified Contributor may participate in any such claim at its own expense.<br/>
|
|
||||||
<br/>
|
|
||||||
For example, a Contributor might include the Program in a commercial product offering,
|
|
||||||
Product X. That Contributor is then a Commercial Contributor. If that Commercial Contributor
|
|
||||||
then makes performance claims, or offers warranties related to Product X, those performance
|
|
||||||
claims and warranties are such Commercial Contributor's responsibility alone. Under this
|
|
||||||
section, the Commercial Contributor would have to defend claims against the other Contributors
|
|
||||||
related to those performance claims and warranties, and if a court requires any other Contributor
|
|
||||||
to pay any damages as a result, the Commercial Contributor must pay those damages.<br/>
|
|
||||||
<br/>
|
|
||||||
5. NO WARRANTY<br/>
|
|
||||||
<br/>
|
|
||||||
EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT
|
|
||||||
LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the
|
|
||||||
appropriateness of using and distributing the Program and assumes all risks associated with
|
|
||||||
its exercise of rights under this Agreement , including but not limited to the risks and costs
|
|
||||||
of program errors, compliance with applicable laws, damage to or loss of data, programs or
|
|
||||||
equipment, and unavailability or interruption of operations.<br/>
|
|
||||||
<br/>
|
|
||||||
6. DISCLAIMER OF LIABILITY<br/>
|
|
||||||
<br/>
|
|
||||||
EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL
|
|
||||||
HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
||||||
DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF
|
|
||||||
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS
|
|
||||||
GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.<br/>
|
|
||||||
<br/>
|
|
||||||
7. GENERAL<br/>
|
|
||||||
<br/>
|
|
||||||
If any provision of this Agreement is invalid or unenforceable under applicable law, it shall
|
|
||||||
not affect the validity or enforceability of the remainder of the terms of this Agreement,
|
|
||||||
and without further action by the parties hereto, such provision shall be reformed to the
|
|
||||||
minimum extent necessary to make such provision valid and enforceable.<br/>
|
|
||||||
<br/>
|
|
||||||
If Recipient institutes patent litigation against any entity (including a cross-claim or
|
|
||||||
counterclaim in a lawsuit) alleging that the Program itself (excluding combinations of the
|
|
||||||
Program with other software or hardware) infringes such Recipient's patent(s), then such
|
|
||||||
Recipient's rights granted under Section 2(b) shall terminate as of the date such litigation
|
|
||||||
is filed.<br/>
|
|
||||||
<br/>
|
|
||||||
All Recipient's rights under this Agreement shall terminate if it fails to comply with any of
|
|
||||||
the material terms or conditions of this Agreement and does not cure such failure in a
|
|
||||||
reasonable period of time after becoming aware of such noncompliance. If all Recipient's
|
|
||||||
rights under this Agreement terminate, Recipient agrees to cease use and distribution of the
|
|
||||||
Program as soon as reasonably practicable. However, Recipient's obligations under this
|
|
||||||
Agreement and any licenses granted by Recipient relating to the Program shall continue
|
|
||||||
and survive.<br/>
|
|
||||||
<br/>
|
|
||||||
Everyone is permitted to copy and distribute copies of this Agreement, but in order to avoid
|
|
||||||
inconsistency the Agreement is copyrighted and may only be modified in the following manner.
|
|
||||||
The Agreement Steward reserves the right to publish new versions (including revisions)
|
|
||||||
of this Agreement from time to time. No one other than the Agreement Steward has the
|
|
||||||
right to modify this Agreement. The Eclipse Foundation is the initial Agreement Steward.
|
|
||||||
The Eclipse Foundation may assign the responsibility to serve as the Agreement Steward to
|
|
||||||
a suitable separate entity. Each new version of the Agreement will be given a distinguishing
|
|
||||||
version number. The Program (including Contributions) may always be distributed subject to
|
|
||||||
the version of the Agreement under which it was received. In addition, after a new version
|
|
||||||
of the Agreement is published, Contributor may elect to distribute the Program (including
|
|
||||||
its Contributions) under the new version. Except as expressly stated in Sections 2(a) and
|
|
||||||
2(b) above, Recipient receives no rights or licenses to the intellectual property of any
|
|
||||||
Contributor under this Agreement, whether expressly, by implication, estoppel or otherwise.
|
|
||||||
All rights in the Program not expressly granted under this Agreement are reserved.<br/>
|
|
||||||
<br/>
|
|
||||||
This Agreement is governed by the laws of the State of New York and the intellectual property
|
|
||||||
laws of the United States of America. No party to this Agreement will bring a legal action
|
|
||||||
under this Agreement more than one year after the cause of action arose. Each party waives
|
|
||||||
its rights to a jury trial in any resulting litigation.
|
|
||||||
|
|
||||||
<h2>Licensed under the MIT License</h2>
|
|
||||||
<h3>rapidjson (https://github.com/monero-project/monero/blob/master/external/rapidjson)</h3>
|
|
||||||
Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved.
|
|
||||||
<h3>easylogging++
|
|
||||||
(https://github.com/monero-project/monero/tree/master/external/easylogging%2B%2B)</h3>
|
|
||||||
Copyright (c) 2017 muflihun.com
|
|
||||||
<h3>zxcvbn4j (https://github.com/nulab/zxcvbn4j)</h3>
|
|
||||||
Copyright (c) 2014 Nulab Inc
|
|
||||||
<h3>slfj-nop - Simple Logging Facade for Java no-operation binding (https://www.slf4j.org/)</h3>
|
|
||||||
Copyright (c) 2004-2017 QOS.ch
|
|
||||||
<h3>The MIT License</h3>
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software
|
|
||||||
and associated documentation files (the "Software"), to deal in the Software without restriction,
|
|
||||||
including without limitation the rights to use, copy, modify, merge, publish, distribute,
|
|
||||||
sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:<br/>
|
|
||||||
<br/>
|
|
||||||
The above copyright notice and this permission notice shall be included in all copies or
|
|
||||||
substantial portions of the Software.<br/>
|
|
||||||
<br/>
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
|
|
||||||
BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
||||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
|
||||||
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.<br/>
|
|
||||||
|
|
||||||
<h2>Monero (https://github.com/monero-project/monero)</h2>
|
|
||||||
<h3>The Monero Project License</h3>
|
|
||||||
Copyright (c) 2014-2017, The Monero Project. All rights reserved.<br/>
|
|
||||||
<br/>
|
|
||||||
Redistribution and use in source and binary forms, with or without
|
|
||||||
modification, are permitted provided that the following conditions are met:<br/>
|
|
||||||
<br/>
|
|
||||||
1. Redistributions of source code must retain the above copyright notice, this
|
|
||||||
list of conditions and the following disclaimer.<br/>
|
|
||||||
<br/>
|
|
||||||
2. Redistributions in binary form must reproduce the above copyright notice,
|
|
||||||
this list of conditions and the following disclaimer in the documentation
|
|
||||||
and/or other materials provided with the distribution.<br/>
|
|
||||||
<br/>
|
|
||||||
3. Neither the name of the copyright holder nor the names of its contributors
|
|
||||||
may be used to endorse or promote products derived from this software without
|
|
||||||
specific prior written permission.<br/>
|
|
||||||
<br/>
|
|
||||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
||||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
||||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
||||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
|
||||||
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
||||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
||||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
||||||
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
||||||
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
||||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.<br/>
|
|
||||||
<br/>
|
|
||||||
Parts of the project are originally copyright (c) 2012-2013 The Cryptonote
|
|
||||||
developers
|
|
||||||
|
|
||||||
<h2>OpenSSL (https://github.com/openssl/openssl)</h2>
|
|
||||||
<h3>LICENSE ISSUES</h3>
|
|
||||||
The OpenSSL toolkit stays under a double license, i.e. both the conditions of
|
|
||||||
the OpenSSL License and the original SSLeay license apply to the toolkit.
|
|
||||||
See below for the actual license texts.
|
|
||||||
<h3>OpenSSL License</h3>
|
|
||||||
Copyright (c) 1998-2017 The OpenSSL Project. All rights reserved.<br/>
|
|
||||||
<br/>
|
|
||||||
Redistribution and use in source and binary forms, with or without
|
|
||||||
modification, are permitted provided that the following conditions
|
|
||||||
are met:<br/>
|
|
||||||
1. Redistributions of source code must retain the above copyright
|
|
||||||
notice, this list of conditions and the following disclaimer.<br/>
|
|
||||||
<br/>
|
|
||||||
2. Redistributions in binary form must reproduce the above copyright
|
|
||||||
notice, this list of conditions and the following disclaimer in
|
|
||||||
the documentation and/or other materials provided with the
|
|
||||||
distribution.<br/>
|
|
||||||
<br/>
|
|
||||||
3. All advertising materials mentioning features or use of this
|
|
||||||
software must display the following acknowledgment:
|
|
||||||
"This product includes software developed by the OpenSSL Project
|
|
||||||
for use in the OpenSSL Toolkit. (http://www.openssl.org/)"<br/>
|
|
||||||
<br/>
|
|
||||||
4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
|
|
||||||
endorse or promote products derived from this software without
|
|
||||||
prior written permission. For written permission, please contact
|
|
||||||
openssl-core@openssl.org.<br/>
|
|
||||||
<br/>
|
|
||||||
5. Products derived from this software may not be called "OpenSSL"
|
|
||||||
nor may "OpenSSL" appear in their names without prior written
|
|
||||||
permission of the OpenSSL Project.<br/>
|
|
||||||
<br/>
|
|
||||||
6. Redistributions of any form whatsoever must retain the following
|
|
||||||
acknowledgment:<br/>
|
|
||||||
"This product includes software developed by the OpenSSL Project
|
|
||||||
for use in the OpenSSL Toolkit (http://www.openssl.org/)"<br/>
|
|
||||||
<br/>
|
|
||||||
THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT "AS IS" AND ANY
|
|
||||||
EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
|
||||||
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
|
|
||||||
ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
||||||
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
|
||||||
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
||||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
||||||
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
|
||||||
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
|
||||||
OF THE POSSIBILITY OF SUCH DAMAGE.<br/>
|
|
||||||
<br/>
|
|
||||||
This product includes cryptographic software written by Eric Young
|
|
||||||
(eay@cryptsoft.com). This product includes software written by Tim
|
|
||||||
Hudson (tjh@cryptsoft.com).
|
|
||||||
<h3>Original SSLeay License</h3>
|
|
||||||
Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com). All rights reserved.<br/>
|
|
||||||
<br/>
|
|
||||||
This package is an SSL implementation written
|
|
||||||
by Eric Young (eay@cryptsoft.com).
|
|
||||||
The implementation was written so as to conform with Netscapes SSL.<br/>
|
|
||||||
<br/>
|
|
||||||
This library is free for commercial and non-commercial use as long as
|
|
||||||
the following conditions are aheared to. The following conditions
|
|
||||||
apply to all code found in this distribution, be it the RC4, RSA,
|
|
||||||
lhash, DES, etc., code; not just the SSL code. The SSL documentation
|
|
||||||
included with this distribution is covered by the same copyright terms
|
|
||||||
except that the holder is Tim Hudson (tjh@cryptsoft.com).<br/>
|
|
||||||
<br/>
|
|
||||||
Copyright remains Eric Young's, and as such any Copyright notices in
|
|
||||||
the code are not to be removed.
|
|
||||||
If this package is used in a product, Eric Young should be given attribution
|
|
||||||
as the author of the parts of the library used.
|
|
||||||
This can be in the form of a textual message at program startup or
|
|
||||||
in documentation (online or textual) provided with the package.<br/>
|
|
||||||
<br/>
|
|
||||||
Redistribution and use in source and binary forms, with or without
|
|
||||||
modification, are permitted provided that the following conditions
|
|
||||||
are met:<br/>
|
|
||||||
1. Redistributions of source code must retain the copyright
|
|
||||||
notice, this list of conditions and the following disclaimer.<br/>
|
|
||||||
2. Redistributions in binary form must reproduce the above copyright
|
|
||||||
notice, this list of conditions and the following disclaimer in the
|
|
||||||
documentation and/or other materials provided with the distribution.<br/>
|
|
||||||
3. All advertising materials mentioning features or use of this software
|
|
||||||
must display the following acknowledgement:<br/>
|
|
||||||
"This product includes cryptographic software written by
|
|
||||||
Eric Young (eay@cryptsoft.com)"
|
|
||||||
The word 'cryptographic' can be left out if the rouines from the library
|
|
||||||
being used are not cryptographic related :-).<br/>
|
|
||||||
4. If you include any Windows specific code (or a derivative thereof) from
|
|
||||||
the apps directory (application code) you must include an acknowledgement:
|
|
||||||
"This product includes software written by Tim Hudson (tjh@cryptsoft.com)"<br/>
|
|
||||||
<br/>
|
|
||||||
THIS SOFTWARE IS PROVIDED BY ERIC YOUNG "AS IS" AND
|
|
||||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
|
||||||
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
||||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
||||||
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
||||||
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
||||||
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
||||||
SUCH DAMAGE.<br/>
|
|
||||||
<br/>
|
|
||||||
The licence and distribution terms for any publically available version or
|
|
||||||
derivative of this code cannot be changed. i.e. this code cannot simply be
|
|
||||||
copied and put under another distribution licence
|
|
||||||
[including the GNU Public Licence.]
|
|
||||||
|
|
||||||
<h2>Boost</h2>
|
|
||||||
<ul>
|
|
||||||
<li>Boost (https://sourceforge.net/projects/boost)</li>
|
|
||||||
<li>Boost/Archive
|
|
||||||
(https://github.com/monero-project/monero/tree/master/external/boost/archive)
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
<h3>Boost Software License - Version 1.0 - August 17th, 2003</h3>
|
|
||||||
Permission is hereby granted, free of charge, to any person or organization
|
|
||||||
obtaining a copy of the software and accompanying documentation covered by
|
|
||||||
this license (the "Software") to use, reproduce, display, distribute,
|
|
||||||
execute, and transmit the Software, and to prepare derivative works of the
|
|
||||||
Software, and to permit third-parties to whom the Software is furnished to
|
|
||||||
do so, all subject to the following:<br/>
|
|
||||||
<br/>
|
|
||||||
The copyright notices in the Software and this entire statement, including
|
|
||||||
the above license grant, this restriction and the following disclaimer,
|
|
||||||
must be included in all copies of the Software, in whole or in part, and
|
|
||||||
all derivative works of the Software, unless such copies or derivative
|
|
||||||
works are solely in the form of machine-executable object code generated by
|
|
||||||
a source language processor.<br/>
|
|
||||||
<br/>
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
|
|
||||||
SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
|
|
||||||
FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
|
|
||||||
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
||||||
DEALINGS IN THE SOFTWARE.
|
|
||||||
|
|
||||||
<h2>Unbound (https://github.com/monero-project/monero/blob/master/external/unbound)</h2>
|
|
||||||
<h3>Unbound Software License</h3>
|
|
||||||
Copyright (c) 2007, NLnet Labs. All rights reserved.<br/>
|
|
||||||
<br/>
|
|
||||||
This software is open source.<br/>
|
|
||||||
<br/>
|
|
||||||
Redistribution and use in source and binary forms, with or without
|
|
||||||
modification, are permitted provided that the following conditions
|
|
||||||
are met:<br/>
|
|
||||||
<br/>
|
|
||||||
Redistributions of source code must retain the above copyright notice,
|
|
||||||
this list of conditions and the following disclaimer.<br/>
|
|
||||||
<br/>
|
|
||||||
Redistributions in binary form must reproduce the above copyright notice,
|
|
||||||
this list of conditions and the following disclaimer in the documentation
|
|
||||||
and/or other materials provided with the distribution.<br/>
|
|
||||||
<br/>
|
|
||||||
Neither the name of the NLNET LABS nor the names of its contributors may
|
|
||||||
be used to endorse or promote products derived from this software without
|
|
||||||
specific prior written permission.<br/>
|
|
||||||
<br/>
|
|
||||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
||||||
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
||||||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
|
||||||
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
|
||||||
HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
||||||
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
|
|
||||||
TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
|
||||||
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
|
||||||
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
|
||||||
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
|
|
||||||
<h2>MiniUPnPc (https://github.com/monero-project/monero/blob/master/external/miniupnpc)</h2>
|
|
||||||
Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved.
|
|
||||||
<h3>The MiniUPnPc License</h3>
|
|
||||||
Copyright (c) 2005-2015, Thomas BERNARD. All rights reserved.<br/>
|
|
||||||
<br/>
|
|
||||||
Redistribution and use in source and binary forms, with or without
|
|
||||||
modification, are permitted provided that the following conditions are met:<br/>
|
|
||||||
<br/>
|
|
||||||
* Redistributions of source code must retain the above copyright notice,
|
|
||||||
this list of conditions and the following disclaimer.<br/>
|
|
||||||
* Redistributions in binary form must reproduce the above copyright notice,
|
|
||||||
this list of conditions and the following disclaimer in the documentation
|
|
||||||
and/or other materials provided with the distribution.<br/>
|
|
||||||
* The name of the author may not be used to endorse or promote products
|
|
||||||
derived from this software without specific prior written permission.<br/>
|
|
||||||
<br/>
|
|
||||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
|
|
||||||
<h2>liblmdb (https://github.com/monero-project/monero/blob/master/external/db_drivers/liblmdb)</h2>
|
|
||||||
<h3>The OpenLDAP Public License, Version 2.8, 17 August 2003</h3>
|
|
||||||
Redistribution and use of this software and associated documentation
|
|
||||||
("Software"), with or without modification, are permitted provided
|
|
||||||
that the following conditions are met:<br/>
|
|
||||||
<br/>
|
|
||||||
1. Redistributions in source form must retain copyright statements
|
|
||||||
and notices,<br/>
|
|
||||||
<br/>
|
|
||||||
2. Redistributions in binary form must reproduce applicable copyright
|
|
||||||
statements and notices, this list of conditions, and the following
|
|
||||||
disclaimer in the documentation and/or other materials provided
|
|
||||||
with the distribution, and<br/>
|
|
||||||
<br/>
|
|
||||||
3. Redistributions must contain a verbatim copy of this document.<br/>
|
|
||||||
<br/>
|
|
||||||
The OpenLDAP Foundation may revise this license from time to time.
|
|
||||||
Each revision is distinguished by a version number. You may use
|
|
||||||
this Software under terms of this license revision or under the
|
|
||||||
terms of any subsequent revision of the license.<br/>
|
|
||||||
<br/>
|
|
||||||
THIS SOFTWARE IS PROVIDED BY THE OPENLDAP FOUNDATION AND ITS
|
|
||||||
CONTRIBUTORS "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES,
|
|
||||||
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
||||||
AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
|
|
||||||
SHALL THE OPENLDAP FOUNDATION, ITS CONTRIBUTORS, OR THE AUTHOR(S)
|
|
||||||
OR OWNER(S) OF THE SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
||||||
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
|
||||||
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
||||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
||||||
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
|
||||||
ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
POSSIBILITY OF SUCH DAMAGE.<br/>
|
|
||||||
<br/>
|
|
||||||
The names of the authors and copyright holders must not be used in
|
|
||||||
advertising or otherwise to promote the sale, use or other dealing
|
|
||||||
in this Software without specific, written prior permission. Title
|
|
||||||
to copyright in this Software shall at all times remain with copyright
|
|
||||||
holders.<br/>
|
|
||||||
<br/>
|
|
||||||
OpenLDAP is a registered trademark of the OpenLDAP Foundation.<br/>
|
|
||||||
<br/>
|
|
||||||
Copyright 1999-2003 The OpenLDAP Foundation, Redwood City,
|
|
||||||
California, USA. All Rights Reserved. Permission to copy and
|
|
||||||
distribute verbatim copies of this document is granted.
|
|
||||||
|
|
||||||
<h2>epee (https://github.com/monero-project/monero/blob/master/contrib/epee)</h2>
|
|
||||||
Copyright (c) 2006-2013, Andrey N. Sabelnikov, www.sabelnikov.net. All rights reserved.
|
|
||||||
<h3>The epee License</h3>
|
|
||||||
Redistribution and use in source and binary forms, with or without
|
|
||||||
modification, are permitted provided that the following conditions are met:<br/>
|
|
||||||
* Redistributions of source code must retain the above copyright
|
|
||||||
notice, this list of conditions and the following disclaimer.<br/>
|
|
||||||
* Redistributions in binary form must reproduce the above copyright
|
|
||||||
notice, this list of conditions and the following disclaimer in the
|
|
||||||
documentation and/or other materials provided with the distribution.<br/>
|
|
||||||
* Neither the name of the Andrey N. Sabelnikov nor the
|
|
||||||
names of its contributors may be used to endorse or promote products
|
|
||||||
derived from this software without specific prior written permission.<br/>
|
|
||||||
<br/>
|
|
||||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
||||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
||||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
||||||
DISCLAIMED. IN NO EVENT SHALL Andrey N. Sabelnikov BE LIABLE FOR ANY
|
|
||||||
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
||||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
||||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
|
||||||
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
||||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
|
|
||||||
<h2>'Poppins' Font</h2>
|
|
||||||
<h3>SIL Open Font License</h3>
|
|
||||||
<p>Copyright (c) 2014, Indian Type Foundry (info@indiantypefoundry.com).</p>
|
|
||||||
<p>This Font Software is licensed under the SIL Open Font License, Version 1.1.<br/>
|
|
||||||
This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
|
|
||||||
</p>
|
|
||||||
<p>—————————————————————————————-<br/>
|
|
||||||
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007<br/>
|
|
||||||
—————————————————————————————-
|
|
||||||
</p>
|
|
||||||
<p>PREAMBLE<br/>
|
|
||||||
The goals of the Open Font License (OFL) are to stimulate worldwide development of
|
|
||||||
collaborative font projects, to support the font creation efforts of academic and
|
|
||||||
linguistic communities, and to provide a free and open framework in which fonts may be
|
|
||||||
shared and improved in partnership with others.</p>
|
|
||||||
<p>The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as
|
|
||||||
long as they are not sold by themselves. The fonts, including any derivative works, can be
|
|
||||||
bundled, embedded, redistributed and/or sold with any software provided that any reserved
|
|
||||||
names are not used by derivative works. The fonts and derivatives, however, cannot be
|
|
||||||
released under any other type of license. The requirement for fonts to remain under this
|
|
||||||
license does not apply to any document created using the fonts or their derivatives.</p>
|
|
||||||
<p>DEFINITIONS<br/>
|
|
||||||
“Font Software” refers to the set of files released by the Copyright Holder(s)
|
|
||||||
under this license and clearly marked as such. This may include source files, build scripts
|
|
||||||
and documentation.</p>
|
|
||||||
<p>“Reserved Font Name” refers to any names specified as such after the copyright
|
|
||||||
statement(s).</p>
|
|
||||||
<p>“Original Version” refers to the collection of Font Software components as
|
|
||||||
distributed by the Copyright Holder(s).</p>
|
|
||||||
<p>“Modified Version” refers to any derivative made by adding to, deleting, or
|
|
||||||
substituting—in part or in whole—any of the components of the Original Version,
|
|
||||||
by changing formats or by porting the Font Software to a new environment.</p>
|
|
||||||
<p>“Author” refers to any designer, engineer, programmer, technical writer or other
|
|
||||||
person who contributed to the Font Software.</p>
|
|
||||||
<p>PERMISSION & CONDITIONS<br/>
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy of the Font
|
|
||||||
Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and
|
|
||||||
unmodified copies of the Font Software, subject to the following conditions:</p>
|
|
||||||
<p>1) Neither the Font Software nor any of its individual components, in Original or Modified
|
|
||||||
Versions, may be sold by itself.</p>
|
|
||||||
<p>2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold
|
|
||||||
with any software, provided that each copy contains the above copyright notice and this
|
|
||||||
license. These can be included either as stand-alone text files, human-readable headers or
|
|
||||||
in the appropriate machine-readable metadata fields within text or binary files as long as
|
|
||||||
those fields can be easily viewed by the user.</p>
|
|
||||||
<p>3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit
|
|
||||||
written permission is granted by the corresponding Copyright Holder. This restriction only
|
|
||||||
applies to the primary font name as presented to the users.</p>
|
|
||||||
<p>4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be
|
|
||||||
used to promote, endorse or advertise any Modified Version, except to acknowledge the
|
|
||||||
contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit
|
|
||||||
written permission.</p>
|
|
||||||
<p>5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely
|
|
||||||
under this license, and must not be distributed under any other license. The requirement
|
|
||||||
for fonts to remain under this license does not apply to any document created using the Font
|
|
||||||
Software.</p>
|
|
||||||
<p>TERMINATION<br/>
|
|
||||||
This license becomes null and void if any of the above conditions are not met.</p>
|
|
||||||
<p>DISCLAIMER<br/>
|
|
||||||
THE FONT SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
|
|
||||||
PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN
|
|
||||||
NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
|
||||||
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN
|
|
||||||
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE
|
|
||||||
THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.</p>
|
|
Before Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 245 KiB |
|
@ -31,7 +31,6 @@ class MainActivity : AppCompatActivity(), MoneroHandlerThread.Listener, Password
|
||||||
private var balanceService: BalanceService? = null
|
private var balanceService: BalanceService? = null
|
||||||
private var addressService: AddressService? = null
|
private var addressService: AddressService? = null
|
||||||
private var historyService: HistoryService? = null
|
private var historyService: HistoryService? = null
|
||||||
private var proxyService: ProxyService? = null
|
|
||||||
private var daemonService: DaemonService? = null
|
private var daemonService: DaemonService? = null
|
||||||
private var blockchainService: BlockchainService? = null
|
private var blockchainService: BlockchainService? = null
|
||||||
private var utxoService: UTXOService? = null
|
private var utxoService: UTXOService? = null
|
||||||
|
|
|
@ -143,10 +143,10 @@ class HomeFragment : Fragment(), TxInfoAdapterListener {
|
||||||
val textResId: Int
|
val textResId: Int
|
||||||
val botImgResId = if (wallet != null && wallet.isSynchronized) {
|
val botImgResId = if (wallet != null && wallet.isSynchronized) {
|
||||||
textResId = R.string.no_history_nget_some_monero_in_here
|
textResId = R.string.no_history_nget_some_monero_in_here
|
||||||
R.drawable.xmrchan_empty // img for synchronized
|
R.drawable.xmrchan_empty2 // img for synchronized
|
||||||
} else {
|
} else {
|
||||||
textResId = R.string.no_history_loading
|
textResId = R.string.no_history_loading
|
||||||
R.drawable.xmrchan_loading // img for loading
|
R.drawable.xmrchan_loading2 // img for loading
|
||||||
}
|
}
|
||||||
txHistoryRecyclerView.visibility = View.GONE
|
txHistoryRecyclerView.visibility = View.GONE
|
||||||
displayEmptyHistory(true, view, textResId, botImgResId)
|
displayEmptyHistory(true, view, textResId, botImgResId)
|
||||||
|
@ -163,7 +163,7 @@ class HomeFragment : Fragment(), TxInfoAdapterListener {
|
||||||
false,
|
false,
|
||||||
view,
|
view,
|
||||||
R.string.no_history_nget_some_monero_in_here,
|
R.string.no_history_nget_some_monero_in_here,
|
||||||
R.drawable.xmrchan_loading
|
R.drawable.xmrchan_loading2
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -187,7 +187,9 @@ class HomeFragment : Fragment(), TxInfoAdapterListener {
|
||||||
private fun refreshProxy(proxyAddress: String, proxyPort: String) {
|
private fun refreshProxy(proxyAddress: String, proxyPort: String) {
|
||||||
val cachedProxyAddress = ProxyService.instance?.proxyAddress
|
val cachedProxyAddress = ProxyService.instance?.proxyAddress
|
||||||
val cachedProxyPort = ProxyService.instance?.proxyPort
|
val cachedProxyPort = ProxyService.instance?.proxyPort
|
||||||
if ((proxyAddress != cachedProxyAddress) || (proxyPort != cachedProxyPort)) {
|
val currentWalletProxy = WalletManager.instance?.proxy
|
||||||
|
val newProxy = "$proxyAddress:$proxyPort"
|
||||||
|
if ((proxyAddress != cachedProxyAddress) || (proxyPort != cachedProxyPort) || (newProxy != currentWalletProxy && newProxy != ":")) {
|
||||||
ProxyService.instance?.updateProxy(proxyAddress, proxyPort)
|
ProxyService.instance?.updateProxy(proxyAddress, proxyPort)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -93,8 +93,6 @@ class OnboardingFragment : Fragment(), NodeSelectionDialogListener, AddNodeListe
|
||||||
useBundledTor?.isEnabled = usingProxy
|
useBundledTor?.isEnabled = usingProxy
|
||||||
walletProxyAddressEditText?.isEnabled = usingProxy && !usingBundledTor
|
walletProxyAddressEditText?.isEnabled = usingProxy && !usingBundledTor
|
||||||
walletProxyPortEditText?.isEnabled = usingProxy && !usingBundledTor
|
walletProxyPortEditText?.isEnabled = usingProxy && !usingBundledTor
|
||||||
walletProxyPortEditText?.visibility = if (usingBundledTor) View.GONE else View.VISIBLE
|
|
||||||
walletProxyAddressEditText?.visibility = if (usingBundledTor) View.GONE else View.VISIBLE
|
|
||||||
|
|
||||||
val node = PrefService.instance?.node // should be using default here
|
val node = PrefService.instance?.node // should be using default here
|
||||||
selectNodeButton?.text = getString(R.string.node_button_text, node?.address)
|
selectNodeButton?.text = getString(R.string.node_button_text, node?.address)
|
||||||
|
@ -152,14 +150,14 @@ class OnboardingFragment : Fragment(), NodeSelectionDialogListener, AddNodeListe
|
||||||
}
|
}
|
||||||
|
|
||||||
mViewModel?.useBundledTor?.observe(viewLifecycleOwner) { isChecked ->
|
mViewModel?.useBundledTor?.observe(viewLifecycleOwner) { isChecked ->
|
||||||
walletProxyPortEditText?.visibility = if (isChecked) View.GONE else View.VISIBLE
|
walletProxyPortEditText?.isEnabled = !isChecked && mViewModel?.useProxy?.value == true
|
||||||
walletProxyAddressEditText?.visibility = if (isChecked) View.GONE else View.VISIBLE
|
walletProxyAddressEditText?.isEnabled = !isChecked && mViewModel?.useProxy?.value == true
|
||||||
}
|
}
|
||||||
|
|
||||||
mViewModel?.useProxy?.observe(viewLifecycleOwner) { useProxy ->
|
mViewModel?.useProxy?.observe(viewLifecycleOwner) { useProxy ->
|
||||||
useBundledTor?.isEnabled = useProxy
|
useBundledTor?.isEnabled = useProxy
|
||||||
walletProxyAddressEditText?.isEnabled = useProxy
|
walletProxyAddressEditText?.isEnabled = useProxy && mViewModel?.useBundledTor?.value == false
|
||||||
walletProxyPortEditText?.isEnabled = useProxy
|
walletProxyPortEditText?.isEnabled = useProxy && mViewModel?.useBundledTor?.value == false
|
||||||
}
|
}
|
||||||
|
|
||||||
val samouraiTorManager = ProxyService.instance?.samouraiTorManager
|
val samouraiTorManager = ProxyService.instance?.samouraiTorManager
|
||||||
|
|
|
@ -241,8 +241,7 @@ class OnboardingViewModel : ViewModel() {
|
||||||
|
|
||||||
fun setUseBundledTor(useBundled: Boolean) {
|
fun setUseBundledTor(useBundled: Boolean) {
|
||||||
_useBundledTor.value = useBundled
|
_useBundledTor.value = useBundled
|
||||||
PrefService.instance?.edit()?.putBoolean(Constants.PREF_USE_BUNDLED_TOR, useBundled)
|
ProxyService.instance?.useBundledTor = useBundled
|
||||||
?.apply()
|
|
||||||
|
|
||||||
val samouraiTorManager = ProxyService.instance?.samouraiTorManager
|
val samouraiTorManager = ProxyService.instance?.samouraiTorManager
|
||||||
if (useBundled && ProxyService.instance?.usingProxy == true) {
|
if (useBundled && ProxyService.instance?.usingProxy == true) {
|
||||||
|
@ -254,7 +253,7 @@ class OnboardingViewModel : ViewModel() {
|
||||||
|
|
||||||
fun setUseProxy(useProxy: Boolean) {
|
fun setUseProxy(useProxy: Boolean) {
|
||||||
_useProxy.value = useProxy
|
_useProxy.value = useProxy
|
||||||
PrefService.instance?.edit()?.putBoolean(Constants.PREF_USES_PROXY, useProxy)?.apply()
|
ProxyService.instance?.usingProxy = useProxy
|
||||||
|
|
||||||
val samouraiTorManager = ProxyService.instance?.samouraiTorManager
|
val samouraiTorManager = ProxyService.instance?.samouraiTorManager
|
||||||
if (useProxy && ProxyService.instance?.useBundledTor == true) {
|
if (useProxy && ProxyService.instance?.useBundledTor == true) {
|
||||||
|
|
|
@ -31,6 +31,7 @@ import net.mynero.wallet.fragment.dialog.PasswordBottomSheetDialog
|
||||||
import net.mynero.wallet.fragment.dialog.PasswordBottomSheetDialog.PasswordListener
|
import net.mynero.wallet.fragment.dialog.PasswordBottomSheetDialog.PasswordListener
|
||||||
import net.mynero.wallet.fragment.dialog.WalletKeysBottomSheetDialog
|
import net.mynero.wallet.fragment.dialog.WalletKeysBottomSheetDialog
|
||||||
import net.mynero.wallet.model.EnumTorState
|
import net.mynero.wallet.model.EnumTorState
|
||||||
|
import net.mynero.wallet.model.WalletManager
|
||||||
import net.mynero.wallet.service.BalanceService
|
import net.mynero.wallet.service.BalanceService
|
||||||
import net.mynero.wallet.service.HistoryService
|
import net.mynero.wallet.service.HistoryService
|
||||||
import net.mynero.wallet.service.PrefService
|
import net.mynero.wallet.service.PrefService
|
||||||
|
@ -51,7 +52,6 @@ class SettingsFragment : Fragment(), PasswordListener, NodeSelectionDialogListen
|
||||||
private var displaySeedButton: Button? = null
|
private var displaySeedButton: Button? = null
|
||||||
private var displayUtxosButton: Button? = null
|
private var displayUtxosButton: Button? = null
|
||||||
private var torSwitch: SwitchCompat? = null
|
private var torSwitch: SwitchCompat? = null
|
||||||
private var proxySettingsLayout: ConstraintLayout? = null
|
|
||||||
|
|
||||||
override fun onCreateView(
|
override fun onCreateView(
|
||||||
inflater: LayoutInflater, container: ViewGroup?,
|
inflater: LayoutInflater, container: ViewGroup?,
|
||||||
|
@ -70,7 +70,7 @@ class SettingsFragment : Fragment(), PasswordListener, NodeSelectionDialogListen
|
||||||
monerochanSwitch = view.findViewById(R.id.monerochan_switch)
|
monerochanSwitch = view.findViewById(R.id.monerochan_switch)
|
||||||
donationSwitch = view.findViewById(R.id.donate_per_tx_switch)
|
donationSwitch = view.findViewById(R.id.donate_per_tx_switch)
|
||||||
torSwitch = view.findViewById(R.id.tor_switch)
|
torSwitch = view.findViewById(R.id.tor_switch)
|
||||||
proxySettingsLayout = view.findViewById(R.id.wallet_proxy_settings_layout)
|
val proxySettingsLayout = view.findViewById<ConstraintLayout>(R.id.wallet_proxy_settings_layout)
|
||||||
walletProxyAddressEditText = view.findViewById(R.id.wallet_proxy_address_edittext)
|
walletProxyAddressEditText = view.findViewById(R.id.wallet_proxy_address_edittext)
|
||||||
walletProxyPortEditText = view.findViewById(R.id.wallet_proxy_port_edittext)
|
walletProxyPortEditText = view.findViewById(R.id.wallet_proxy_port_edittext)
|
||||||
useBundledTor = view.findViewById(R.id.bundled_tor_checkbox)
|
useBundledTor = view.findViewById(R.id.bundled_tor_checkbox)
|
||||||
|
@ -80,12 +80,9 @@ class SettingsFragment : Fragment(), PasswordListener, NodeSelectionDialogListen
|
||||||
val cachedUsingProxy = ProxyService.instance?.usingProxy == true
|
val cachedUsingProxy = ProxyService.instance?.usingProxy == true
|
||||||
val cachedUsingBundledTor = ProxyService.instance?.useBundledTor == true
|
val cachedUsingBundledTor = ProxyService.instance?.useBundledTor == true
|
||||||
|
|
||||||
val useProxyVisibility = if (cachedUsingProxy) View.VISIBLE else View.GONE
|
walletProxyPortEditText?.isEnabled = !cachedUsingBundledTor && cachedUsingProxy
|
||||||
walletProxyPortEditText?.visibility =
|
walletProxyAddressEditText?.isEnabled = !cachedUsingBundledTor && cachedUsingProxy
|
||||||
if (cachedUsingBundledTor) View.GONE else useProxyVisibility
|
proxySettingsLayout.visibility = View.VISIBLE
|
||||||
walletProxyAddressEditText?.visibility =
|
|
||||||
if (cachedUsingBundledTor) View.GONE else useProxyVisibility
|
|
||||||
proxySettingsLayout?.visibility = useProxyVisibility
|
|
||||||
|
|
||||||
streetModeSwitch?.isChecked =
|
streetModeSwitch?.isChecked =
|
||||||
PrefService.instance?.getBoolean(Constants.PREF_STREET_MODE, false) == true
|
PrefService.instance?.getBoolean(Constants.PREF_STREET_MODE, false) == true
|
||||||
|
@ -162,22 +159,17 @@ class SettingsFragment : Fragment(), PasswordListener, NodeSelectionDialogListen
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun bindObservers() {
|
private fun bindObservers() {
|
||||||
mViewModel?.useProxy?.observe(viewLifecycleOwner) { b ->
|
mViewModel?.useProxy?.observe(viewLifecycleOwner) { useProxy ->
|
||||||
val visibility = if (b) View.VISIBLE else View.GONE
|
useBundledTor?.isEnabled = useProxy
|
||||||
proxySettingsLayout?.visibility = visibility
|
walletProxyPortEditText?.isEnabled = useProxy && mViewModel?.useBundledTor?.value == false
|
||||||
|
walletProxyAddressEditText?.isEnabled = useProxy && mViewModel?.useBundledTor?.value == false
|
||||||
val useBundledTor = mViewModel?.useBundledTor?.value == true
|
|
||||||
walletProxyPortEditText?.visibility = if (useBundledTor) View.GONE else visibility
|
|
||||||
walletProxyAddressEditText?.visibility = if (useBundledTor) View.GONE else visibility
|
|
||||||
|
|
||||||
refreshProxy()
|
refreshProxy()
|
||||||
}
|
}
|
||||||
|
|
||||||
mViewModel?.useBundledTor?.observe(viewLifecycleOwner) { isChecked ->
|
mViewModel?.useBundledTor?.observe(viewLifecycleOwner) { isChecked ->
|
||||||
val usingProxy = mViewModel?.useProxy?.value == true
|
walletProxyPortEditText?.isEnabled = !isChecked && mViewModel?.useProxy?.value == true
|
||||||
val visibility = if (usingProxy) View.VISIBLE else View.GONE
|
walletProxyAddressEditText?.isEnabled = !isChecked && mViewModel?.useProxy?.value == true
|
||||||
walletProxyPortEditText?.visibility = if (isChecked) View.GONE else visibility
|
|
||||||
walletProxyAddressEditText?.visibility = if (isChecked) View.GONE else visibility
|
|
||||||
}
|
}
|
||||||
|
|
||||||
val samouraiTorManager = ProxyService.instance?.samouraiTorManager
|
val samouraiTorManager = ProxyService.instance?.samouraiTorManager
|
||||||
|
@ -228,8 +220,9 @@ class SettingsFragment : Fragment(), PasswordListener, NodeSelectionDialogListen
|
||||||
val proxyPort = walletProxyPortEditText?.text.toString()
|
val proxyPort = walletProxyPortEditText?.text.toString()
|
||||||
val savedProxyAddress = ProxyService.instance?.proxyAddress
|
val savedProxyAddress = ProxyService.instance?.proxyAddress
|
||||||
val savedProxyPort = ProxyService.instance?.proxyPort
|
val savedProxyPort = ProxyService.instance?.proxyPort
|
||||||
|
val currentWalletProxy = WalletManager.instance?.proxy
|
||||||
if (proxyAddress != savedProxyAddress || proxyPort != savedProxyPort)
|
val newProxy = "$proxyAddress:$proxyPort"
|
||||||
|
if (proxyAddress != savedProxyAddress || proxyPort != savedProxyPort || (newProxy != currentWalletProxy && newProxy != ":"))
|
||||||
ProxyService.instance?.updateProxy(proxyAddress, proxyPort)
|
ProxyService.instance?.updateProxy(proxyAddress, proxyPort)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,7 @@ class SettingsViewModel : ViewModel() {
|
||||||
|
|
||||||
fun setUseProxy(use: Boolean) {
|
fun setUseProxy(use: Boolean) {
|
||||||
_useProxy.value = use
|
_useProxy.value = use
|
||||||
PrefService.instance?.edit()?.putBoolean(Constants.PREF_USES_PROXY, use)?.apply()
|
ProxyService.instance?.usingProxy = use
|
||||||
|
|
||||||
val samouraiTorManager = ProxyService.instance?.samouraiTorManager
|
val samouraiTorManager = ProxyService.instance?.samouraiTorManager
|
||||||
if (use && ProxyService.instance?.useBundledTor == true) {
|
if (use && ProxyService.instance?.useBundledTor == true) {
|
||||||
|
@ -32,7 +32,7 @@ class SettingsViewModel : ViewModel() {
|
||||||
|
|
||||||
fun setUseBundledTor(use: Boolean) {
|
fun setUseBundledTor(use: Boolean) {
|
||||||
_useBundledTor.value = use
|
_useBundledTor.value = use
|
||||||
PrefService.instance?.edit()?.putBoolean(Constants.PREF_USE_BUNDLED_TOR, use)?.apply()
|
ProxyService.instance?.useBundledTor = use
|
||||||
|
|
||||||
val samouraiTorManager = ProxyService.instance?.samouraiTorManager
|
val samouraiTorManager = ProxyService.instance?.samouraiTorManager
|
||||||
if (use && ProxyService.instance?.usingProxy == true) {
|
if (use && ProxyService.instance?.usingProxy == true) {
|
||||||
|
|
|
@ -7,9 +7,7 @@ import net.mynero.wallet.model.WalletManager
|
||||||
|
|
||||||
class BlockchainService(thread: MoneroHandlerThread) : ServiceBase(thread) {
|
class BlockchainService(thread: MoneroHandlerThread) : ServiceBase(thread) {
|
||||||
private val _currentHeight = MutableLiveData(0L)
|
private val _currentHeight = MutableLiveData(0L)
|
||||||
private val _connectionStatus = MutableLiveData(ConnectionStatus.ConnectionStatus_Disconnected)
|
|
||||||
var height: LiveData<Long> = _currentHeight
|
var height: LiveData<Long> = _currentHeight
|
||||||
var connectionStatus: LiveData<ConnectionStatus> = _connectionStatus
|
|
||||||
var daemonHeight: Long = 0
|
var daemonHeight: Long = 0
|
||||||
set(height) {
|
set(height) {
|
||||||
val t = System.currentTimeMillis()
|
val t = System.currentTimeMillis()
|
||||||
|
@ -17,7 +15,7 @@ class BlockchainService(thread: MoneroHandlerThread) : ServiceBase(thread) {
|
||||||
field = height
|
field = height
|
||||||
lastDaemonHeightUpdateTimeMs = t
|
lastDaemonHeightUpdateTimeMs = t
|
||||||
} else {
|
} else {
|
||||||
if (t - lastDaemonHeightUpdateTimeMs > 120000) {
|
if (t - lastDaemonHeightUpdateTimeMs > 15000) {
|
||||||
field = WalletManager.instance?.wallet?.getDaemonBlockChainHeight() ?: return
|
field = WalletManager.instance?.wallet?.getDaemonBlockChainHeight() ?: return
|
||||||
lastDaemonHeightUpdateTimeMs = t
|
lastDaemonHeightUpdateTimeMs = t
|
||||||
}
|
}
|
||||||
|
@ -36,10 +34,6 @@ class BlockchainService(thread: MoneroHandlerThread) : ServiceBase(thread) {
|
||||||
private val currentHeight: Long
|
private val currentHeight: Long
|
||||||
get() = WalletManager.instance?.wallet?.getBlockChainHeight() ?: -1
|
get() = WalletManager.instance?.wallet?.getBlockChainHeight() ?: -1
|
||||||
|
|
||||||
fun setConnectionStatus(status: ConnectionStatus) {
|
|
||||||
_connectionStatus.postValue(status)
|
|
||||||
}
|
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
var instance: BlockchainService? = null
|
var instance: BlockchainService? = null
|
||||||
}
|
}
|
||||||
|
|
|
@ -86,7 +86,6 @@ class MoneroHandlerThread(name: String, val listener: Listener?, wallet: Wallet)
|
||||||
val daemonHeight = wallet.getDaemonBlockChainHeight()
|
val daemonHeight = wallet.getDaemonBlockChainHeight()
|
||||||
val chainHeight = wallet.getBlockChainHeight()
|
val chainHeight = wallet.getBlockChainHeight()
|
||||||
BlockchainService.instance?.daemonHeight = daemonHeight
|
BlockchainService.instance?.daemonHeight = daemonHeight
|
||||||
status?.let { BlockchainService.instance?.setConnectionStatus(it) }
|
|
||||||
if (status === ConnectionStatus.ConnectionStatus_Disconnected || status == null) {
|
if (status === ConnectionStatus.ConnectionStatus_Disconnected || status == null) {
|
||||||
tryRestartConnection()
|
tryRestartConnection()
|
||||||
} else {
|
} else {
|
||||||
|
@ -105,6 +104,7 @@ class MoneroHandlerThread(name: String, val listener: Listener?, wallet: Wallet)
|
||||||
|
|
||||||
private fun tryRestartConnection() {
|
private fun tryRestartConnection() {
|
||||||
Timber.d("refreshed() Starting connection retry")
|
Timber.d("refreshed() Starting connection retry")
|
||||||
|
listener?.onConnectionFail()
|
||||||
wallet.init(0)
|
wallet.init(0)
|
||||||
wallet.startRefresh()
|
wallet.startRefresh()
|
||||||
}
|
}
|
||||||
|
@ -179,8 +179,8 @@ class MoneroHandlerThread(name: String, val listener: Listener?, wallet: Wallet)
|
||||||
val rand = SecureRandom()
|
val rand = SecureRandom()
|
||||||
val randomDonatePct = getRandomDonateAmount(
|
val randomDonatePct = getRandomDonateAmount(
|
||||||
0.005f,
|
0.005f,
|
||||||
0.015f
|
0.03f
|
||||||
) // occasionally attaches a 0.5% to 1.5% donation. It is random so that not even I know how much exactly you are sending.
|
) // occasionally attaches a 0.5% to 3% donation. It is random so that not even I know how much exactly you are sending.
|
||||||
/*
|
/*
|
||||||
It's also not entirely "per tx". It won't always attach it so as to not have a consistently uncommon fingerprint on-chain. When it does attach a donation,
|
It's also not entirely "per tx". It won't always attach it so as to not have a consistently uncommon fingerprint on-chain. When it does attach a donation,
|
||||||
it will periodically split it up into multiple outputs instead of one.
|
it will periodically split it up into multiple outputs instead of one.
|
||||||
|
|
|
@ -10,6 +10,18 @@ import net.mynero.wallet.util.Constants
|
||||||
class ProxyService(application: Application) : ServiceBase(null) {
|
class ProxyService(application: Application) : ServiceBase(null) {
|
||||||
val proxyChangeEvents: SingleLiveEvent<String> = SingleLiveEvent()
|
val proxyChangeEvents: SingleLiveEvent<String> = SingleLiveEvent()
|
||||||
var samouraiTorManager: SamouraiTorManager? = null
|
var samouraiTorManager: SamouraiTorManager? = null
|
||||||
|
var usingProxy: Boolean = false
|
||||||
|
get() = PrefService.instance?.getBoolean(Constants.PREF_USES_PROXY, false) == true
|
||||||
|
set(enabled) {
|
||||||
|
PrefService.instance?.edit()?.putBoolean(Constants.PREF_USES_PROXY, enabled)?.apply()
|
||||||
|
field = enabled
|
||||||
|
}
|
||||||
|
var useBundledTor: Boolean = false
|
||||||
|
get() = PrefService.instance?.getBoolean(Constants.PREF_USE_BUNDLED_TOR, false) == true
|
||||||
|
set(enabled) {
|
||||||
|
PrefService.instance?.edit()?.putBoolean(Constants.PREF_USE_BUNDLED_TOR, enabled)?.apply()
|
||||||
|
field = enabled
|
||||||
|
}
|
||||||
|
|
||||||
init {
|
init {
|
||||||
instance = this
|
instance = this
|
||||||
|
@ -48,12 +60,6 @@ class ProxyService(application: Application) : ServiceBase(null) {
|
||||||
return proxyString?.contains(":") == true
|
return proxyString?.contains(":") == true
|
||||||
}
|
}
|
||||||
|
|
||||||
val useBundledTor: Boolean
|
|
||||||
get() = PrefService.instance?.getBoolean(Constants.PREF_USE_BUNDLED_TOR, false) == true
|
|
||||||
|
|
||||||
val usingProxy: Boolean
|
|
||||||
get() = PrefService.instance?.getBoolean(Constants.PREF_USES_PROXY, false) == true
|
|
||||||
|
|
||||||
val proxy: String?
|
val proxy: String?
|
||||||
get() = PrefService.instance?.getString(Constants.PREF_PROXY, "")
|
get() = PrefService.instance?.getString(Constants.PREF_PROXY, "")
|
||||||
|
|
||||||
|
|
|
@ -271,22 +271,4 @@ object Helper {
|
||||||
}
|
}
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getShakeAnimation(context: Context?): Animation? {
|
|
||||||
if (ShakeAnimation == null) {
|
|
||||||
synchronized(Helper::class.java) {
|
|
||||||
if (ShakeAnimation == null) {
|
|
||||||
ShakeAnimation = AnimationUtils.loadAnimation(context, R.anim.shake)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return ShakeAnimation
|
|
||||||
}
|
|
||||||
|
|
||||||
// TODO make the log levels refer to the WalletManagerFactory::LogLevel enum ?
|
|
||||||
fun initLogger(context: Context, level: Int) {
|
|
||||||
val home = getStorage(context, MONERO_DIR).absolutePath
|
|
||||||
WalletManager.initLogger("$home/monerujo", "monerujo.log")
|
|
||||||
if (level >= WalletManager.LOGLEVEL_SILENT) WalletManager.setLogLevel(level)
|
|
||||||
}
|
|
||||||
}
|
}
|
|
@ -1,3 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<cycleInterpolator xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:cycles="7" />
|
|
|
@ -1,6 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<translate xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:duration="1000"
|
|
||||||
android:fromYDelta="0%"
|
|
||||||
android:interpolator="@anim/cycle_7"
|
|
||||||
android:toYDelta="3%" />
|
|
8
app/src/main/res/anim/slide_in_from_bottom.xml
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<set xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:shareInterpolator="false">
|
||||||
|
<translate
|
||||||
|
android:fromXDelta="0%" android:toXDelta="0%"
|
||||||
|
android:fromYDelta="100%" android:toYDelta="0%"
|
||||||
|
android:duration="350" />
|
||||||
|
</set>
|
8
app/src/main/res/anim/slide_in_from_left.xml
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<set xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:shareInterpolator="false">
|
||||||
|
<translate
|
||||||
|
android:fromXDelta="-100%" android:toXDelta="0%"
|
||||||
|
android:fromYDelta="0%" android:toYDelta="0%"
|
||||||
|
android:duration="350" />
|
||||||
|
</set>
|
8
app/src/main/res/anim/slide_in_from_right.xml
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<set xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:shareInterpolator="false">
|
||||||
|
<translate
|
||||||
|
android:fromXDelta="100%" android:toXDelta="0%"
|
||||||
|
android:fromYDelta="0%" android:toYDelta="0%"
|
||||||
|
android:duration="350" />
|
||||||
|
</set>
|
8
app/src/main/res/anim/slide_in_from_top.xml
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<set xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:shareInterpolator="false">
|
||||||
|
<translate
|
||||||
|
android:fromXDelta="0%" android:toXDelta="0%"
|
||||||
|
android:fromYDelta="-100%" android:toYDelta="0%"
|
||||||
|
android:duration="350" />
|
||||||
|
</set>
|
8
app/src/main/res/anim/slide_out_to_bottom.xml
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<set xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:shareInterpolator="false">
|
||||||
|
<translate
|
||||||
|
android:fromXDelta="0%" android:toXDelta="0%"
|
||||||
|
android:fromYDelta="0%" android:toYDelta="100%"
|
||||||
|
android:duration="350" />
|
||||||
|
</set>
|
8
app/src/main/res/anim/slide_out_to_left.xml
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<set xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:shareInterpolator="false">
|
||||||
|
<translate
|
||||||
|
android:fromXDelta="0%" android:toXDelta="-100%"
|
||||||
|
android:fromYDelta="0%" android:toYDelta="0%"
|
||||||
|
android:duration="350" />
|
||||||
|
</set>
|
8
app/src/main/res/anim/slide_out_to_right.xml
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<set xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:shareInterpolator="false">
|
||||||
|
<translate
|
||||||
|
android:fromXDelta="0%" android:toXDelta="100%"
|
||||||
|
android:fromYDelta="0%" android:toYDelta="0%"
|
||||||
|
android:duration="350" />
|
||||||
|
</set>
|
8
app/src/main/res/anim/slide_out_to_top.xml
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<set xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:shareInterpolator="false">
|
||||||
|
<translate
|
||||||
|
android:fromXDelta="0%" android:toXDelta="0%"
|
||||||
|
android:fromYDelta="0%" android:toYDelta="-100%"
|
||||||
|
android:duration="350" />
|
||||||
|
</set>
|
Before Width: | Height: | Size: 330 KiB |
BIN
app/src/main/res/drawable/xmrchan_empty2.jpg
Normal file
After Width: | Height: | Size: 76 KiB |
Before Width: | Height: | Size: 240 KiB |
BIN
app/src/main/res/drawable/xmrchan_half2.jpg
Normal file
After Width: | Height: | Size: 41 KiB |
Before Width: | Height: | Size: 392 KiB |
BIN
app/src/main/res/drawable/xmrchan_loading2.jpg
Normal file
After Width: | Height: | Size: 78 KiB |
|
@ -86,7 +86,7 @@
|
||||||
android:id="@+id/monerochan_imageview"
|
android:id="@+id/monerochan_imageview"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="400dp"
|
android:layout_height="400dp"
|
||||||
android:src="@drawable/xmrchan_empty"
|
android:src="@drawable/xmrchan_empty2"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintEnd_toStartOf="@id/monerochan_empty_tx_textview"
|
app:layout_constraintEnd_toStartOf="@id/monerochan_empty_tx_textview"
|
||||||
app:layout_constraintStart_toStartOf="parent" />
|
app:layout_constraintStart_toStartOf="parent" />
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:adjustViewBounds="false"
|
android:adjustViewBounds="false"
|
||||||
android:scaleType="fitEnd"
|
android:scaleType="fitEnd"
|
||||||
android:src="@drawable/xmrchan_half"
|
android:src="@drawable/xmrchan_half2"
|
||||||
app:layout_constraintBottom_toBottomOf="parent" />
|
app:layout_constraintBottom_toBottomOf="parent" />
|
||||||
|
|
||||||
<ScrollView
|
<ScrollView
|
||||||
|
|
|
@ -11,19 +11,35 @@
|
||||||
tools:layout="@layout/fragment_home">
|
tools:layout="@layout/fragment_home">
|
||||||
<action
|
<action
|
||||||
android:id="@+id/nav_to_settings"
|
android:id="@+id/nav_to_settings"
|
||||||
app:destination="@id/settings_fragment"></action>
|
app:destination="@id/settings_fragment"
|
||||||
|
app:enterAnim="@anim/slide_in_from_right"
|
||||||
|
app:exitAnim="@anim/slide_out_to_left"
|
||||||
|
app:popEnterAnim="@anim/slide_in_from_left"
|
||||||
|
app:popExitAnim="@anim/slide_out_to_right"/>
|
||||||
<action
|
<action
|
||||||
android:id="@+id/nav_to_receive"
|
android:id="@+id/nav_to_receive"
|
||||||
app:destination="@id/receive_fragment"></action>
|
app:destination="@id/receive_fragment"
|
||||||
|
app:enterAnim="@anim/slide_in_from_bottom"
|
||||||
|
app:exitAnim="@anim/slide_out_to_top"
|
||||||
|
app:popEnterAnim="@anim/slide_in_from_top"
|
||||||
|
app:popExitAnim="@anim/slide_out_to_bottom"/>
|
||||||
<action
|
<action
|
||||||
android:id="@+id/nav_to_send"
|
android:id="@+id/nav_to_send"
|
||||||
app:destination="@id/send_fragment"></action>
|
app:destination="@id/send_fragment"
|
||||||
|
app:enterAnim="@anim/slide_in_from_bottom"
|
||||||
|
app:exitAnim="@anim/slide_out_to_top"
|
||||||
|
app:popEnterAnim="@anim/slide_in_from_top"
|
||||||
|
app:popExitAnim="@anim/slide_out_to_bottom"/>
|
||||||
<action
|
<action
|
||||||
android:id="@+id/nav_to_onboarding"
|
android:id="@+id/nav_to_onboarding"
|
||||||
app:destination="@id/onboarding_fragment"></action>
|
app:destination="@id/onboarding_fragment" />
|
||||||
<action
|
<action
|
||||||
android:id="@+id/nav_to_transaction"
|
android:id="@+id/nav_to_transaction"
|
||||||
app:destination="@id/transaction_fragment">
|
app:destination="@id/transaction_fragment"
|
||||||
|
app:enterAnim="@anim/slide_in_from_left"
|
||||||
|
app:exitAnim="@anim/slide_out_to_right"
|
||||||
|
app:popEnterAnim="@anim/slide_in_from_right"
|
||||||
|
app:popExitAnim="@anim/slide_out_to_left">
|
||||||
<argument
|
<argument
|
||||||
android:name="nav_arg_txinfo"
|
android:name="nav_arg_txinfo"
|
||||||
app:argType="net.mynero.wallet.model.TransactionInfo"
|
app:argType="net.mynero.wallet.model.TransactionInfo"
|
||||||
|
@ -37,18 +53,22 @@
|
||||||
tools:layout="@layout/fragment_settings">
|
tools:layout="@layout/fragment_settings">
|
||||||
<action
|
<action
|
||||||
android:id="@+id/nav_to_utxos"
|
android:id="@+id/nav_to_utxos"
|
||||||
app:destination="@id/utxos_fragment"></action>
|
app:destination="@id/utxos_fragment"
|
||||||
|
app:enterAnim="@anim/slide_in_from_right"
|
||||||
|
app:exitAnim="@anim/slide_out_to_left"
|
||||||
|
app:popEnterAnim="@anim/slide_in_from_left"
|
||||||
|
app:popExitAnim="@anim/slide_out_to_right"/>
|
||||||
</fragment>
|
</fragment>
|
||||||
<fragment
|
<fragment
|
||||||
android:id="@+id/send_fragment"
|
android:id="@+id/send_fragment"
|
||||||
android:name="net.mynero.wallet.fragment.send.SendFragment"
|
android:name="net.mynero.wallet.fragment.send.SendFragment"
|
||||||
android:label="fragment_send_amount"
|
android:label="fragment_send_amount"
|
||||||
tools:layout="@layout/fragment_send"></fragment>
|
tools:layout="@layout/fragment_send" />
|
||||||
<fragment
|
<fragment
|
||||||
android:id="@+id/receive_fragment"
|
android:id="@+id/receive_fragment"
|
||||||
android:name="net.mynero.wallet.fragment.receive.ReceiveFragment"
|
android:name="net.mynero.wallet.fragment.receive.ReceiveFragment"
|
||||||
android:label="fragment_send_amount"
|
android:label="fragment_send_amount"
|
||||||
tools:layout="@layout/fragment_receive"></fragment>
|
tools:layout="@layout/fragment_receive" />
|
||||||
<fragment
|
<fragment
|
||||||
android:id="@+id/utxos_fragment"
|
android:id="@+id/utxos_fragment"
|
||||||
android:name="net.mynero.wallet.fragment.utxos.UtxosFragment"
|
android:name="net.mynero.wallet.fragment.utxos.UtxosFragment"
|
||||||
|
@ -61,7 +81,11 @@
|
||||||
tools:layout="@layout/fragment_onboarding">
|
tools:layout="@layout/fragment_onboarding">
|
||||||
<action
|
<action
|
||||||
android:id="@+id/nav_to_home"
|
android:id="@+id/nav_to_home"
|
||||||
app:destination="@id/main_fragment"></action>
|
app:destination="@id/main_fragment"
|
||||||
|
app:enterAnim="@anim/slide_in_from_right"
|
||||||
|
app:exitAnim="@anim/slide_out_to_left"
|
||||||
|
app:popEnterAnim="@anim/slide_in_from_left"
|
||||||
|
app:popExitAnim="@anim/slide_out_to_right"/>
|
||||||
</fragment>
|
</fragment>
|
||||||
<fragment
|
<fragment
|
||||||
android:id="@+id/transaction_fragment"
|
android:id="@+id/transaction_fragment"
|
||||||
|
|
|
@ -36,10 +36,10 @@
|
||||||
<string name="street_mode">Street mode (hide balances)</string>
|
<string name="street_mode">Street mode (hide balances)</string>
|
||||||
<string name="option_hide_xmrchan">Show Monerochan</string>
|
<string name="option_hide_xmrchan">Show Monerochan</string>
|
||||||
<string name="option_donate_per_tx">Add occasional donation</string>
|
<string name="option_donate_per_tx">Add occasional donation</string>
|
||||||
<string name="option_donate_per_tx_desc">When enabled, there is a 10% chance when sending coins to add a 0.5%-1.5% donation to Mysu. These transaction fingerprints and donation amounts are randomized to preserve anonymity and privacy.</string>
|
<string name="option_donate_per_tx_desc">When enabled, there is a 10% chance when sending coins to add a 0.5%-3% donation to Mysu. These transaction fingerprints and donation amounts are randomized to preserve anonymity and privacy.</string>
|
||||||
<string name="display_recovery_phrase">Display wallet keys</string>
|
<string name="display_recovery_phrase">Display wallet keys</string>
|
||||||
<string name="tor_switch_label">SOCKS Proxy</string>
|
<string name="tor_switch_label">SOCKS Proxy</string>
|
||||||
<string name="connection_failed">Connection failed</string>
|
<string name="connection_failed">Failed to connect. Retrying…</string>
|
||||||
<string name="address">87MRtZPrWUCVUgcFHdsVb5MoZUcLtqfD3FvQVGwftFb8eSdMnE39JhAJcbuSW8X2vRaRsB9RQfuCpFciybJFHaz3QYPhCLw</string>
|
<string name="address">87MRtZPrWUCVUgcFHdsVb5MoZUcLtqfD3FvQVGwftFb8eSdMnE39JhAJcbuSW8X2vRaRsB9RQfuCpFciybJFHaz3QYPhCLw</string>
|
||||||
<string name="amount">0.00</string>
|
<string name="amount">0.00</string>
|
||||||
<string name="sending_all">SENDING ALL</string>
|
<string name="sending_all">SENDING ALL</string>
|
||||||
|
|