v0.2 Release
8
.gitignore
vendored
@ -26,4 +26,10 @@ proguard/
|
||||
*.iml
|
||||
*.ipr
|
||||
*.iws
|
||||
.idea/
|
||||
.idea/
|
||||
|
||||
# Android Studio
|
||||
.gradle
|
||||
/local.properties
|
||||
/.idea/workspace.xml
|
||||
.DS_Store
|
797
LICENSE
@ -1,191 +1,678 @@
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 3, 29 June 2007
|
||||
|
||||
1. Definitions.
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. [http://fsf.org/]
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction, and
|
||||
distribution as defined by Sections 1 through 9 of this document.
|
||||
Preamble
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by the copyright
|
||||
owner that is granting the License.
|
||||
The GNU General Public License is a free, copyleft license for
|
||||
software and other kinds of works.
|
||||
|
||||
"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.
|
||||
The licenses for most software and other practical works are designed
|
||||
to take away your freedom to share and change the works. By contrast,
|
||||
the GNU General Public License is intended to guarantee your freedom to
|
||||
share and change all versions of a program--to make sure it remains free
|
||||
software for all its users. We, the Free Software Foundation, use the
|
||||
GNU General Public License for most of our software; it applies also to
|
||||
any other work released this way by its authors. You can apply it to
|
||||
your programs, too.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity exercising
|
||||
permissions granted by this License.
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
them if you wish), that you receive source code or can get it if you
|
||||
want it, that you can change the software or use pieces of it in new
|
||||
free programs, and that you know you can do these things.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications, including
|
||||
but not limited to software source code, documentation source, and configuration
|
||||
files.
|
||||
To protect your rights, we need to prevent others from denying you
|
||||
these rights or asking you to surrender the rights. Therefore, you have
|
||||
certain responsibilities if you distribute copies of the software, or if
|
||||
you modify it: responsibilities to respect the freedom of others.
|
||||
|
||||
"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.
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must pass on to the recipients the same
|
||||
freedoms that you received. You must make sure that they, too, receive
|
||||
or can get the source code. And you must show them these terms so they
|
||||
know their rights.
|
||||
|
||||
"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).
|
||||
Developers that use the GNU GPL protect your rights with two steps:
|
||||
(1) assert copyright on the software, and (2) offer you this License
|
||||
giving you legal permission to copy, distribute and/or modify it.
|
||||
|
||||
"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.
|
||||
For the developers' and authors' protection, the GPL clearly explains
|
||||
that there is no warranty for this free software. For both users' and
|
||||
authors' sake, the GPL requires that modified versions be marked as
|
||||
changed, so that their problems will not be attributed erroneously to
|
||||
authors of previous versions.
|
||||
|
||||
"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."
|
||||
Some devices are designed to deny users access to install or run
|
||||
modified versions of the software inside them, although the manufacturer
|
||||
can do so. This is fundamentally incompatible with the aim of
|
||||
protecting users' freedom to change the software. The systematic
|
||||
pattern of such abuse occurs in the area of products for individuals to
|
||||
use, which is precisely where it is most unacceptable. Therefore, we
|
||||
have designed this version of the GPL to prohibit the practice for those
|
||||
products. If such problems arise substantially in other domains, we
|
||||
stand ready to extend this provision to those domains in future versions
|
||||
of the GPL, as needed to protect the freedom of users.
|
||||
|
||||
"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.
|
||||
Finally, every program is threatened constantly by software patents.
|
||||
States should not allow patents to restrict development and use of
|
||||
software on general-purpose computers, but in those that do, we wish to
|
||||
avoid the special danger that patents applied to a free program could
|
||||
make it effectively proprietary. To prevent this, the GPL assures that
|
||||
patents cannot be used to render the program non-free.
|
||||
|
||||
2. Grant of Copyright License.
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
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.
|
||||
TERMS AND CONDITIONS
|
||||
|
||||
3. Grant of Patent License.
|
||||
0. Definitions.
|
||||
|
||||
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.
|
||||
"This License" refers to version 3 of the GNU General Public License.
|
||||
|
||||
4. Redistribution.
|
||||
"Copyright" also means copyright-like laws that apply to other kinds of
|
||||
works, such as semiconductor masks.
|
||||
|
||||
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:
|
||||
"The Program" refers to any copyrightable work licensed under this
|
||||
License. Each licensee is addressed as "you". "Licensees" and
|
||||
"recipients" may be individuals or organizations.
|
||||
|
||||
You must give any other recipients of the Work or Derivative Works a copy of
|
||||
this License; and
|
||||
You must cause any modified files to carry prominent notices stating that You
|
||||
changed the files; and
|
||||
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
|
||||
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.
|
||||
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.
|
||||
To "modify" a work means to copy from or adapt all or part of the work
|
||||
in a fashion requiring copyright permission, other than the making of an
|
||||
exact copy. The resulting work is called a "modified version" of the
|
||||
earlier work or a work "based on" the earlier work.
|
||||
|
||||
5. Submission of Contributions.
|
||||
A "covered work" means either the unmodified Program or a work based
|
||||
on the Program.
|
||||
|
||||
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.
|
||||
To "propagate" a work means to do anything with it that, without
|
||||
permission, would make you directly or secondarily liable for
|
||||
infringement under applicable copyright law, except executing it on a
|
||||
computer or modifying a private copy. Propagation includes copying,
|
||||
distribution (with or without modification), making available to the
|
||||
public, and in some countries other activities as well.
|
||||
|
||||
6. Trademarks.
|
||||
To "convey" a work means any kind of propagation that enables other
|
||||
parties to make or receive copies. Mere interaction with a user through
|
||||
a computer network, with no transfer of a copy, is not conveying.
|
||||
|
||||
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.
|
||||
An interactive user interface displays "Appropriate Legal Notices"
|
||||
to the extent that it includes a convenient and prominently visible
|
||||
feature that (1) displays an appropriate copyright notice, and (2)
|
||||
tells the user that there is no warranty for the work (except to the
|
||||
extent that warranties are provided), that licensees may convey the
|
||||
work under this License, and how to view a copy of this License. If
|
||||
the interface presents a list of user commands or options, such as a
|
||||
menu, a prominent item in the list meets this criterion.
|
||||
|
||||
7. Disclaimer of Warranty.
|
||||
1. Source Code.
|
||||
|
||||
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.
|
||||
The "source code" for a work means the preferred form of the work
|
||||
for making modifications to it. "Object code" means any non-source
|
||||
form of a work.
|
||||
|
||||
8. Limitation of Liability.
|
||||
A "Standard Interface" means an interface that either is an official
|
||||
standard defined by a recognized standards body, or, in the case of
|
||||
interfaces specified for a particular programming language, one that
|
||||
is widely used among developers working in that language.
|
||||
|
||||
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.
|
||||
The "System Libraries" of an executable work include anything, other
|
||||
than the work as a whole, that (a) is included in the normal form of
|
||||
packaging a Major Component, but which is not part of that Major
|
||||
Component, and (b) serves only to enable use of the work with that
|
||||
Major Component, or to implement a Standard Interface for which an
|
||||
implementation is available to the public in source code form. A
|
||||
"Major Component", in this context, means a major essential component
|
||||
(kernel, window system, and so on) of the specific operating system
|
||||
(if any) on which the executable work runs, or a compiler used to
|
||||
produce the work, or an object code interpreter used to run it.
|
||||
|
||||
9. Accepting Warranty or Additional Liability.
|
||||
The "Corresponding Source" for a work in object code form means all
|
||||
the source code needed to generate, install, and (for an executable
|
||||
work) run the object code and to modify the work, including scripts to
|
||||
control those activities. However, it does not include the work's
|
||||
System Libraries, or general-purpose tools or generally available free
|
||||
programs which are used unmodified in performing those activities but
|
||||
which are not part of the work. For example, Corresponding Source
|
||||
includes interface definition files associated with source files for
|
||||
the work, and the source code for shared libraries and dynamically
|
||||
linked subprograms that the work is specifically designed to require,
|
||||
such as by intimate data communication or control flow between those
|
||||
subprograms and other parts of the work.
|
||||
|
||||
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.
|
||||
The Corresponding Source need not include anything that users
|
||||
can regenerate automatically from other parts of the Corresponding
|
||||
Source.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
The Corresponding Source for a work in source code form is that
|
||||
same work.
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work
|
||||
2. Basic Permissions.
|
||||
|
||||
To apply the Apache License to your work, attach the following boilerplate
|
||||
notice, with the fields enclosed by brackets "[]" replaced with your own
|
||||
identifying information. (Don't include the brackets!) The text should be
|
||||
enclosed in the appropriate comment syntax for the file format. We also
|
||||
recommend that a file or class name and description of purpose be included on
|
||||
the same "printed page" as the copyright notice for easier identification within
|
||||
third-party archives.
|
||||
All rights granted under this License are granted for the term of
|
||||
copyright on the Program, and are irrevocable provided the stated
|
||||
conditions are met. This License explicitly affirms your unlimited
|
||||
permission to run the unmodified Program. The output from running a
|
||||
covered work is covered by this License only if the output, given its
|
||||
content, constitutes a covered work. This License acknowledges your
|
||||
rights of fair use or other equivalent, as provided by copyright law.
|
||||
|
||||
Copyright [yyyy] [name of copyright owner]
|
||||
You may make, run and propagate covered works that you do not
|
||||
convey, without conditions so long as your license otherwise remains
|
||||
in force. You may convey covered works to others for the sole purpose
|
||||
of having them make modifications exclusively for you, or provide you
|
||||
with facilities for running those works, provided that you comply with
|
||||
the terms of this License in conveying all material for which you do
|
||||
not control copyright. Those thus making or running the covered works
|
||||
for you must do so exclusively on your behalf, under your direction
|
||||
and control, on terms that prohibit them from making any copies of
|
||||
your copyrighted material outside their relationship with you.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
Conveying under any other circumstances is permitted solely under
|
||||
the conditions stated below. Sublicensing is not allowed; section 10
|
||||
makes it unnecessary.
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
No covered work shall be deemed part of an effective technological
|
||||
measure under any applicable law fulfilling obligations under article
|
||||
11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
similar laws prohibiting or restricting circumvention of such
|
||||
measures.
|
||||
|
||||
When you convey a covered work, you waive any legal power to forbid
|
||||
circumvention of technological measures to the extent such circumvention
|
||||
is effected by exercising rights under this License with respect to
|
||||
the covered work, and you disclaim any intention to limit operation or
|
||||
modification of the work as a means of enforcing, against the work's
|
||||
users, your or third parties' legal rights to forbid circumvention of
|
||||
technological measures.
|
||||
|
||||
4. Conveying Verbatim Copies.
|
||||
|
||||
You may convey verbatim copies of the Program's source code as you
|
||||
receive it, in any medium, provided that you conspicuously and
|
||||
appropriately publish on each copy an appropriate copyright notice;
|
||||
keep intact all notices stating that this License and any
|
||||
non-permissive terms added in accord with section 7 apply to the code;
|
||||
keep intact all notices of the absence of any warranty; and give all
|
||||
recipients a copy of this License along with the Program.
|
||||
|
||||
You may charge any price or no price for each copy that you convey,
|
||||
and you may offer support or warranty protection for a fee.
|
||||
|
||||
5. Conveying Modified Source Versions.
|
||||
|
||||
You may convey a work based on the Program, or the modifications to
|
||||
produce it from the Program, in the form of source code under the
|
||||
terms of section 4, provided that you also meet all of these conditions:
|
||||
|
||||
a) The work must carry prominent notices stating that you modified
|
||||
it, and giving a relevant date.
|
||||
|
||||
b) The work must carry prominent notices stating that it is
|
||||
released under this License and any conditions added under section
|
||||
7. This requirement modifies the requirement in section 4 to
|
||||
"keep intact all notices".
|
||||
|
||||
c) You must license the entire work, as a whole, under this
|
||||
License to anyone who comes into possession of a copy. This
|
||||
License will therefore apply, along with any applicable section 7
|
||||
additional terms, to the whole of the work, and all its parts,
|
||||
regardless of how they are packaged. This License gives no
|
||||
permission to license the work in any other way, but it does not
|
||||
invalidate such permission if you have separately received it.
|
||||
|
||||
d) If the work has interactive user interfaces, each must display
|
||||
Appropriate Legal Notices; however, if the Program has interactive
|
||||
interfaces that do not display Appropriate Legal Notices, your
|
||||
work need not make them do so.
|
||||
|
||||
A compilation of a covered work with other separate and independent
|
||||
works, which are not by their nature extensions of the covered work,
|
||||
and which are not combined with it such as to form a larger program,
|
||||
in or on a volume of a storage or distribution medium, is called an
|
||||
"aggregate" if the compilation and its resulting copyright are not
|
||||
used to limit the access or legal rights of the compilation's users
|
||||
beyond what the individual works permit. Inclusion of a covered work
|
||||
in an aggregate does not cause this License to apply to the other
|
||||
parts of the aggregate.
|
||||
|
||||
6. Conveying Non-Source Forms.
|
||||
|
||||
You may convey a covered work in object code form under the terms
|
||||
of sections 4 and 5, provided that you also convey the
|
||||
machine-readable Corresponding Source under the terms of this License,
|
||||
in one of these ways:
|
||||
|
||||
a) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by the
|
||||
Corresponding Source fixed on a durable physical medium
|
||||
customarily used for software interchange.
|
||||
|
||||
b) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by a
|
||||
written offer, valid for at least three years and valid for as
|
||||
long as you offer spare parts or customer support for that product
|
||||
model, to give anyone who possesses the object code either (1) a
|
||||
copy of the Corresponding Source for all the software in the
|
||||
product that is covered by this License, on a durable physical
|
||||
medium customarily used for software interchange, for a price no
|
||||
more than your reasonable cost of physically performing this
|
||||
conveying of source, or (2) access to copy the
|
||||
Corresponding Source from a network server at no charge.
|
||||
|
||||
c) Convey individual copies of the object code with a copy of the
|
||||
written offer to provide the Corresponding Source. This
|
||||
alternative is allowed only occasionally and noncommercially, and
|
||||
only if you received the object code with such an offer, in accord
|
||||
with subsection 6b.
|
||||
|
||||
d) Convey the object code by offering access from a designated
|
||||
place (gratis or for a charge), and offer equivalent access to the
|
||||
Corresponding Source in the same way through the same place at no
|
||||
further charge. You need not require recipients to copy the
|
||||
Corresponding Source along with the object code. If the place to
|
||||
copy the object code is a network server, the Corresponding Source
|
||||
may be on a different server (operated by you or a third party)
|
||||
that supports equivalent copying facilities, provided you maintain
|
||||
clear directions next to the object code saying where to find the
|
||||
Corresponding Source. Regardless of what server hosts the
|
||||
Corresponding Source, you remain obligated to ensure that it is
|
||||
available for as long as needed to satisfy these requirements.
|
||||
|
||||
e) Convey the object code using peer-to-peer transmission, provided
|
||||
you inform other peers where the object code and Corresponding
|
||||
Source of the work are being offered to the general public at no
|
||||
charge under subsection 6d.
|
||||
|
||||
A separable portion of the object code, whose source code is excluded
|
||||
from the Corresponding Source as a System Library, need not be
|
||||
included in conveying the object code work.
|
||||
|
||||
A "User Product" is either (1) a "consumer product", which means any
|
||||
tangible personal property which is normally used for personal, family,
|
||||
or household purposes, or (2) anything designed or sold for incorporation
|
||||
into a dwelling. In determining whether a product is a consumer product,
|
||||
doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
product received by a particular user, "normally used" refers to a
|
||||
typical or common use of that class of product, regardless of the status
|
||||
of the particular user or of the way in which the particular user
|
||||
actually uses, or expects or is expected to use, the product. A product
|
||||
is a consumer product regardless of whether the product has substantial
|
||||
commercial, industrial or non-consumer uses, unless such uses represent
|
||||
the only significant mode of use of the product.
|
||||
|
||||
"Installation Information" for a User Product means any methods,
|
||||
procedures, authorization keys, or other information required to install
|
||||
and execute modified versions of a covered work in that User Product from
|
||||
a modified version of its Corresponding Source. The information must
|
||||
suffice to ensure that the continued functioning of the modified object
|
||||
code is in no case prevented or interfered with solely because
|
||||
modification has been made.
|
||||
|
||||
If you convey an object code work under this section in, or with, or
|
||||
specifically for use in, a User Product, and the conveying occurs as
|
||||
part of a transaction in which the right of possession and use of the
|
||||
User Product is transferred to the recipient in perpetuity or for a
|
||||
fixed term (regardless of how the transaction is characterized), the
|
||||
Corresponding Source conveyed under this section must be accompanied
|
||||
by the Installation Information. But this requirement does not apply
|
||||
if neither you nor any third party retains the ability to install
|
||||
modified object code on the User Product (for example, the work has
|
||||
been installed in ROM).
|
||||
|
||||
The requirement to provide Installation Information does not include a
|
||||
requirement to continue to provide support service, warranty, or updates
|
||||
for a work that has been modified or installed by the recipient, or for
|
||||
the User Product in which it has been modified or installed. Access to a
|
||||
network may be denied when the modification itself materially and
|
||||
adversely affects the operation of the network or violates the rules and
|
||||
protocols for communication across the network.
|
||||
|
||||
Corresponding Source conveyed, and Installation Information provided,
|
||||
in accord with this section must be in a format that is publicly
|
||||
documented (and with an implementation available to the public in
|
||||
source code form), and must require no special password or key for
|
||||
unpacking, reading or copying.
|
||||
|
||||
7. Additional Terms.
|
||||
|
||||
"Additional permissions" are terms that supplement the terms of this
|
||||
License by making exceptions from one or more of its conditions.
|
||||
Additional permissions that are applicable to the entire Program shall
|
||||
be treated as though they were included in this License, to the extent
|
||||
that they are valid under applicable law. If additional permissions
|
||||
apply only to part of the Program, that part may be used separately
|
||||
under those permissions, but the entire Program remains governed by
|
||||
this License without regard to the additional permissions.
|
||||
|
||||
When you convey a copy of a covered work, you may at your option
|
||||
remove any additional permissions from that copy, or from any part of
|
||||
it. (Additional permissions may be written to require their own
|
||||
removal in certain cases when you modify the work.) You may place
|
||||
additional permissions on material, added by you to a covered work,
|
||||
for which you have or can give appropriate copyright permission.
|
||||
|
||||
Notwithstanding any other provision of this License, for material you
|
||||
add to a covered work, you may (if authorized by the copyright holders of
|
||||
that material) supplement the terms of this License with terms:
|
||||
|
||||
a) Disclaiming warranty or limiting liability differently from the
|
||||
terms of sections 15 and 16 of this License; or
|
||||
|
||||
b) Requiring preservation of specified reasonable legal notices or
|
||||
author attributions in that material or in the Appropriate Legal
|
||||
Notices displayed by works containing it; or
|
||||
|
||||
c) Prohibiting misrepresentation of the origin of that material, or
|
||||
requiring that modified versions of such material be marked in
|
||||
reasonable ways as different from the original version; or
|
||||
|
||||
d) Limiting the use for publicity purposes of names of licensors or
|
||||
authors of the material; or
|
||||
|
||||
e) Declining to grant rights under trademark law for use of some
|
||||
trade names, trademarks, or service marks; or
|
||||
|
||||
f) Requiring indemnification of licensors and authors of that
|
||||
material by anyone who conveys the material (or modified versions of
|
||||
it) with contractual assumptions of liability to the recipient, for
|
||||
any liability that these contractual assumptions directly impose on
|
||||
those licensors and authors.
|
||||
|
||||
All other non-permissive additional terms are considered "further
|
||||
restrictions" within the meaning of section 10. If the Program as you
|
||||
received it, or any part of it, contains a notice stating that it is
|
||||
governed by this License along with a term that is a further
|
||||
restriction, you may remove that term. If a license document contains
|
||||
a further restriction but permits relicensing or conveying under this
|
||||
License, you may add to a covered work material governed by the terms
|
||||
of that license document, provided that the further restriction does
|
||||
not survive such relicensing or conveying.
|
||||
|
||||
If you add terms to a covered work in accord with this section, you
|
||||
must place, in the relevant source files, a statement of the
|
||||
additional terms that apply to those files, or a notice indicating
|
||||
where to find the applicable terms.
|
||||
|
||||
Additional terms, permissive or non-permissive, may be stated in the
|
||||
form of a separately written license, or stated as exceptions;
|
||||
the above requirements apply either way.
|
||||
|
||||
8. Termination.
|
||||
|
||||
You may not propagate or modify a covered work except as expressly
|
||||
provided under this License. Any attempt otherwise to propagate or
|
||||
modify it is void, and will automatically terminate your rights under
|
||||
this License (including any patent licenses granted under the third
|
||||
paragraph of section 11).
|
||||
|
||||
However, if you cease all violation of this License, then your
|
||||
license from a particular copyright holder is reinstated (a)
|
||||
provisionally, unless and until the copyright holder explicitly and
|
||||
finally terminates your license, and (b) permanently, if the copyright
|
||||
holder fails to notify you of the violation by some reasonable means
|
||||
prior to 60 days after the cessation.
|
||||
|
||||
Moreover, your license from a particular copyright holder is
|
||||
reinstated permanently if the copyright holder notifies you of the
|
||||
violation by some reasonable means, this is the first time you have
|
||||
received notice of violation of this License (for any work) from that
|
||||
copyright holder, and you cure the violation prior to 30 days after
|
||||
your receipt of the notice.
|
||||
|
||||
Termination of your rights under this section does not terminate the
|
||||
licenses of parties who have received copies or rights from you under
|
||||
this License. If your rights have been terminated and not permanently
|
||||
reinstated, you do not qualify to receive new licenses for the same
|
||||
material under section 10.
|
||||
|
||||
9. Acceptance Not Required for Having Copies.
|
||||
|
||||
You are not required to accept this License in order to receive or
|
||||
run a copy of the Program. Ancillary propagation of a covered work
|
||||
occurring solely as a consequence of using peer-to-peer transmission
|
||||
to receive a copy likewise does not require acceptance. However,
|
||||
nothing other than this License grants you permission to propagate or
|
||||
modify any covered work. These actions infringe copyright if you do
|
||||
not accept this License. Therefore, by modifying or propagating a
|
||||
covered work, you indicate your acceptance of this License to do so.
|
||||
|
||||
10. Automatic Licensing of Downstream Recipients.
|
||||
|
||||
Each time you convey a covered work, the recipient automatically
|
||||
receives a license from the original licensors, to run, modify and
|
||||
propagate that work, subject to this License. You are not responsible
|
||||
for enforcing compliance by third parties with this License.
|
||||
|
||||
An "entity transaction" is a transaction transferring control of an
|
||||
organization, or substantially all assets of one, or subdividing an
|
||||
organization, or merging organizations. If propagation of a covered
|
||||
work results from an entity transaction, each party to that
|
||||
transaction who receives a copy of the work also receives whatever
|
||||
licenses to the work the party's predecessor in interest had or could
|
||||
give under the previous paragraph, plus a right to possession of the
|
||||
Corresponding Source of the work from the predecessor in interest, if
|
||||
the predecessor has it or can get it with reasonable efforts.
|
||||
|
||||
You may not impose any further restrictions on the exercise of the
|
||||
rights granted or affirmed under this License. For example, you may
|
||||
not impose a license fee, royalty, or other charge for exercise of
|
||||
rights granted under this License, and you may not initiate litigation
|
||||
(including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
any patent claim is infringed by making, using, selling, offering for
|
||||
sale, or importing the Program or any portion of it.
|
||||
|
||||
11. Patents.
|
||||
|
||||
A "contributor" is a copyright holder who authorizes use under this
|
||||
License of the Program or a work on which the Program is based. The
|
||||
work thus licensed is called the contributor's "contributor version".
|
||||
|
||||
A contributor's "essential patent claims" are all patent claims
|
||||
owned or controlled by the contributor, whether already acquired or
|
||||
hereafter acquired, that would be infringed by some manner, permitted
|
||||
by this License, of making, using, or selling its contributor version,
|
||||
but do not include claims that would be infringed only as a
|
||||
consequence of further modification of the contributor version. For
|
||||
purposes of this definition, "control" includes the right to grant
|
||||
patent sublicenses in a manner consistent with the requirements of
|
||||
this License.
|
||||
|
||||
Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
patent license under the contributor's essential patent claims, to
|
||||
make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
propagate the contents of its contributor version.
|
||||
|
||||
In the following three paragraphs, a "patent license" is any express
|
||||
agreement or commitment, however denominated, not to enforce a patent
|
||||
(such as an express permission to practice a patent or covenant not to
|
||||
sue for patent infringement). To "grant" such a patent license to a
|
||||
party means to make such an agreement or commitment not to enforce a
|
||||
patent against the party.
|
||||
|
||||
If you convey a covered work, knowingly relying on a patent license,
|
||||
and the Corresponding Source of the work is not available for anyone
|
||||
to copy, free of charge and under the terms of this License, through a
|
||||
publicly available network server or other readily accessible means,
|
||||
then you must either (1) cause the Corresponding Source to be so
|
||||
available, or (2) arrange to deprive yourself of the benefit of the
|
||||
patent license for this particular work, or (3) arrange, in a manner
|
||||
consistent with the requirements of this License, to extend the patent
|
||||
license to downstream recipients. "Knowingly relying" means you have
|
||||
actual knowledge that, but for the patent license, your conveying the
|
||||
covered work in a country, or your recipient's use of the covered work
|
||||
in a country, would infringe one or more identifiable patents in that
|
||||
country that you have reason to believe are valid.
|
||||
|
||||
If, pursuant to or in connection with a single transaction or
|
||||
arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
covered work, and grant a patent license to some of the parties
|
||||
receiving the covered work authorizing them to use, propagate, modify
|
||||
or convey a specific copy of the covered work, then the patent license
|
||||
you grant is automatically extended to all recipients of the covered
|
||||
work and works based on it.
|
||||
|
||||
A patent license is "discriminatory" if it does not include within
|
||||
the scope of its coverage, prohibits the exercise of, or is
|
||||
conditioned on the non-exercise of one or more of the rights that are
|
||||
specifically granted under this License. You may not convey a covered
|
||||
work if you are a party to an arrangement with a third party that is
|
||||
in the business of distributing software, under which you make payment
|
||||
to the third party based on the extent of your activity of conveying
|
||||
the work, and under which the third party grants, to any of the
|
||||
parties who would receive the covered work from you, a discriminatory
|
||||
patent license (a) in connection with copies of the covered work
|
||||
conveyed by you (or copies made from those copies), or (b) primarily
|
||||
for and in connection with specific products or compilations that
|
||||
contain the covered work, unless you entered into that arrangement,
|
||||
or that patent license was granted, prior to 28 March 2007.
|
||||
|
||||
Nothing in this License shall be construed as excluding or limiting
|
||||
any implied license or other defenses to infringement that may
|
||||
otherwise be available to you under applicable patent law.
|
||||
|
||||
12. No Surrender of Others' Freedom.
|
||||
|
||||
If conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot convey a
|
||||
covered work so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you may
|
||||
not convey it at all. For example, if you agree to terms that obligate you
|
||||
to collect a royalty for further conveying from those to whom you convey
|
||||
the Program, the only way you could satisfy both those terms and this
|
||||
License would be to refrain entirely from conveying the Program.
|
||||
|
||||
13. Use with the GNU Affero General Public License.
|
||||
|
||||
Notwithstanding any other provision of this License, you have
|
||||
permission to link or combine any covered work with a work licensed
|
||||
under version 3 of the GNU Affero General Public License into a single
|
||||
combined work, and to convey the resulting work. The terms of this
|
||||
License will continue to apply to the part which is the covered work,
|
||||
but the special requirements of the GNU Affero General Public License,
|
||||
section 13, concerning interaction through a network will apply to the
|
||||
combination as such.
|
||||
|
||||
14. Revised Versions of this License.
|
||||
|
||||
The Free Software Foundation may publish revised and/or new versions of
|
||||
the GNU General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the
|
||||
Program specifies that a certain numbered version of the GNU General
|
||||
Public License "or any later version" applies to it, you have the
|
||||
option of following the terms and conditions either of that numbered
|
||||
version or of any later version published by the Free Software
|
||||
Foundation. If the Program does not specify a version number of the
|
||||
GNU General Public License, you may choose any version ever published
|
||||
by the Free Software Foundation.
|
||||
|
||||
If the Program specifies that a proxy can decide which future
|
||||
versions of the GNU General Public License can be used, that proxy's
|
||||
public statement of acceptance of a version permanently authorizes you
|
||||
to choose that version for the Program.
|
||||
|
||||
Later license versions may give you additional or different
|
||||
permissions. However, no additional obligations are imposed on any
|
||||
author or copyright holder as a result of your choosing to follow a
|
||||
later version.
|
||||
|
||||
15. Disclaimer of Warranty.
|
||||
|
||||
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
16. Limitation of Liability.
|
||||
|
||||
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
SUCH DAMAGES.
|
||||
|
||||
17. Interpretation of Sections 15 and 16.
|
||||
|
||||
If the disclaimer of warranty and limitation of liability provided
|
||||
above cannot be given local legal effect according to their terms,
|
||||
reviewing courts shall apply local law that most closely approximates
|
||||
an absolute waiver of all civil liability in connection with the
|
||||
Program, unless a warranty or assumption of liability accompanies a
|
||||
copy of the Program in return for a fee.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
state the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
{one line to give the program's name and a brief idea of what it does.}
|
||||
Copyright (C) {year} {name of author}
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see [http://www.gnu.org/licenses/].
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program does terminal interaction, make it output a short
|
||||
notice like this when it starts in an interactive mode:
|
||||
|
||||
{project} Copyright (C) {year} {fullname}
|
||||
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, your program's commands
|
||||
might be different; for a GUI interface, you would use an "about box".
|
||||
|
||||
You should also get your employer (if you work as a programmer) or school,
|
||||
if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
For more information on this, and how to apply and follow the GNU GPL, see
|
||||
[http://www.gnu.org/licenses/].
|
||||
|
||||
The GNU General Public License does not permit incorporating your program
|
||||
into proprietary programs. If your program is a subroutine library, you
|
||||
may consider it more useful to permit linking proprietary applications with
|
||||
the library. If this is what you want to do, use the GNU Lesser General
|
||||
Public License instead of this License. But first, please read
|
||||
[http://www.gnu.org/philosophy/why-not-lgpl.html].
|
||||
|
||||
|
||||
|
1
Turbo Editor/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
/build
|
28
Turbo Editor/build.gradle
Normal file
@ -0,0 +1,28 @@
|
||||
buildscript {
|
||||
repositories {
|
||||
mavenCentral()
|
||||
}
|
||||
dependencies {
|
||||
classpath 'com.android.tools.build:gradle:0.5.+'
|
||||
}
|
||||
}
|
||||
apply plugin: 'android'
|
||||
|
||||
repositories {
|
||||
mavenCentral()
|
||||
}
|
||||
|
||||
android {
|
||||
compileSdkVersion 18
|
||||
buildToolsVersion "18.1.0"
|
||||
|
||||
defaultConfig {
|
||||
minSdkVersion 14
|
||||
targetSdkVersion 18
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
compile 'com.github.gabrielemariotti.changeloglib:library:1.2.0'
|
||||
compile fileTree(dir: 'libs', include: '*.jar')
|
||||
}
|
BIN
Turbo Editor/libs/eventbus-2.1.0-beta-1.jar
Normal file
101
Turbo Editor/src/main/AndroidManifest.xml
Normal file
@ -0,0 +1,101 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
~ Copyright (C) 2013 Vlad Mihalachi
|
||||
~
|
||||
~ This file is part of Turbo Editor.
|
||||
~
|
||||
~ Turbo Editor is free software: you can redistribute it and/or modify
|
||||
~ it under the terms of the GNU General Public License as published by
|
||||
~ the Free Software Foundation, either version 3 of the License, or
|
||||
~ (at your option) any later version.
|
||||
~
|
||||
~ Turbo Editor is distributed in the hope that it will be useful,
|
||||
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
~ GNU General Public License for more details.
|
||||
~
|
||||
~ You should have received a copy of the GNU General Public License
|
||||
~ along with Turbo Editor. If not, see <http://www.gnu.org/licenses/>.
|
||||
-->
|
||||
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="com.vmihalachi.turboeditor"
|
||||
android:versionCode="2"
|
||||
android:versionName="0.2"
|
||||
android:installLocation="auto">
|
||||
|
||||
<uses-sdk
|
||||
android:minSdkVersion="14"
|
||||
android:targetSdkVersion="18" />
|
||||
|
||||
<uses-permission android:name="android.permission.INTERNET"/>
|
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
|
||||
|
||||
<application
|
||||
android:allowBackup="true"
|
||||
android:icon="@drawable/ic_launcher"
|
||||
android:label="@string/nome_app_turbo_editor"
|
||||
android:theme="@style/AppStyle">
|
||||
|
||||
<activity
|
||||
android:name=".HomeActivity"
|
||||
android:configChanges="keyboardHidden|orientation|screenSize"
|
||||
android:windowSoftInputMode="stateHidden|adjustResize"
|
||||
android:hardwareAccelerated="false"
|
||||
android:launchMode="singleTop"
|
||||
android:alwaysRetainTaskState="true">
|
||||
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN"/>
|
||||
|
||||
<category android:name="android.intent.category.LAUNCHER"/>
|
||||
<category android:name="android.intent.category.MULTIWINDOW_LAUNCHER"/>
|
||||
</intent-filter>
|
||||
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.VIEW"/>
|
||||
<action android:name="android.intent.action.EDIT"/>
|
||||
<action android:name="android.intent.action.PICK"/>
|
||||
|
||||
<category android:name="android.intent.category.DEFAULT"/>
|
||||
<category android:name="android.intent.category.BROWSABLE"/>
|
||||
|
||||
<data android:scheme="file"/>
|
||||
<data android:mimeType="text/*"/>
|
||||
<data android:pathPattern="*.txt"/>
|
||||
<data android:pathPattern="*.html"/>
|
||||
<data android:pathPattern="*.css"/>
|
||||
<data android:pathPattern="*.js"/>
|
||||
<data android:pathPattern="*.php"/>
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
<activity
|
||||
android:name="com.vmihalachi.turboeditor.PreferenceAbout"
|
||||
android:configChanges="keyboardHidden|orientation|screenSize"
|
||||
android:label="@string/aboutactivity_info_category"/>
|
||||
|
||||
<activity
|
||||
android:name="com.vmihalachi.turboeditor.SelectFileActivity"
|
||||
android:configChanges="keyboardHidden|orientation|screenSize"
|
||||
android:label="@string/open_a_file"/>
|
||||
|
||||
<meta-data
|
||||
android:name="com.sec.android.support.multiwindow"
|
||||
android:value="true"/>
|
||||
<meta-data
|
||||
android:name="com.sec.android.multiwindow.DEFAULT_SIZE_W"
|
||||
android:value="632.0dip"/>
|
||||
<meta-data
|
||||
android:name="com.sec.android.multiwindow.DEFAULT_SIZE_H"
|
||||
android:value="598.0dip"/>
|
||||
<meta-data
|
||||
android:name="com.sec.android.multiwindow.MINIMUM_SIZE_W"
|
||||
android:value="632.0dip"/>
|
||||
<meta-data
|
||||
android:name="com.sec.android.multiwindow.MINIMUM_SIZE_H"
|
||||
android:value="598.0dip"/>
|
||||
</application>
|
||||
|
||||
</manifest>
|
621
Turbo Editor/src/main/LICENSE
Normal file
@ -0,0 +1,621 @@
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 3, 29 June 2007
|
||||
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. {http://fsf.org/}
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The GNU General Public License is a free, copyleft license for
|
||||
software and other kinds of works.
|
||||
|
||||
The licenses for most software and other practical works are designed
|
||||
to take away your freedom to share and change the works. By contrast,
|
||||
the GNU General Public License is intended to guarantee your freedom to
|
||||
share and change all versions of a program--to make sure it remains free
|
||||
software for all its users. We, the Free Software Foundation, use the
|
||||
GNU General Public License for most of our software; it applies also to
|
||||
any other work released this way by its authors. You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
them if you wish), that you receive source code or can get it if you
|
||||
want it, that you can change the software or use pieces of it in new
|
||||
free programs, and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to prevent others from denying you
|
||||
these rights or asking you to surrender the rights. Therefore, you have
|
||||
certain responsibilities if you distribute copies of the software, or if
|
||||
you modify it: responsibilities to respect the freedom of others.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must pass on to the recipients the same
|
||||
freedoms that you received. You must make sure that they, too, receive
|
||||
or can get the source code. And you must show them these terms so they
|
||||
know their rights.
|
||||
|
||||
Developers that use the GNU GPL protect your rights with two steps:
|
||||
(1) assert copyright on the software, and (2) offer you this License
|
||||
giving you legal permission to copy, distribute and/or modify it.
|
||||
|
||||
For the developers' and authors' protection, the GPL clearly explains
|
||||
that there is no warranty for this free software. For both users' and
|
||||
authors' sake, the GPL requires that modified versions be marked as
|
||||
changed, so that their problems will not be attributed erroneously to
|
||||
authors of previous versions.
|
||||
|
||||
Some devices are designed to deny users access to install or run
|
||||
modified versions of the software inside them, although the manufacturer
|
||||
can do so. This is fundamentally incompatible with the aim of
|
||||
protecting users' freedom to change the software. The systematic
|
||||
pattern of such abuse occurs in the area of products for individuals to
|
||||
use, which is precisely where it is most unacceptable. Therefore, we
|
||||
have designed this version of the GPL to prohibit the practice for those
|
||||
products. If such problems arise substantially in other domains, we
|
||||
stand ready to extend this provision to those domains in future versions
|
||||
of the GPL, as needed to protect the freedom of users.
|
||||
|
||||
Finally, every program is threatened constantly by software patents.
|
||||
States should not allow patents to restrict development and use of
|
||||
software on general-purpose computers, but in those that do, we wish to
|
||||
avoid the special danger that patents applied to a free program could
|
||||
make it effectively proprietary. To prevent this, the GPL assures that
|
||||
patents cannot be used to render the program non-free.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
TERMS AND CONDITIONS
|
||||
|
||||
0. Definitions.
|
||||
|
||||
"This License" refers to version 3 of the GNU General Public License.
|
||||
|
||||
"Copyright" also means copyright-like laws that apply to other kinds of
|
||||
works, such as semiconductor masks.
|
||||
|
||||
"The Program" refers to any copyrightable work licensed under this
|
||||
License. Each licensee is addressed as "you". "Licensees" and
|
||||
"recipients" may be individuals or organizations.
|
||||
|
||||
To "modify" a work means to copy from or adapt all or part of the work
|
||||
in a fashion requiring copyright permission, other than the making of an
|
||||
exact copy. The resulting work is called a "modified version" of the
|
||||
earlier work or a work "based on" the earlier work.
|
||||
|
||||
A "covered work" means either the unmodified Program or a work based
|
||||
on the Program.
|
||||
|
||||
To "propagate" a work means to do anything with it that, without
|
||||
permission, would make you directly or secondarily liable for
|
||||
infringement under applicable copyright law, except executing it on a
|
||||
computer or modifying a private copy. Propagation includes copying,
|
||||
distribution (with or without modification), making available to the
|
||||
public, and in some countries other activities as well.
|
||||
|
||||
To "convey" a work means any kind of propagation that enables other
|
||||
parties to make or receive copies. Mere interaction with a user through
|
||||
a computer network, with no transfer of a copy, is not conveying.
|
||||
|
||||
An interactive user interface displays "Appropriate Legal Notices"
|
||||
to the extent that it includes a convenient and prominently visible
|
||||
feature that (1) displays an appropriate copyright notice, and (2)
|
||||
tells the user that there is no warranty for the work (except to the
|
||||
extent that warranties are provided), that licensees may convey the
|
||||
work under this License, and how to view a copy of this License. If
|
||||
the interface presents a list of user commands or options, such as a
|
||||
menu, a prominent item in the list meets this criterion.
|
||||
|
||||
1. Source Code.
|
||||
|
||||
The "source code" for a work means the preferred form of the work
|
||||
for making modifications to it. "Object code" means any non-source
|
||||
form of a work.
|
||||
|
||||
A "Standard Interface" means an interface that either is an official
|
||||
standard defined by a recognized standards body, or, in the case of
|
||||
interfaces specified for a particular programming language, one that
|
||||
is widely used among developers working in that language.
|
||||
|
||||
The "System Libraries" of an executable work include anything, other
|
||||
than the work as a whole, that (a) is included in the normal form of
|
||||
packaging a Major Component, but which is not part of that Major
|
||||
Component, and (b) serves only to enable use of the work with that
|
||||
Major Component, or to implement a Standard Interface for which an
|
||||
implementation is available to the public in source code form. A
|
||||
"Major Component", in this context, means a major essential component
|
||||
(kernel, window system, and so on) of the specific operating system
|
||||
(if any) on which the executable work runs, or a compiler used to
|
||||
produce the work, or an object code interpreter used to run it.
|
||||
|
||||
The "Corresponding Source" for a work in object code form means all
|
||||
the source code needed to generate, install, and (for an executable
|
||||
work) run the object code and to modify the work, including scripts to
|
||||
control those activities. However, it does not include the work's
|
||||
System Libraries, or general-purpose tools or generally available free
|
||||
programs which are used unmodified in performing those activities but
|
||||
which are not part of the work. For example, Corresponding Source
|
||||
includes interface definition files associated with source files for
|
||||
the work, and the source code for shared libraries and dynamically
|
||||
linked subprograms that the work is specifically designed to require,
|
||||
such as by intimate data communication or control flow between those
|
||||
subprograms and other parts of the work.
|
||||
|
||||
The Corresponding Source need not include anything that users
|
||||
can regenerate automatically from other parts of the Corresponding
|
||||
Source.
|
||||
|
||||
The Corresponding Source for a work in source code form is that
|
||||
same work.
|
||||
|
||||
2. Basic Permissions.
|
||||
|
||||
All rights granted under this License are granted for the term of
|
||||
copyright on the Program, and are irrevocable provided the stated
|
||||
conditions are met. This License explicitly affirms your unlimited
|
||||
permission to run the unmodified Program. The output from running a
|
||||
covered work is covered by this License only if the output, given its
|
||||
content, constitutes a covered work. This License acknowledges your
|
||||
rights of fair use or other equivalent, as provided by copyright law.
|
||||
|
||||
You may make, run and propagate covered works that you do not
|
||||
convey, without conditions so long as your license otherwise remains
|
||||
in force. You may convey covered works to others for the sole purpose
|
||||
of having them make modifications exclusively for you, or provide you
|
||||
with facilities for running those works, provided that you comply with
|
||||
the terms of this License in conveying all material for which you do
|
||||
not control copyright. Those thus making or running the covered works
|
||||
for you must do so exclusively on your behalf, under your direction
|
||||
and control, on terms that prohibit them from making any copies of
|
||||
your copyrighted material outside their relationship with you.
|
||||
|
||||
Conveying under any other circumstances is permitted solely under
|
||||
the conditions stated below. Sublicensing is not allowed; section 10
|
||||
makes it unnecessary.
|
||||
|
||||
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
|
||||
No covered work shall be deemed part of an effective technological
|
||||
measure under any applicable law fulfilling obligations under article
|
||||
11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
similar laws prohibiting or restricting circumvention of such
|
||||
measures.
|
||||
|
||||
When you convey a covered work, you waive any legal power to forbid
|
||||
circumvention of technological measures to the extent such circumvention
|
||||
is effected by exercising rights under this License with respect to
|
||||
the covered work, and you disclaim any intention to limit operation or
|
||||
modification of the work as a means of enforcing, against the work's
|
||||
users, your or third parties' legal rights to forbid circumvention of
|
||||
technological measures.
|
||||
|
||||
4. Conveying Verbatim Copies.
|
||||
|
||||
You may convey verbatim copies of the Program's source code as you
|
||||
receive it, in any medium, provided that you conspicuously and
|
||||
appropriately publish on each copy an appropriate copyright notice;
|
||||
keep intact all notices stating that this License and any
|
||||
non-permissive terms added in accord with section 7 apply to the code;
|
||||
keep intact all notices of the absence of any warranty; and give all
|
||||
recipients a copy of this License along with the Program.
|
||||
|
||||
You may charge any price or no price for each copy that you convey,
|
||||
and you may offer support or warranty protection for a fee.
|
||||
|
||||
5. Conveying Modified Source Versions.
|
||||
|
||||
You may convey a work based on the Program, or the modifications to
|
||||
produce it from the Program, in the form of source code under the
|
||||
terms of section 4, provided that you also meet all of these conditions:
|
||||
|
||||
a) The work must carry prominent notices stating that you modified
|
||||
it, and giving a relevant date.
|
||||
|
||||
b) The work must carry prominent notices stating that it is
|
||||
released under this License and any conditions added under section
|
||||
7. This requirement modifies the requirement in section 4 to
|
||||
"keep intact all notices".
|
||||
|
||||
c) You must license the entire work, as a whole, under this
|
||||
License to anyone who comes into possession of a copy. This
|
||||
License will therefore apply, along with any applicable section 7
|
||||
additional terms, to the whole of the work, and all its parts,
|
||||
regardless of how they are packaged. This License gives no
|
||||
permission to license the work in any other way, but it does not
|
||||
invalidate such permission if you have separately received it.
|
||||
|
||||
d) If the work has interactive user interfaces, each must display
|
||||
Appropriate Legal Notices; however, if the Program has interactive
|
||||
interfaces that do not display Appropriate Legal Notices, your
|
||||
work need not make them do so.
|
||||
|
||||
A compilation of a covered work with other separate and independent
|
||||
works, which are not by their nature extensions of the covered work,
|
||||
and which are not combined with it such as to form a larger program,
|
||||
in or on a volume of a storage or distribution medium, is called an
|
||||
"aggregate" if the compilation and its resulting copyright are not
|
||||
used to limit the access or legal rights of the compilation's users
|
||||
beyond what the individual works permit. Inclusion of a covered work
|
||||
in an aggregate does not cause this License to apply to the other
|
||||
parts of the aggregate.
|
||||
|
||||
6. Conveying Non-Source Forms.
|
||||
|
||||
You may convey a covered work in object code form under the terms
|
||||
of sections 4 and 5, provided that you also convey the
|
||||
machine-readable Corresponding Source under the terms of this License,
|
||||
in one of these ways:
|
||||
|
||||
a) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by the
|
||||
Corresponding Source fixed on a durable physical medium
|
||||
customarily used for software interchange.
|
||||
|
||||
b) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by a
|
||||
written offer, valid for at least three years and valid for as
|
||||
long as you offer spare parts or customer support for that product
|
||||
model, to give anyone who possesses the object code either (1) a
|
||||
copy of the Corresponding Source for all the software in the
|
||||
product that is covered by this License, on a durable physical
|
||||
medium customarily used for software interchange, for a price no
|
||||
more than your reasonable cost of physically performing this
|
||||
conveying of source, or (2) access to copy the
|
||||
Corresponding Source from a network server at no charge.
|
||||
|
||||
c) Convey individual copies of the object code with a copy of the
|
||||
written offer to provide the Corresponding Source. This
|
||||
alternative is allowed only occasionally and noncommercially, and
|
||||
only if you received the object code with such an offer, in accord
|
||||
with subsection 6b.
|
||||
|
||||
d) Convey the object code by offering access from a designated
|
||||
place (gratis or for a charge), and offer equivalent access to the
|
||||
Corresponding Source in the same way through the same place at no
|
||||
further charge. You need not require recipients to copy the
|
||||
Corresponding Source along with the object code. If the place to
|
||||
copy the object code is a network server, the Corresponding Source
|
||||
may be on a different server (operated by you or a third party)
|
||||
that supports equivalent copying facilities, provided you maintain
|
||||
clear directions next to the object code saying where to find the
|
||||
Corresponding Source. Regardless of what server hosts the
|
||||
Corresponding Source, you remain obligated to ensure that it is
|
||||
available for as long as needed to satisfy these requirements.
|
||||
|
||||
e) Convey the object code using peer-to-peer transmission, provided
|
||||
you inform other peers where the object code and Corresponding
|
||||
Source of the work are being offered to the general public at no
|
||||
charge under subsection 6d.
|
||||
|
||||
A separable portion of the object code, whose source code is excluded
|
||||
from the Corresponding Source as a System Library, need not be
|
||||
included in conveying the object code work.
|
||||
|
||||
A "User Product" is either (1) a "consumer product", which means any
|
||||
tangible personal property which is normally used for personal, family,
|
||||
or household purposes, or (2) anything designed or sold for incorporation
|
||||
into a dwelling. In determining whether a product is a consumer product,
|
||||
doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
product received by a particular user, "normally used" refers to a
|
||||
typical or common use of that class of product, regardless of the status
|
||||
of the particular user or of the way in which the particular user
|
||||
actually uses, or expects or is expected to use, the product. A product
|
||||
is a consumer product regardless of whether the product has substantial
|
||||
commercial, industrial or non-consumer uses, unless such uses represent
|
||||
the only significant mode of use of the product.
|
||||
|
||||
"Installation Information" for a User Product means any methods,
|
||||
procedures, authorization keys, or other information required to install
|
||||
and execute modified versions of a covered work in that User Product from
|
||||
a modified version of its Corresponding Source. The information must
|
||||
suffice to ensure that the continued functioning of the modified object
|
||||
code is in no case prevented or interfered with solely because
|
||||
modification has been made.
|
||||
|
||||
If you convey an object code work under this section in, or with, or
|
||||
specifically for use in, a User Product, and the conveying occurs as
|
||||
part of a transaction in which the right of possession and use of the
|
||||
User Product is transferred to the recipient in perpetuity or for a
|
||||
fixed term (regardless of how the transaction is characterized), the
|
||||
Corresponding Source conveyed under this section must be accompanied
|
||||
by the Installation Information. But this requirement does not apply
|
||||
if neither you nor any third party retains the ability to install
|
||||
modified object code on the User Product (for example, the work has
|
||||
been installed in ROM).
|
||||
|
||||
The requirement to provide Installation Information does not include a
|
||||
requirement to continue to provide support service, warranty, or updates
|
||||
for a work that has been modified or installed by the recipient, or for
|
||||
the User Product in which it has been modified or installed. Access to a
|
||||
network may be denied when the modification itself materially and
|
||||
adversely affects the operation of the network or violates the rules and
|
||||
protocols for communication across the network.
|
||||
|
||||
Corresponding Source conveyed, and Installation Information provided,
|
||||
in accord with this section must be in a format that is publicly
|
||||
documented (and with an implementation available to the public in
|
||||
source code form), and must require no special password or key for
|
||||
unpacking, reading or copying.
|
||||
|
||||
7. Additional Terms.
|
||||
|
||||
"Additional permissions" are terms that supplement the terms of this
|
||||
License by making exceptions from one or more of its conditions.
|
||||
Additional permissions that are applicable to the entire Program shall
|
||||
be treated as though they were included in this License, to the extent
|
||||
that they are valid under applicable law. If additional permissions
|
||||
apply only to part of the Program, that part may be used separately
|
||||
under those permissions, but the entire Program remains governed by
|
||||
this License without regard to the additional permissions.
|
||||
|
||||
When you convey a copy of a covered work, you may at your option
|
||||
remove any additional permissions from that copy, or from any part of
|
||||
it. (Additional permissions may be written to require their own
|
||||
removal in certain cases when you modify the work.) You may place
|
||||
additional permissions on material, added by you to a covered work,
|
||||
for which you have or can give appropriate copyright permission.
|
||||
|
||||
Notwithstanding any other provision of this License, for material you
|
||||
add to a covered work, you may (if authorized by the copyright holders of
|
||||
that material) supplement the terms of this License with terms:
|
||||
|
||||
a) Disclaiming warranty or limiting liability differently from the
|
||||
terms of sections 15 and 16 of this License; or
|
||||
|
||||
b) Requiring preservation of specified reasonable legal notices or
|
||||
author attributions in that material or in the Appropriate Legal
|
||||
Notices displayed by works containing it; or
|
||||
|
||||
c) Prohibiting misrepresentation of the origin of that material, or
|
||||
requiring that modified versions of such material be marked in
|
||||
reasonable ways as different from the original version; or
|
||||
|
||||
d) Limiting the use for publicity purposes of names of licensors or
|
||||
authors of the material; or
|
||||
|
||||
e) Declining to grant rights under trademark law for use of some
|
||||
trade names, trademarks, or service marks; or
|
||||
|
||||
f) Requiring indemnification of licensors and authors of that
|
||||
material by anyone who conveys the material (or modified versions of
|
||||
it) with contractual assumptions of liability to the recipient, for
|
||||
any liability that these contractual assumptions directly impose on
|
||||
those licensors and authors.
|
||||
|
||||
All other non-permissive additional terms are considered "further
|
||||
restrictions" within the meaning of section 10. If the Program as you
|
||||
received it, or any part of it, contains a notice stating that it is
|
||||
governed by this License along with a term that is a further
|
||||
restriction, you may remove that term. If a license document contains
|
||||
a further restriction but permits relicensing or conveying under this
|
||||
License, you may add to a covered work material governed by the terms
|
||||
of that license document, provided that the further restriction does
|
||||
not survive such relicensing or conveying.
|
||||
|
||||
If you add terms to a covered work in accord with this section, you
|
||||
must place, in the relevant source files, a statement of the
|
||||
additional terms that apply to those files, or a notice indicating
|
||||
where to find the applicable terms.
|
||||
|
||||
Additional terms, permissive or non-permissive, may be stated in the
|
||||
form of a separately written license, or stated as exceptions;
|
||||
the above requirements apply either way.
|
||||
|
||||
8. Termination.
|
||||
|
||||
You may not propagate or modify a covered work except as expressly
|
||||
provided under this License. Any attempt otherwise to propagate or
|
||||
modify it is void, and will automatically terminate your rights under
|
||||
this License (including any patent licenses granted under the third
|
||||
paragraph of section 11).
|
||||
|
||||
However, if you cease all violation of this License, then your
|
||||
license from a particular copyright holder is reinstated (a)
|
||||
provisionally, unless and until the copyright holder explicitly and
|
||||
finally terminates your license, and (b) permanently, if the copyright
|
||||
holder fails to notify you of the violation by some reasonable means
|
||||
prior to 60 days after the cessation.
|
||||
|
||||
Moreover, your license from a particular copyright holder is
|
||||
reinstated permanently if the copyright holder notifies you of the
|
||||
violation by some reasonable means, this is the first time you have
|
||||
received notice of violation of this License (for any work) from that
|
||||
copyright holder, and you cure the violation prior to 30 days after
|
||||
your receipt of the notice.
|
||||
|
||||
Termination of your rights under this section does not terminate the
|
||||
licenses of parties who have received copies or rights from you under
|
||||
this License. If your rights have been terminated and not permanently
|
||||
reinstated, you do not qualify to receive new licenses for the same
|
||||
material under section 10.
|
||||
|
||||
9. Acceptance Not Required for Having Copies.
|
||||
|
||||
You are not required to accept this License in order to receive or
|
||||
run a copy of the Program. Ancillary propagation of a covered work
|
||||
occurring solely as a consequence of using peer-to-peer transmission
|
||||
to receive a copy likewise does not require acceptance. However,
|
||||
nothing other than this License grants you permission to propagate or
|
||||
modify any covered work. These actions infringe copyright if you do
|
||||
not accept this License. Therefore, by modifying or propagating a
|
||||
covered work, you indicate your acceptance of this License to do so.
|
||||
|
||||
10. Automatic Licensing of Downstream Recipients.
|
||||
|
||||
Each time you convey a covered work, the recipient automatically
|
||||
receives a license from the original licensors, to run, modify and
|
||||
propagate that work, subject to this License. You are not responsible
|
||||
for enforcing compliance by third parties with this License.
|
||||
|
||||
An "entity transaction" is a transaction transferring control of an
|
||||
organization, or substantially all assets of one, or subdividing an
|
||||
organization, or merging organizations. If propagation of a covered
|
||||
work results from an entity transaction, each party to that
|
||||
transaction who receives a copy of the work also receives whatever
|
||||
licenses to the work the party's predecessor in interest had or could
|
||||
give under the previous paragraph, plus a right to possession of the
|
||||
Corresponding Source of the work from the predecessor in interest, if
|
||||
the predecessor has it or can get it with reasonable efforts.
|
||||
|
||||
You may not impose any further restrictions on the exercise of the
|
||||
rights granted or affirmed under this License. For example, you may
|
||||
not impose a license fee, royalty, or other charge for exercise of
|
||||
rights granted under this License, and you may not initiate litigation
|
||||
(including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
any patent claim is infringed by making, using, selling, offering for
|
||||
sale, or importing the Program or any portion of it.
|
||||
|
||||
11. Patents.
|
||||
|
||||
A "contributor" is a copyright holder who authorizes use under this
|
||||
License of the Program or a work on which the Program is based. The
|
||||
work thus licensed is called the contributor's "contributor version".
|
||||
|
||||
A contributor's "essential patent claims" are all patent claims
|
||||
owned or controlled by the contributor, whether already acquired or
|
||||
hereafter acquired, that would be infringed by some manner, permitted
|
||||
by this License, of making, using, or selling its contributor version,
|
||||
but do not include claims that would be infringed only as a
|
||||
consequence of further modification of the contributor version. For
|
||||
purposes of this definition, "control" includes the right to grant
|
||||
patent sublicenses in a manner consistent with the requirements of
|
||||
this License.
|
||||
|
||||
Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
patent license under the contributor's essential patent claims, to
|
||||
make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
propagate the contents of its contributor version.
|
||||
|
||||
In the following three paragraphs, a "patent license" is any express
|
||||
agreement or commitment, however denominated, not to enforce a patent
|
||||
(such as an express permission to practice a patent or covenant not to
|
||||
sue for patent infringement). To "grant" such a patent license to a
|
||||
party means to make such an agreement or commitment not to enforce a
|
||||
patent against the party.
|
||||
|
||||
If you convey a covered work, knowingly relying on a patent license,
|
||||
and the Corresponding Source of the work is not available for anyone
|
||||
to copy, free of charge and under the terms of this License, through a
|
||||
publicly available network server or other readily accessible means,
|
||||
then you must either (1) cause the Corresponding Source to be so
|
||||
available, or (2) arrange to deprive yourself of the benefit of the
|
||||
patent license for this particular work, or (3) arrange, in a manner
|
||||
consistent with the requirements of this License, to extend the patent
|
||||
license to downstream recipients. "Knowingly relying" means you have
|
||||
actual knowledge that, but for the patent license, your conveying the
|
||||
covered work in a country, or your recipient's use of the covered work
|
||||
in a country, would infringe one or more identifiable patents in that
|
||||
country that you have reason to believe are valid.
|
||||
|
||||
If, pursuant to or in connection with a single transaction or
|
||||
arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
covered work, and grant a patent license to some of the parties
|
||||
receiving the covered work authorizing them to use, propagate, modify
|
||||
or convey a specific copy of the covered work, then the patent license
|
||||
you grant is automatically extended to all recipients of the covered
|
||||
work and works based on it.
|
||||
|
||||
A patent license is "discriminatory" if it does not include within
|
||||
the scope of its coverage, prohibits the exercise of, or is
|
||||
conditioned on the non-exercise of one or more of the rights that are
|
||||
specifically granted under this License. You may not convey a covered
|
||||
work if you are a party to an arrangement with a third party that is
|
||||
in the business of distributing software, under which you make payment
|
||||
to the third party based on the extent of your activity of conveying
|
||||
the work, and under which the third party grants, to any of the
|
||||
parties who would receive the covered work from you, a discriminatory
|
||||
patent license (a) in connection with copies of the covered work
|
||||
conveyed by you (or copies made from those copies), or (b) primarily
|
||||
for and in connection with specific products or compilations that
|
||||
contain the covered work, unless you entered into that arrangement,
|
||||
or that patent license was granted, prior to 28 March 2007.
|
||||
|
||||
Nothing in this License shall be construed as excluding or limiting
|
||||
any implied license or other defenses to infringement that may
|
||||
otherwise be available to you under applicable patent law.
|
||||
|
||||
12. No Surrender of Others' Freedom.
|
||||
|
||||
If conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot convey a
|
||||
covered work so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you may
|
||||
not convey it at all. For example, if you agree to terms that obligate you
|
||||
to collect a royalty for further conveying from those to whom you convey
|
||||
the Program, the only way you could satisfy both those terms and this
|
||||
License would be to refrain entirely from conveying the Program.
|
||||
|
||||
13. Use with the GNU Affero General Public License.
|
||||
|
||||
Notwithstanding any other provision of this License, you have
|
||||
permission to link or combine any covered work with a work licensed
|
||||
under version 3 of the GNU Affero General Public License into a single
|
||||
combined work, and to convey the resulting work. The terms of this
|
||||
License will continue to apply to the part which is the covered work,
|
||||
but the special requirements of the GNU Affero General Public License,
|
||||
section 13, concerning interaction through a network will apply to the
|
||||
combination as such.
|
||||
|
||||
14. Revised Versions of this License.
|
||||
|
||||
The Free Software Foundation may publish revised and/or new versions of
|
||||
the GNU General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the
|
||||
Program specifies that a certain numbered version of the GNU General
|
||||
Public License "or any later version" applies to it, you have the
|
||||
option of following the terms and conditions either of that numbered
|
||||
version or of any later version published by the Free Software
|
||||
Foundation. If the Program does not specify a version number of the
|
||||
GNU General Public License, you may choose any version ever published
|
||||
by the Free Software Foundation.
|
||||
|
||||
If the Program specifies that a proxy can decide which future
|
||||
versions of the GNU General Public License can be used, that proxy's
|
||||
public statement of acceptance of a version permanently authorizes you
|
||||
to choose that version for the Program.
|
||||
|
||||
Later license versions may give you additional or different
|
||||
permissions. However, no additional obligations are imposed on any
|
||||
author or copyright holder as a result of your choosing to follow a
|
||||
later version.
|
||||
|
||||
15. Disclaimer of Warranty.
|
||||
|
||||
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
16. Limitation of Liability.
|
||||
|
||||
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
SUCH DAMAGES.
|
||||
|
||||
17. Interpretation of Sections 15 and 16.
|
||||
|
||||
If the disclaimer of warranty and limitation of liability provided
|
||||
above cannot be given local legal effect according to their terms,
|
||||
reviewing courts shall apply local law that most closely approximates
|
||||
an absolute waiver of all civil liability in connection with the
|
||||
Program, unless a warranty or assumption of liability accompanies a
|
||||
copy of the Program in return for a fee.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
4
Turbo Editor/src/main/README.md
Normal file
@ -0,0 +1,4 @@
|
||||
turboeditor
|
||||
===========
|
||||
|
||||
simple and beatiful android file editor
|
@ -0,0 +1,68 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2013 Gabriele Mariotti.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
******************************************************************************/
|
||||
package com.vmihalachi.turboeditor;
|
||||
|
||||
import android.app.AlertDialog;
|
||||
import android.app.Dialog;
|
||||
import android.app.DialogFragment;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.view.LayoutInflater;
|
||||
|
||||
import it.gmariotti.changelibs.library.view.ChangeLogListView;
|
||||
|
||||
/**
|
||||
* Example with Dialog
|
||||
*
|
||||
* @author Gabriele Mariotti (gabri.mariotti@gmail.com)
|
||||
*/
|
||||
public class DialogStandardFragment extends DialogFragment {
|
||||
|
||||
public DialogStandardFragment() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Dialog onCreateDialog(Bundle savedInstanceState) {
|
||||
|
||||
LayoutInflater layoutInflater = (LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
|
||||
ChangeLogListView chgList = (ChangeLogListView) layoutInflater.inflate(R.layout.demo_changelog_fragment_dialogstandard, null);
|
||||
|
||||
return new AlertDialog.Builder(getActivity())
|
||||
.setTitle(R.string.aboutactivity_changelog)
|
||||
.setView(chgList)
|
||||
.setNegativeButton(android.R.string.cancel,
|
||||
new DialogInterface.OnClickListener() {
|
||||
public void onClick(DialogInterface dialog, int whichButton) {
|
||||
dialog.dismiss();
|
||||
}
|
||||
}
|
||||
)
|
||||
.setPositiveButton(R.string.vota, new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(final DialogInterface dialog, final int which) {
|
||||
try {
|
||||
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + getActivity().getPackageName())));
|
||||
} catch (Exception e) {
|
||||
}
|
||||
}
|
||||
})
|
||||
.create();
|
||||
|
||||
}
|
||||
}
|
@ -0,0 +1,107 @@
|
||||
/*
|
||||
* Copyright (C) 2013 Vlad Mihalachi
|
||||
*
|
||||
* This file is part of Turbo Editor.
|
||||
*
|
||||
* Turbo Editor is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Turbo Editor is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with Turbo Editor. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.vmihalachi.turboeditor;
|
||||
|
||||
import android.app.Dialog;
|
||||
import android.app.DialogFragment;
|
||||
import android.os.Bundle;
|
||||
import android.view.KeyEvent;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.WindowManager;
|
||||
import android.view.inputmethod.EditorInfo;
|
||||
import android.widget.Button;
|
||||
import android.widget.EditText;
|
||||
import android.widget.TextView;
|
||||
|
||||
// ...
|
||||
public class EditTextDialog extends DialogFragment implements TextView.OnEditorActionListener {
|
||||
|
||||
private EditText mEditText;
|
||||
|
||||
public static EditTextDialog newInstance(final String hint) {
|
||||
final EditTextDialog f = new EditTextDialog();
|
||||
|
||||
// Supply num input as an argument.
|
||||
final Bundle args = new Bundle();
|
||||
args.putString("hint", hint);
|
||||
f.setArguments(args);
|
||||
return f;
|
||||
}
|
||||
|
||||
@Override
|
||||
public View onCreateView(final LayoutInflater inflater, final ViewGroup container,
|
||||
final Bundle savedInstanceState) {
|
||||
|
||||
final Dialog dialog = getDialog();
|
||||
final String title = getString(R.string.codifica);
|
||||
dialog.setTitle(title);
|
||||
|
||||
final View view = inflater.inflate(R.layout.dialog_fragment_edittext, container);
|
||||
this.mEditText = (EditText) view.findViewById(android.R.id.edit);
|
||||
|
||||
// Show soft keyboard automatically
|
||||
this.mEditText.setText(getArguments().getString("hint"));
|
||||
this.mEditText.requestFocus();
|
||||
dialog.getWindow().setSoftInputMode(
|
||||
WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);
|
||||
this.mEditText.setOnEditorActionListener(this);
|
||||
|
||||
final Button button = (Button) view.findViewById(android.R.id.button1);
|
||||
button.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(final View v) {
|
||||
returnData();
|
||||
}
|
||||
});
|
||||
|
||||
return view;
|
||||
}
|
||||
|
||||
void returnData() {
|
||||
EditDialogListener target = (EditDialogListener) getTargetFragment();
|
||||
if (target == null) {
|
||||
target = (EditDialogListener) getActivity();
|
||||
}
|
||||
target.onFinishEditDialog(this.mEditText.getText().toString(),
|
||||
(Actions) getArguments().getSerializable("action"), getArguments().getString("hint"));
|
||||
this.dismiss();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onEditorAction(final TextView v, final int actionId, final KeyEvent event) {
|
||||
if (EditorInfo.IME_ACTION_DONE == actionId) {
|
||||
returnData();
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public enum Actions {
|
||||
NewRemoteFolder, NewRemoteFile, NewLocalFolder, Rename, Move, EditEncoding
|
||||
}
|
||||
|
||||
public interface EditDialogListener {
|
||||
void onFinishEditDialog(String inputText, Actions action, String hint);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -0,0 +1,980 @@
|
||||
/*
|
||||
* Copyright (C) 2013 Vlad Mihalachi
|
||||
*
|
||||
* This file is part of Turbo Editor.
|
||||
*
|
||||
* Turbo Editor is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Turbo Editor is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with Turbo Editor. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.vmihalachi.turboeditor;
|
||||
|
||||
import android.app.Fragment;
|
||||
import android.content.Context;
|
||||
import android.content.SharedPreferences;
|
||||
import android.graphics.Canvas;
|
||||
import android.os.AsyncTask;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.text.Editable;
|
||||
import android.text.InputFilter;
|
||||
import android.text.Selection;
|
||||
import android.text.Spannable;
|
||||
import android.text.Spanned;
|
||||
import android.text.TextPaint;
|
||||
import android.text.TextWatcher;
|
||||
import android.text.style.ForegroundColorSpan;
|
||||
import android.text.style.UnderlineSpan;
|
||||
import android.util.AttributeSet;
|
||||
import android.util.Log;
|
||||
import android.view.KeyEvent;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuInflater;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.EditText;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.vmihalachi.turboeditor.event.ErrorOpeningFileEvent;
|
||||
import com.vmihalachi.turboeditor.event.FileSavedEvent;
|
||||
import com.vmihalachi.turboeditor.helper.PixelDipConverter;
|
||||
import com.vmihalachi.turboeditor.helper.PreferenceHelper;
|
||||
import com.vmihalachi.turboeditor.util.Patterns;
|
||||
|
||||
import org.apache.commons.io.FileUtils;
|
||||
import org.apache.commons.io.FilenameUtils;
|
||||
import org.apache.commons.io.IOUtils;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.util.LinkedList;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import de.greenrobot.event.EventBus;
|
||||
|
||||
public class EditorFragment extends Fragment implements EditTextDialog.EditDialogListener{
|
||||
|
||||
private static final String TAG = "A0A";
|
||||
private Editor mEditor;
|
||||
|
||||
// Editor Variables
|
||||
static boolean sWrapText;
|
||||
static boolean sColorSyntax;
|
||||
//
|
||||
private String mCurrentEncoding;
|
||||
private static String sFilePath;
|
||||
|
||||
|
||||
public static EditorFragment newInstance(String filePath) {
|
||||
EditorFragment frag = new EditorFragment();
|
||||
Bundle args = new Bundle();
|
||||
args.putString("filePath", filePath);
|
||||
frag.setArguments(args);
|
||||
return frag;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setHasOptionsMenu(true);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
||||
// Out custom layout
|
||||
View rootView = inflater.inflate(R.layout.fragment_editor, container, false);
|
||||
//
|
||||
mEditor = (Editor) rootView.findViewById(R.id.editor);
|
||||
return rootView;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public void onActivityCreated(Bundle savedInstanceState) {
|
||||
super.onActivityCreated(savedInstanceState);
|
||||
//
|
||||
this.sFilePath = getArguments().getString("filePath");
|
||||
this.mCurrentEncoding = PreferenceHelper.getEncoding(getActivity());
|
||||
this.sColorSyntax = PreferenceHelper.getSyntaxHiglight(getActivity());
|
||||
this.sWrapText = PreferenceHelper.getWrapText(getActivity());
|
||||
String fileName = FilenameUtils.getName(getArguments().getString("filePath"));
|
||||
//
|
||||
getActivity().getActionBar().setTitle(fileName);
|
||||
//
|
||||
configureEditText();
|
||||
//
|
||||
try {
|
||||
final FileInputStream inputStream =
|
||||
new FileInputStream(
|
||||
new File(this.sFilePath));
|
||||
mEditor.setText(IOUtils.toString(inputStream, this.mCurrentEncoding));
|
||||
inputStream.close();
|
||||
} catch (Exception e) {
|
||||
Log.e(TAG, e.getMessage(), e);
|
||||
Toast.makeText(getActivity(), e.getMessage(), Toast.LENGTH_LONG).show();
|
||||
EventBus.getDefault().post(new ErrorOpeningFileEvent());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
|
||||
inflater.inflate(R.menu.fragment_editor, menu);
|
||||
menu.findItem(R.id.im_wrap_text).setChecked(this.sWrapText);
|
||||
menu.findItem(R.id.im_syntax_highlight).setChecked(this.sColorSyntax);
|
||||
super.onCreateOptionsMenu(menu, inflater);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
int i = item.getItemId();
|
||||
if (i == R.id.im_save) {
|
||||
new SaveFile().execute();
|
||||
} else if (i == R.id.im_undo) {
|
||||
this.mEditor.onKeyShortcut(KeyEvent.KEYCODE_Z, new KeyEvent(KeyEvent.ACTION_DOWN,
|
||||
KeyEvent.KEYCODE_Z));
|
||||
} else if (i == R.id.im_redo) {
|
||||
this.mEditor.onKeyShortcut(KeyEvent.KEYCODE_Y, new KeyEvent(KeyEvent.ACTION_DOWN,
|
||||
KeyEvent.KEYCODE_Y));
|
||||
} else if (i == R.id.im_editor_encoding) {
|
||||
showEncodingDialog();
|
||||
} else if (i == R.id.im_syntax_highlight) {
|
||||
item.setChecked(!item.isChecked());
|
||||
PreferenceHelper.setSyntaxHiglight(getActivity(), item.isChecked());
|
||||
updateTextEditor();
|
||||
} else if (i == R.id.im_wrap_text) {
|
||||
item.setChecked(!item.isChecked());
|
||||
PreferenceHelper.setWrapText(getActivity(), item.isChecked());
|
||||
updateTextEditor();
|
||||
}
|
||||
return super.onOptionsItemSelected(item);
|
||||
}
|
||||
|
||||
private void showEncodingDialog() {
|
||||
EditTextDialog dialogFrag = EditTextDialog.newInstance(this.mCurrentEncoding);
|
||||
dialogFrag.setTargetFragment(this, 0);
|
||||
dialogFrag.show(getFragmentManager().beginTransaction(), "encodingDialog");
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public void onFinishEditDialog(final String inputText, final EditTextDialog.Actions action, final String hint) {
|
||||
PreferenceHelper.setEncoding(getActivity(), inputText);
|
||||
updateTextEditor();
|
||||
}
|
||||
|
||||
private void updateTextEditor() {
|
||||
final boolean countLines = PreferenceHelper.getWrapText(getActivity());
|
||||
final boolean syntaxHighlight = PreferenceHelper.getSyntaxHiglight(getActivity());
|
||||
final String encoding = PreferenceHelper.getEncoding(getActivity());
|
||||
|
||||
if (this.sWrapText != countLines) {
|
||||
this.sWrapText = countLines;
|
||||
final String s = this.mEditor.getText().toString();
|
||||
//inflateOfWrapText();
|
||||
this.mEditor.setText(s);
|
||||
configureEditText();
|
||||
}
|
||||
|
||||
if (this.sColorSyntax != syntaxHighlight) {
|
||||
this.sColorSyntax = syntaxHighlight;
|
||||
final String s = this.mEditor.getText().toString();
|
||||
//inflateOfWrapText();
|
||||
this.mEditor.setText(s);
|
||||
}
|
||||
|
||||
if (!this.mCurrentEncoding.equals(encoding)) {
|
||||
try {
|
||||
final byte[] oldText = this.mEditor.getText().toString().getBytes(this.mCurrentEncoding);
|
||||
this.mEditor.setText(new String(oldText, encoding));
|
||||
this.mCurrentEncoding = encoding;
|
||||
} catch (UnsupportedEncodingException ignored) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void configureEditText(){
|
||||
this.mEditor.setHorizontallyScrolling(!this.sWrapText);
|
||||
if (!this.sWrapText) {
|
||||
int paddingLeft = (int) PixelDipConverter.convertDpToPixel(25, getActivity());
|
||||
mEditor.setPadding(paddingLeft, 0, 0, 0);
|
||||
} else {
|
||||
int paddingLeft = (int) PixelDipConverter.convertDpToPixel(5, getActivity());
|
||||
mEditor.setPadding(paddingLeft, 0, 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
class SaveFile extends AsyncTask<Void, Void, Void> {
|
||||
|
||||
@Override
|
||||
protected Void doInBackground(final Void... voids) {
|
||||
try {
|
||||
FileUtils.write(new File(EditorFragment.this.sFilePath),
|
||||
EditorFragment.this.mEditor.getText(),
|
||||
EditorFragment.this.mCurrentEncoding);
|
||||
} catch (IOException e) {
|
||||
Log.e(TAG, e.getMessage(), e);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPostExecute(final Void aVoid) {
|
||||
super.onPostExecute(aVoid);
|
||||
EventBus.getDefault().post(new FileSavedEvent(EditorFragment.this.sFilePath));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
public static class Editor extends EditText {
|
||||
|
||||
protected static final int
|
||||
ID_SELECT_ALL =android. R.id.selectAll,
|
||||
ID_CUT = android.R.id.cut,
|
||||
ID_COPY = android.R.id.copy,
|
||||
ID_PASTE = android.R.id.paste,
|
||||
ID_UNDO = R.id.im_undo,
|
||||
ID_REDO = R.id.im_redo;
|
||||
private static final int SYNTAX_DELAY_MILLIS =
|
||||
0;
|
||||
private static final float textSize = 16;
|
||||
private final Handler updateHandler =
|
||||
new Handler();
|
||||
private final TextPaint mPaintNumbers =
|
||||
new TextPaint();
|
||||
//private final Rect mLineBounds = new Rect();
|
||||
private final float mScale;
|
||||
private boolean modified = true;
|
||||
|
||||
/**
|
||||
* Is undo/redo being performed? This member
|
||||
* signals if an undo/redo operation is
|
||||
* currently being performed. Changes in the
|
||||
* text during undo/redo are not recorded
|
||||
* because it would mess up the undo history.
|
||||
*/
|
||||
private boolean mIsUndoOrRedo = false;
|
||||
|
||||
/**
|
||||
* The edit history.
|
||||
*/
|
||||
private EditHistory mEditHistory;
|
||||
|
||||
/**
|
||||
* The change listener.
|
||||
*/
|
||||
private EditTextChangeListener
|
||||
mChangeListener;
|
||||
|
||||
private final Runnable updateRunnable =
|
||||
new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
replaceTextKeepCursor(getText());
|
||||
}
|
||||
};
|
||||
|
||||
public Editor(Context context,
|
||||
AttributeSet attrs) {
|
||||
super(context, attrs);
|
||||
this.mScale = context.getResources()
|
||||
.getDisplayMetrics().density;
|
||||
init(context);
|
||||
}
|
||||
|
||||
// Init the class
|
||||
private void init(final Context context) {
|
||||
mEditHistory = new EditHistory();
|
||||
mChangeListener =
|
||||
new EditTextChangeListener();
|
||||
addTextChangedListener(mChangeListener);
|
||||
|
||||
this.mPaintNumbers
|
||||
.setColor(
|
||||
getTextColors().getDefaultColor());
|
||||
this.mPaintNumbers
|
||||
.setTextSize(
|
||||
textSize * this.mScale * 0.8f);
|
||||
this.mPaintNumbers.setAntiAlias(true);
|
||||
|
||||
// Syntax editor
|
||||
setFilters(new InputFilter[]{
|
||||
new InputFilter() {
|
||||
@Override
|
||||
public CharSequence filter(
|
||||
CharSequence source,
|
||||
int start,
|
||||
int end,
|
||||
Spanned dest,
|
||||
int dstart,
|
||||
int dend) {
|
||||
if (modified) {
|
||||
return autoIndent(
|
||||
source,
|
||||
start,
|
||||
end,
|
||||
dest,
|
||||
dstart,
|
||||
dend);
|
||||
}
|
||||
|
||||
return source;
|
||||
}
|
||||
}});
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onKeyShortcut(
|
||||
final int keyCode, final KeyEvent event) {
|
||||
switch (keyCode) {
|
||||
case KeyEvent.KEYCODE_A:
|
||||
return onTextContextMenuItem(
|
||||
ID_SELECT_ALL);
|
||||
case KeyEvent.KEYCODE_X:
|
||||
return onTextContextMenuItem(ID_CUT);
|
||||
case KeyEvent.KEYCODE_C:
|
||||
return onTextContextMenuItem(ID_COPY);
|
||||
case KeyEvent.KEYCODE_V:
|
||||
return onTextContextMenuItem(ID_PASTE);
|
||||
case KeyEvent.KEYCODE_Z:
|
||||
if (getCanUndo()) {
|
||||
return onTextContextMenuItem(ID_UNDO);
|
||||
}
|
||||
break;
|
||||
case KeyEvent.KEYCODE_Y:
|
||||
if (getCanRedo()) {
|
||||
return onTextContextMenuItem(ID_REDO);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
return super.onKeyShortcut(keyCode, event);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onTextContextMenuItem(
|
||||
final int id) {
|
||||
if (id == ID_UNDO) {
|
||||
undo();
|
||||
return true;
|
||||
} else if (id == ID_REDO) {
|
||||
redo();
|
||||
return true;
|
||||
} else {
|
||||
return super.onTextContextMenuItem(id);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDraw(final Canvas canvas) {
|
||||
if (!EditorFragment.sWrapText) {
|
||||
final int max = getLineCount();
|
||||
final TextPaint paint = mPaintNumbers;
|
||||
for (int min = 0; min < max; min++) {
|
||||
canvas.drawText(String.valueOf(min + 1),
|
||||
0,
|
||||
getLineBounds(min, null),
|
||||
paint);
|
||||
}
|
||||
}
|
||||
super.onDraw(canvas);
|
||||
}
|
||||
|
||||
private CharSequence autoIndent(
|
||||
CharSequence source,
|
||||
int start,
|
||||
int end,
|
||||
Spanned dest,
|
||||
int dstart,
|
||||
int dend) {
|
||||
if (end - start != 1 ||
|
||||
start >= source.length() ||
|
||||
source.charAt(start) != '\n' ||
|
||||
dstart >= dest.length()) {
|
||||
return source;
|
||||
}
|
||||
|
||||
int istart = dstart;
|
||||
int iend;
|
||||
String indent = "";
|
||||
|
||||
// skip end of line if cursor is at the end of a line
|
||||
if (dest.charAt(istart) == '\n') {
|
||||
--istart;
|
||||
}
|
||||
|
||||
// indent next line if this one isn't terminated
|
||||
if (istart > -1) {
|
||||
// skip white space
|
||||
for (; istart > -1; --istart) {
|
||||
char c = dest.charAt(istart);
|
||||
|
||||
if (c != ' ' &&
|
||||
c != '\t') {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (istart > -1) {
|
||||
char c = dest.charAt(istart);
|
||||
|
||||
if (c != ';' &&
|
||||
c != '\n') {
|
||||
indent = "\t";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// find start of previous line
|
||||
for (; istart > -1; --istart) {
|
||||
if (dest.charAt(istart) == '\n') {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// cursor is in the first line
|
||||
if (istart < 0) {
|
||||
return source;
|
||||
}
|
||||
|
||||
// span over previous indent
|
||||
for (iend = ++istart;
|
||||
iend < dend;
|
||||
++iend) {
|
||||
char c = dest.charAt(iend);
|
||||
|
||||
if (c != ' ' &&
|
||||
c != '\t') {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// copy white space of previous lines and append new indent
|
||||
return "\n" + dest.subSequence(
|
||||
istart,
|
||||
iend) + indent;
|
||||
}
|
||||
|
||||
private void cancelUpdate() {
|
||||
updateHandler.removeCallbacks(
|
||||
updateRunnable);
|
||||
}
|
||||
|
||||
private void replaceTextKeepCursor(
|
||||
Editable e) {
|
||||
int p = getSelectionStart();
|
||||
|
||||
replaceText(e);
|
||||
|
||||
if (p > -1) {
|
||||
setSelection(p);
|
||||
}
|
||||
}
|
||||
|
||||
private void replaceText(Editable e) {
|
||||
disconnect();
|
||||
modified = false;
|
||||
setText(highlight(e));
|
||||
modified = true;
|
||||
addTextChangedListener(mChangeListener);
|
||||
}
|
||||
|
||||
private CharSequence highlight(Editable editable) {
|
||||
final String fileExtension = FilenameUtils.getExtension(EditorFragment.sFilePath);
|
||||
editable.clearSpans();
|
||||
|
||||
if (editable.length() == 0) {
|
||||
return editable;
|
||||
}
|
||||
|
||||
if (fileExtension.contains("html")
|
||||
|| fileExtension.contains("xml")) {
|
||||
color(Patterns.HTML_OPEN_TAGS, editable);
|
||||
color(Patterns.HTML_CLOSE_TAGS, editable);
|
||||
color(Patterns.HTML_ATTRS, editable);
|
||||
color(Patterns.GENERAL_STRINGS, editable);
|
||||
color(Patterns.XML_COMMENTS, editable);
|
||||
} else if (fileExtension.equals("css")) {
|
||||
//color(CSS_STYLE_NAME, editable);
|
||||
color(Patterns.CSS_ATTRS, editable);
|
||||
color(Patterns.CSS_ATTR_VALUE, editable);
|
||||
color(Patterns.GENERAL_COMMENTS, editable);
|
||||
} else if (fileExtension.equals("js")) {
|
||||
color(Patterns.GENERAL_KEYWORDS, editable);
|
||||
color(Patterns.NUMBERS, editable);
|
||||
color(Patterns.GENERAL_COMMENTS, editable);
|
||||
} else {
|
||||
color(Patterns.GENERAL_KEYWORDS, editable);
|
||||
color(Patterns.NUMBERS, editable);
|
||||
color(Patterns.GENERAL_COMMENTS, editable);
|
||||
}
|
||||
|
||||
return editable;
|
||||
}
|
||||
|
||||
private void color(Pattern pattern,
|
||||
Editable editable) {
|
||||
int color = 0;
|
||||
if (pattern.equals(Patterns.HTML_OPEN_TAGS)
|
||||
|| pattern.equals(Patterns.HTML_CLOSE_TAGS)
|
||||
|| pattern.equals(Patterns.GENERAL_KEYWORDS)
|
||||
//|| pattern.equals(CSS_STYLE_NAME)
|
||||
) {
|
||||
color = Patterns.COLOR_KEYWORD;
|
||||
} else if (pattern.equals(Patterns.HTML_ATTRS)
|
||||
|| pattern.equals(Patterns.CSS_ATTRS)) {
|
||||
color = Patterns.COLOR_ATTR;
|
||||
} else if (pattern.equals(Patterns.CSS_ATTR_VALUE)) {
|
||||
color = Patterns.COLOR_ATTR_VALUE;
|
||||
} else if (pattern.equals(Patterns.XML_COMMENTS)
|
||||
|| pattern.equals(Patterns.GENERAL_COMMENTS)) {
|
||||
color = Patterns.COLOR_COMMENT;
|
||||
} else if (pattern.equals(
|
||||
Patterns.GENERAL_STRINGS)) {
|
||||
color = Patterns.COLOR_STRING;
|
||||
} else if (pattern.equals(Patterns.NUMBERS)) {
|
||||
color = Patterns.COLOR_NUMBER;
|
||||
}
|
||||
|
||||
for (final Matcher m =
|
||||
pattern.matcher(editable);
|
||||
m.find(); ) {
|
||||
editable.setSpan(
|
||||
new ForegroundColorSpan(color),
|
||||
m.start(),
|
||||
m.end(),
|
||||
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||
}
|
||||
}
|
||||
|
||||
// =================================================================== //
|
||||
|
||||
/**
|
||||
* Disconnect this undo/redo from the text
|
||||
* view.
|
||||
*/
|
||||
public void disconnect() {
|
||||
removeTextChangedListener(mChangeListener);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the maximum history size. If size is
|
||||
* negative, then history size is only limited
|
||||
* by the device memory.
|
||||
*/
|
||||
public void setMaxHistorySize(
|
||||
int maxHistorySize) {
|
||||
mEditHistory.setMaxHistorySize(
|
||||
maxHistorySize);
|
||||
}
|
||||
|
||||
/**
|
||||
* Clear history.
|
||||
*/
|
||||
public void clearHistory() {
|
||||
mEditHistory.clear();
|
||||
}
|
||||
|
||||
/**
|
||||
* Can undo be performed?
|
||||
*/
|
||||
public boolean getCanUndo() {
|
||||
return (mEditHistory.mmPosition > 0);
|
||||
}
|
||||
|
||||
/**
|
||||
* Perform undo.
|
||||
*/
|
||||
public void undo() {
|
||||
EditItem edit = mEditHistory.getPrevious();
|
||||
if (edit == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
Editable text = getEditableText();
|
||||
int start = edit.mmStart;
|
||||
int end = start + (edit.mmAfter != null
|
||||
? edit.mmAfter.length() : 0);
|
||||
|
||||
mIsUndoOrRedo = true;
|
||||
text.replace(start, end, edit.mmBefore);
|
||||
mIsUndoOrRedo = false;
|
||||
|
||||
// This will get rid of underlines inserted when editor tries to come
|
||||
// up with a suggestion.
|
||||
for (Object o : text.getSpans(0,
|
||||
text.length(), UnderlineSpan.class)) {
|
||||
text.removeSpan(o);
|
||||
}
|
||||
|
||||
Selection.setSelection(text,
|
||||
edit.mmBefore == null ? start
|
||||
: (start + edit.mmBefore.length()));
|
||||
}
|
||||
|
||||
/**
|
||||
* Can redo be performed?
|
||||
*/
|
||||
public boolean getCanRedo() {
|
||||
return (mEditHistory.mmPosition
|
||||
< mEditHistory.mmHistory.size());
|
||||
}
|
||||
|
||||
/**
|
||||
* Perform redo.
|
||||
*/
|
||||
public void redo() {
|
||||
EditItem edit = mEditHistory.getNext();
|
||||
if (edit == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
Editable text = getEditableText();
|
||||
int start = edit.mmStart;
|
||||
int end = start + (edit.mmBefore != null
|
||||
? edit.mmBefore.length() : 0);
|
||||
|
||||
mIsUndoOrRedo = true;
|
||||
text.replace(start, end, edit.mmAfter);
|
||||
mIsUndoOrRedo = false;
|
||||
|
||||
// This will get rid of underlines inserted when editor tries to come
|
||||
// up with a suggestion.
|
||||
for (Object o : text.getSpans(0,
|
||||
text.length(), UnderlineSpan.class)) {
|
||||
text.removeSpan(o);
|
||||
}
|
||||
|
||||
Selection.setSelection(text,
|
||||
edit.mmAfter == null ? start
|
||||
: (start + edit.mmAfter.length()));
|
||||
}
|
||||
|
||||
/**
|
||||
* Store preferences.
|
||||
*/
|
||||
public void storePersistentState(
|
||||
SharedPreferences.Editor editor,
|
||||
String prefix) {
|
||||
// Store hash code of text in the editor so that we can check if the
|
||||
// editor contents has changed.
|
||||
editor.putString(prefix + ".hash",
|
||||
String.valueOf(
|
||||
getText().toString().hashCode()));
|
||||
editor.putInt(prefix + ".maxSize",
|
||||
mEditHistory.mmMaxHistorySize);
|
||||
editor.putInt(prefix + ".position",
|
||||
mEditHistory.mmPosition);
|
||||
editor.putInt(prefix + ".size",
|
||||
mEditHistory.mmHistory.size());
|
||||
|
||||
int i = 0;
|
||||
for (EditItem ei : mEditHistory.mmHistory) {
|
||||
String pre = prefix + "." + i;
|
||||
|
||||
editor.putInt(pre + ".start", ei.mmStart);
|
||||
editor.putString(pre + ".before",
|
||||
ei.mmBefore.toString());
|
||||
editor.putString(pre + ".after",
|
||||
ei.mmAfter.toString());
|
||||
|
||||
i++;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Restore preferences.
|
||||
*
|
||||
* @param prefix The preference key prefix
|
||||
* used when state was stored.
|
||||
* @return did restore succeed? If this is
|
||||
* false, the undo history will be empty.
|
||||
*/
|
||||
public boolean restorePersistentState(
|
||||
SharedPreferences sp, String prefix)
|
||||
throws IllegalStateException {
|
||||
|
||||
boolean ok =
|
||||
doRestorePersistentState(sp, prefix);
|
||||
if (!ok) {
|
||||
mEditHistory.clear();
|
||||
}
|
||||
|
||||
return ok;
|
||||
}
|
||||
|
||||
private boolean doRestorePersistentState(
|
||||
SharedPreferences sp, String prefix) {
|
||||
|
||||
String hash =
|
||||
sp.getString(prefix + ".hash", null);
|
||||
if (hash == null) {
|
||||
// No state to be restored.
|
||||
return true;
|
||||
}
|
||||
|
||||
if (Integer.valueOf(hash)
|
||||
!= getText().toString().hashCode()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
mEditHistory.clear();
|
||||
mEditHistory.mmMaxHistorySize =
|
||||
sp.getInt(prefix + ".maxSize", -1);
|
||||
|
||||
int count = sp.getInt(prefix + ".size", -1);
|
||||
if (count == -1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
for (int i = 0; i < count; i++) {
|
||||
String pre = prefix + "." + i;
|
||||
|
||||
int start = sp.getInt(pre + ".start", -1);
|
||||
String before =
|
||||
sp.getString(pre + ".before", null);
|
||||
String after =
|
||||
sp.getString(pre + ".after", null);
|
||||
|
||||
if (start == -1
|
||||
|| before == null
|
||||
|| after == null) {
|
||||
return false;
|
||||
}
|
||||
mEditHistory.add(
|
||||
new EditItem(start, before, after));
|
||||
}
|
||||
|
||||
mEditHistory.mmPosition =
|
||||
sp.getInt(prefix + ".position", -1);
|
||||
if (mEditHistory.mmPosition == -1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
// =================================================================== //
|
||||
|
||||
/**
|
||||
* Keeps track of all the edit history of a
|
||||
* text.
|
||||
*/
|
||||
private final class EditHistory {
|
||||
|
||||
/**
|
||||
* The position from which an EditItem will
|
||||
* be retrieved when getNext() is called. If
|
||||
* getPrevious() has not been called, this
|
||||
* has the same value as mmHistory.size().
|
||||
*/
|
||||
private int mmPosition = 0;
|
||||
|
||||
/**
|
||||
* Maximum undo history size.
|
||||
*/
|
||||
private int mmMaxHistorySize = -1;
|
||||
|
||||
/**
|
||||
* The list of edits in chronological
|
||||
* order.
|
||||
*/
|
||||
private final LinkedList<EditItem>
|
||||
mmHistory = new LinkedList<EditItem>();
|
||||
|
||||
/**
|
||||
* Clear history.
|
||||
*/
|
||||
private void clear() {
|
||||
mmPosition = 0;
|
||||
mmHistory.clear();
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds a new edit operation to the history
|
||||
* at the current position. If executed
|
||||
* after a call to getPrevious() removes all
|
||||
* the future history (elements with
|
||||
* positions >= current history position).
|
||||
*/
|
||||
private void add(EditItem item) {
|
||||
while (mmHistory.size() > mmPosition) {
|
||||
mmHistory.removeLast();
|
||||
}
|
||||
mmHistory.add(item);
|
||||
mmPosition++;
|
||||
|
||||
if (mmMaxHistorySize >= 0) {
|
||||
trimHistory();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the maximum history size. If size is
|
||||
* negative, then history size is only
|
||||
* limited by the device memory.
|
||||
*/
|
||||
private void setMaxHistorySize(
|
||||
int maxHistorySize) {
|
||||
mmMaxHistorySize = maxHistorySize;
|
||||
if (mmMaxHistorySize >= 0) {
|
||||
trimHistory();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Trim history when it exceeds max history
|
||||
* size.
|
||||
*/
|
||||
private void trimHistory() {
|
||||
while (mmHistory.size()
|
||||
> mmMaxHistorySize) {
|
||||
mmHistory.removeFirst();
|
||||
mmPosition--;
|
||||
}
|
||||
|
||||
if (mmPosition < 0) {
|
||||
mmPosition = 0;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Traverses the history backward by one
|
||||
* position, returns and item at that
|
||||
* position.
|
||||
*/
|
||||
private EditItem getPrevious() {
|
||||
if (mmPosition == 0) {
|
||||
return null;
|
||||
}
|
||||
mmPosition--;
|
||||
return mmHistory.get(mmPosition);
|
||||
}
|
||||
|
||||
/**
|
||||
* Traverses the history forward by one
|
||||
* position, returns and item at that
|
||||
* position.
|
||||
*/
|
||||
private EditItem getNext() {
|
||||
if (mmPosition >= mmHistory.size()) {
|
||||
return null;
|
||||
}
|
||||
|
||||
EditItem item = mmHistory.get(mmPosition);
|
||||
mmPosition++;
|
||||
return item;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Represents the changes performed by a
|
||||
* single edit operation.
|
||||
*/
|
||||
private final class EditItem {
|
||||
private final int mmStart;
|
||||
private final CharSequence mmBefore;
|
||||
private final CharSequence mmAfter;
|
||||
|
||||
/**
|
||||
* Constructs EditItem of a modification
|
||||
* that was applied at position start and
|
||||
* replaced CharSequence before with
|
||||
* CharSequence after.
|
||||
*/
|
||||
public EditItem(int start,
|
||||
CharSequence before, CharSequence after) {
|
||||
mmStart = start;
|
||||
mmBefore = before;
|
||||
mmAfter = after;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Class that listens to changes in the text.
|
||||
*/
|
||||
private final class EditTextChangeListener
|
||||
implements TextWatcher {
|
||||
|
||||
/**
|
||||
* The text that will be removed by the
|
||||
* change event.
|
||||
*/
|
||||
private CharSequence mBeforeChange;
|
||||
|
||||
/**
|
||||
* The text that was inserted by the change
|
||||
* event.
|
||||
*/
|
||||
private CharSequence mAfterChange;
|
||||
|
||||
public void beforeTextChanged(
|
||||
CharSequence s, int start, int count,
|
||||
int after) {
|
||||
if (mIsUndoOrRedo) {
|
||||
return;
|
||||
}
|
||||
|
||||
mBeforeChange =
|
||||
s.subSequence(start, start + count);
|
||||
}
|
||||
|
||||
public void onTextChanged(CharSequence s,
|
||||
int start, int before,
|
||||
int count) {
|
||||
if (mIsUndoOrRedo) {
|
||||
return;
|
||||
}
|
||||
|
||||
mAfterChange =
|
||||
s.subSequence(start, start + count);
|
||||
mEditHistory.add(
|
||||
new EditItem(start, mBeforeChange,
|
||||
mAfterChange));
|
||||
}
|
||||
|
||||
public void afterTextChanged(Editable s) {
|
||||
cancelUpdate();
|
||||
|
||||
if (!EditorFragment.sColorSyntax || !modified) {
|
||||
return;
|
||||
}
|
||||
|
||||
updateHandler.postDelayed(
|
||||
updateRunnable,
|
||||
SYNTAX_DELAY_MILLIS);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,341 @@
|
||||
/*
|
||||
* Copyright (C) 2013 Vlad Mihalachi
|
||||
*
|
||||
* This file is part of Turbo Editor.
|
||||
*
|
||||
* Turbo Editor is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Turbo Editor is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with Turbo Editor. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.vmihalachi.turboeditor;
|
||||
|
||||
import android.app.ActionBar;
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.res.Configuration;
|
||||
import android.os.Bundle;
|
||||
import android.os.IBinder;
|
||||
import android.support.v4.app.ActionBarDrawerToggle;
|
||||
import android.support.v4.widget.DrawerLayout;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import android.view.Gravity;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.view.inputmethod.InputMethodManager;
|
||||
|
||||
import com.vmihalachi.turboeditor.event.ErrorOpeningFileEvent;
|
||||
import com.vmihalachi.turboeditor.event.FileSavedEvent;
|
||||
import com.vmihalachi.turboeditor.event.FileSelectedEvent;
|
||||
import com.vmihalachi.turboeditor.event.NewFileOpened;
|
||||
|
||||
import de.greenrobot.event.EventBus;
|
||||
|
||||
public class HomeActivity extends Activity {
|
||||
|
||||
private String TAG = "A0A";
|
||||
public static final int SELECT_FILE_CODE = 121;
|
||||
|
||||
/*
|
||||
* This class provides a handy way to tie together the functionality of
|
||||
* {@link DrawerLayout} and the framework <code>ActionBar</code> to implement the recommended
|
||||
* design for navigation drawers.
|
||||
*/
|
||||
protected ActionBarDrawerToggle mDrawerToggle;
|
||||
/*
|
||||
* The Drawer Layout
|
||||
*/
|
||||
protected DrawerLayout mDrawerLayout;
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
//
|
||||
checkTaskRoot();
|
||||
//
|
||||
setContentView(R.layout.activity_home);
|
||||
//
|
||||
setupDrawerLayout();
|
||||
// Replace fragment
|
||||
getFragmentManager()
|
||||
.beginTransaction()
|
||||
.replace(R.id.fragment_editor, new NoFileOpenedFragment())
|
||||
.commit();
|
||||
/* First Time we open this activity */
|
||||
if (savedInstanceState == null) {
|
||||
// Open
|
||||
mDrawerLayout.openDrawer(Gravity.START);
|
||||
// Set the default title
|
||||
getActionBar().setTitle(getString(R.string.nome_app_turbo_editor));
|
||||
}
|
||||
//
|
||||
receiveIntent();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
protected final void onPostCreate(Bundle savedInstanceState) {
|
||||
super.onPostCreate(savedInstanceState);
|
||||
mDrawerToggle.syncState();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
// Register the Event Bus for events
|
||||
EventBus.getDefault().register(this);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public void onPause() {
|
||||
super.onPause();
|
||||
// Unregister the Event Bus
|
||||
EventBus.getDefault().unregister(this);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
try {
|
||||
closeKeyBoard();
|
||||
} catch (NullPointerException e) {
|
||||
Log.e(TAG, e.getMessage(), e);
|
||||
}
|
||||
super.onDestroy();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public final void onConfigurationChanged(Configuration newConfig) {
|
||||
super.onConfigurationChanged(newConfig);
|
||||
mDrawerToggle.onConfigurationChanged(newConfig);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public boolean onCreateOptionsMenu(Menu menu) {
|
||||
getMenuInflater().inflate(R.menu.activity_home, menu);
|
||||
return super.onCreateOptionsMenu(menu);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
/* If we clicked on the Navigation Drawer Menu item */
|
||||
if (mDrawerToggle.onOptionsItemSelected(item)) {
|
||||
return true;
|
||||
} else switch (item.getItemId()){
|
||||
case R.id.im_open:
|
||||
startActivityForResult(new Intent(HomeActivity.this, SelectFileActivity.class)
|
||||
.putExtra("path", "")
|
||||
.putExtra("action", SelectFileActivity.Actions.SelectFile),
|
||||
SELECT_FILE_CODE);
|
||||
return true;
|
||||
case R.id.im_info:
|
||||
startActivity(new Intent(this, PreferenceAbout.class));
|
||||
return true;
|
||||
default:
|
||||
return super.onOptionsItemSelected(item);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
super.onActivityResult(requestCode, resultCode, data);
|
||||
if (resultCode == RESULT_OK && requestCode == SELECT_FILE_CODE) {
|
||||
String path = data.getStringExtra("path");
|
||||
if(!TextUtils.isEmpty(path)){
|
||||
EventBus.getDefault().postSticky(new NewFileOpened(path));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param event
|
||||
*/
|
||||
public void onEvent(FileSelectedEvent event){
|
||||
// Close the drawer
|
||||
mDrawerLayout.closeDrawer(Gravity.LEFT);
|
||||
// Replace fragment
|
||||
getFragmentManager()
|
||||
.beginTransaction()
|
||||
.replace(R.id.fragment_editor, EditorFragment.newInstance(event.getPath()))
|
||||
.commit();
|
||||
}
|
||||
|
||||
/**
|
||||
* When a file is saved
|
||||
* Invoked by the EditorFragment
|
||||
* @param event The event called
|
||||
*/
|
||||
public void onEvent(FileSavedEvent event){
|
||||
try {
|
||||
closeKeyBoard();
|
||||
} catch (NullPointerException e) {
|
||||
Log.e(TAG, e.getMessage(), e);
|
||||
}
|
||||
// Get intent, action and MIME type
|
||||
final Intent intent = getIntent();
|
||||
final String action = intent.getAction();
|
||||
final String type = intent.getType();
|
||||
|
||||
if (Intent.ACTION_VIEW.equals(action)
|
||||
|| Intent.ACTION_EDIT.equals(action)
|
||||
|| Intent.ACTION_PICK.equals(action)
|
||||
&& type != null) {
|
||||
//This Activity was called by startActivityForResult
|
||||
final Intent returnIntent = new Intent();
|
||||
setResult(Activity.RESULT_OK, returnIntent);
|
||||
// finish the activity
|
||||
finish();
|
||||
} else {
|
||||
//This Activity was called by startActivity
|
||||
//
|
||||
mDrawerLayout.openDrawer(Gravity.LEFT);
|
||||
//
|
||||
getActionBar().setTitle(getString(R.string.nome_app_turbo_editor));
|
||||
// Replace fragment
|
||||
getFragmentManager()
|
||||
.beginTransaction()
|
||||
.replace(R.id.fragment_editor, new NoFileOpenedFragment())
|
||||
.commit();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public void onEvent(ErrorOpeningFileEvent event){
|
||||
//
|
||||
mDrawerLayout.openDrawer(Gravity.LEFT);
|
||||
//
|
||||
getActionBar().setTitle(getString(R.string.nome_app_turbo_editor));
|
||||
// Replace fragment
|
||||
getFragmentManager()
|
||||
.beginTransaction()
|
||||
.replace(R.id.fragment_editor, new NoFileOpenedFragment())
|
||||
.commit();
|
||||
}
|
||||
|
||||
private void closeKeyBoard() throws NullPointerException {
|
||||
// Central system API to the overall input method framework (IMF) architecture
|
||||
InputMethodManager inputManager =
|
||||
(InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
|
||||
|
||||
// Base interface for a remotable object
|
||||
IBinder windowToken = getCurrentFocus().getWindowToken();
|
||||
|
||||
// Hide type
|
||||
int hideType = InputMethodManager.HIDE_NOT_ALWAYS;
|
||||
|
||||
// Hide the KeyBoard
|
||||
inputManager.hideSoftInputFromWindow(windowToken, hideType);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private void checkTaskRoot(){
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private void setupDrawerLayout(){
|
||||
final String defaultTitle = getString(R.string.nome_app_turbo_editor);
|
||||
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
|
||||
/* Action Bar */
|
||||
final ActionBar ab = getActionBar();
|
||||
ab.setDisplayHomeAsUpEnabled(true);
|
||||
ab.setHomeButtonEnabled(true);
|
||||
/* Navigation drawer */
|
||||
mDrawerToggle =
|
||||
new ActionBarDrawerToggle(
|
||||
this,
|
||||
mDrawerLayout,
|
||||
R.drawable.ic_drawer,
|
||||
R.string.nome_app_turbo_editor,
|
||||
R.string.nome_app_turbo_editor) {
|
||||
|
||||
@Override
|
||||
public void onDrawerClosed(View view) {
|
||||
invalidateOptionsMenu();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDrawerOpened(View drawerView) {
|
||||
invalidateOptionsMenu();
|
||||
}
|
||||
};
|
||||
/* link the mDrawerToggle to the Drawer Layout */
|
||||
mDrawerLayout.setDrawerListener(mDrawerToggle);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onNewIntent(Intent intent) {
|
||||
super.onNewIntent(intent);
|
||||
final String action = intent.getAction();
|
||||
final String type = intent.getType();
|
||||
|
||||
if (Intent.ACTION_VIEW.equals(action)
|
||||
|| Intent.ACTION_EDIT.equals(action)
|
||||
|| Intent.ACTION_PICK.equals(action)
|
||||
&& type != null) {
|
||||
// Post the NewFileOpened Event
|
||||
EventBus.getDefault().postSticky(new NewFileOpened(intent.getData().getPath()));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private void receiveIntent(){
|
||||
// Get intent, action and MIME type
|
||||
final Intent intent = getIntent();
|
||||
final String action = intent.getAction();
|
||||
final String type = intent.getType();
|
||||
|
||||
if (Intent.ACTION_VIEW.equals(action)
|
||||
|| Intent.ACTION_EDIT.equals(action)
|
||||
|| Intent.ACTION_PICK.equals(action)
|
||||
&& type != null) {
|
||||
// Post the NewFileOpened Event
|
||||
EventBus.getDefault().postSticky(new NewFileOpened(intent.getData().getPath()));
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,16 @@
|
||||
package com.vmihalachi.turboeditor;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.os.Bundle;
|
||||
import android.widget.ArrayAdapter;
|
||||
import android.widget.ListView;
|
||||
|
||||
public class LicensesActivity extends Activity {
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_licenses);
|
||||
ListView listView = (ListView) findViewById(android.R.id.list);
|
||||
listView.setAdapter(adapter);
|
||||
}
|
||||
}
|
@ -0,0 +1,291 @@
|
||||
/*
|
||||
* Copyright (C) 2013 Vlad Mihalachi
|
||||
*
|
||||
* This file is part of Turbo Editor.
|
||||
*
|
||||
* Turbo Editor is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Turbo Editor is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with Turbo Editor. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.vmihalachi.turboeditor;
|
||||
|
||||
import android.app.ListFragment;
|
||||
import android.content.SharedPreferences;
|
||||
import android.os.Bundle;
|
||||
import android.preference.PreferenceManager;
|
||||
import android.util.SparseBooleanArray;
|
||||
import android.view.ActionMode;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuInflater;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.AbsListView;
|
||||
import android.widget.ArrayAdapter;
|
||||
import android.widget.ListView;
|
||||
|
||||
import com.vmihalachi.turboeditor.event.FileSelectedEvent;
|
||||
import com.vmihalachi.turboeditor.event.NewFileOpened;
|
||||
|
||||
import org.apache.commons.io.FilenameUtils;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import de.greenrobot.event.EventBus;
|
||||
|
||||
public class NavigationDrawerListFragment extends ListFragment implements AbsListView.MultiChoiceModeListener {
|
||||
|
||||
List<String> fileNames;
|
||||
ArrayAdapter<String> arrayAdapter;
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
||||
// Out custom layout
|
||||
View rootView = inflater.inflate(R.layout.fragment_navigation_drawer, container, false);
|
||||
return rootView;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public void onViewCreated(View view, Bundle savedInstanceState) {
|
||||
super.onViewCreated(view, savedInstanceState);
|
||||
getListView().setMultiChoiceModeListener(this);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
// Register the Event Bus for events
|
||||
EventBus.getDefault().registerSticky(this);
|
||||
//
|
||||
refreshList();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public void onPause() {
|
||||
super.onPause();
|
||||
// Unregister the Event Bus
|
||||
EventBus.getDefault().unregister(this);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public void onListItemClick(ListView l, View v, int position, long id) {
|
||||
super.onListItemClick(l, v, position, id);
|
||||
// don't open the same file twice
|
||||
//if(this.mCurrentCheckedPosition == position) return;
|
||||
// set current checked position
|
||||
//this.mCurrentCheckedPosition = position;
|
||||
// Shared Preferences
|
||||
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getActivity());
|
||||
// File paths saved in preferences
|
||||
String[] savedPaths = sharedPreferences.getString("savedPaths", "").split(",");
|
||||
// Path of the file selected
|
||||
String filePath = savedPaths[position];
|
||||
// Send the event that a file was selected
|
||||
EventBus.getDefault().post(new FileSelectedEvent(filePath));
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public void onItemCheckedStateChanged(ActionMode actionMode, int position, long l, boolean isChecked) {
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public boolean onCreateActionMode(ActionMode actionMode, Menu menu) {
|
||||
MenuInflater inflater = actionMode.getMenuInflater();
|
||||
inflater.inflate(R.menu.action_mode_navigation_drawer, menu);
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public boolean onPrepareActionMode(ActionMode actionMode, Menu menu) {
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public boolean onActionItemClicked(ActionMode actionMode, MenuItem menuItem) {
|
||||
switch (menuItem.getItemId()) {
|
||||
case R.id.im_remove:
|
||||
// Shared Preferences
|
||||
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getActivity());
|
||||
// File paths saved in preferences
|
||||
String[] savedPaths = sharedPreferences.getString("savedPaths", "").split(",");
|
||||
//
|
||||
SparseBooleanArray checkedItems = getListView().getCheckedItemPositions();
|
||||
//
|
||||
if (checkedItems != null) {
|
||||
for (int i=0; i<checkedItems.size(); i++) {
|
||||
if (checkedItems.valueAt(i)) {
|
||||
removePath(savedPaths[checkedItems.keyAt(i)], false);
|
||||
}
|
||||
}
|
||||
refreshList();
|
||||
}
|
||||
actionMode.finish();
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public void onDestroyActionMode(ActionMode actionMode) {
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* When a new file is opened
|
||||
* Invoked by the main activity which receive the intent
|
||||
* @param event The event called
|
||||
*/
|
||||
public void onEvent(NewFileOpened event){
|
||||
EventBus.getDefault().removeStickyEvent(event);
|
||||
// Shared Preferences
|
||||
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getActivity());
|
||||
// File paths saved in preferences
|
||||
String[] savedPaths = sharedPreferences.getString("savedPaths", "").split(",");
|
||||
|
||||
for(int i = 0; i < savedPaths.length; i++){
|
||||
if(savedPaths[i].equals(event.getFilePath())){
|
||||
// Send the event that a file was selected
|
||||
EventBus.getDefault().post(new FileSelectedEvent(event.getFilePath()));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
addPath(event.getFilePath());
|
||||
// Send the event that a file was selected
|
||||
EventBus.getDefault().post(new FileSelectedEvent(event.getFilePath()));
|
||||
}
|
||||
|
||||
private void addPath(String path){
|
||||
addPath(path, true);
|
||||
}
|
||||
|
||||
private void addPath(String path, boolean refresh){
|
||||
// Shared Preferences
|
||||
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getActivity());
|
||||
// Editor
|
||||
SharedPreferences.Editor editor = sharedPreferences.edit();
|
||||
// File paths saved in preferences
|
||||
String[] savedPaths = sharedPreferences.getString("savedPaths", "").split(",");
|
||||
// StringBuilder
|
||||
StringBuilder sb = new StringBuilder();
|
||||
// for cycle
|
||||
for (int count = 0; count < savedPaths.length; count++) {
|
||||
sb.append(savedPaths[count]).append(",");
|
||||
}
|
||||
// Append new path
|
||||
sb.append(path);
|
||||
// Put the string
|
||||
editor.putString("savedPaths", sb.toString());
|
||||
// Commit
|
||||
editor.commit();
|
||||
// Update list
|
||||
//arrayAdapter.add(FilenameUtils.getName(path));
|
||||
//arrayAdapter.notifyDataSetChanged();
|
||||
if(refresh){
|
||||
refreshList();
|
||||
}
|
||||
}
|
||||
|
||||
private void removePath(String path){
|
||||
removePath(path, true);
|
||||
}
|
||||
|
||||
private void removePath(String path, boolean refresh){
|
||||
// Shared Preferences
|
||||
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getActivity());
|
||||
// Editor
|
||||
SharedPreferences.Editor editor = sharedPreferences.edit();
|
||||
// File paths saved in preferences
|
||||
String[] savedPaths = sharedPreferences.getString("savedPaths", "").split(",");
|
||||
// StringBuilder
|
||||
StringBuilder sb = new StringBuilder();
|
||||
// for cycle
|
||||
for (int count = 0; count < savedPaths.length; count++) {
|
||||
if(path.equals(savedPaths[count])) continue;
|
||||
sb.append(savedPaths[count]).append(",");
|
||||
}
|
||||
// Put the string
|
||||
editor.putString("savedPaths", sb.toString());
|
||||
// Commit
|
||||
editor.commit();
|
||||
// Update list
|
||||
//arrayAdapter.remove(FilenameUtils.getName(path));
|
||||
//arrayAdapter.notifyDataSetChanged();
|
||||
if(refresh){
|
||||
refreshList();
|
||||
}
|
||||
}
|
||||
|
||||
/* package */ void refreshList(){
|
||||
// Shared Preferences
|
||||
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getActivity());
|
||||
// File paths saved in preferences
|
||||
String[] savedPaths = sharedPreferences.getString("savedPaths", "").split(",");
|
||||
// File names for the list
|
||||
fileNames = new ArrayList<String>(savedPaths.length);
|
||||
//
|
||||
StringBuilder sb = new StringBuilder();
|
||||
// for cycle to convert paths to names
|
||||
for(String path : savedPaths){
|
||||
|
||||
if(!path.isEmpty()){
|
||||
File file = new File(path);
|
||||
if(file.exists()){
|
||||
fileNames.add(FilenameUtils.getName(path));
|
||||
sb.append(path).append(",");
|
||||
}
|
||||
}
|
||||
}
|
||||
// save list without empty or non existed files
|
||||
sharedPreferences.edit().putString("savedPaths", sb.toString()).commit();
|
||||
// Adapter
|
||||
arrayAdapter = new ArrayAdapter<String>(getActivity(), R.layout.item_drawer_list, fileNames);
|
||||
// Set adapter
|
||||
setListAdapter(arrayAdapter);
|
||||
}
|
||||
}
|
@ -0,0 +1,42 @@
|
||||
/*
|
||||
* Copyright (C) 2013 Vlad Mihalachi
|
||||
*
|
||||
* This file is part of Turbo Editor.
|
||||
*
|
||||
* Turbo Editor is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Turbo Editor is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with Turbo Editor. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.vmihalachi.turboeditor;
|
||||
|
||||
import android.app.Fragment;
|
||||
import android.os.Bundle;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
/**
|
||||
* Created by Vlad on 9/23/13.
|
||||
*/
|
||||
public class NoFileOpenedFragment extends Fragment {
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
||||
// Out custom layout
|
||||
View rootView = inflater.inflate(R.layout.fragment_no_file_open, container, false);
|
||||
return rootView;
|
||||
}
|
||||
}
|
@ -0,0 +1,126 @@
|
||||
/*
|
||||
* Copyright (C) 2013 Vlad Mihalachi
|
||||
*
|
||||
* This file is part of Turbo Editor.
|
||||
*
|
||||
* Turbo Editor is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Turbo Editor is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with Turbo Editor. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.vmihalachi.turboeditor;
|
||||
|
||||
import android.app.Fragment;
|
||||
import android.app.FragmentManager;
|
||||
import android.app.FragmentTransaction;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.ApplicationInfo;
|
||||
import android.content.pm.PackageInfo;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.preference.Preference;
|
||||
import android.preference.PreferenceActivity;
|
||||
|
||||
public class PreferenceAbout extends PreferenceActivity {
|
||||
@Override
|
||||
public void onCreate(final Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
addPreferencesFromResource(R.xml.about);
|
||||
setupClickablePreferences();
|
||||
}
|
||||
|
||||
public void setupClickablePreferences() {
|
||||
final Preference email = findPreference("aboutactivity_authoremail"),
|
||||
changelog = findPreference("aboutactivity_changelog"),
|
||||
open_source_licenses = findPreference("aboutactivity_open_source_licenses"),
|
||||
market = findPreference("aboutactivity_authormarket");
|
||||
if (email != null) {
|
||||
email.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
|
||||
@Override
|
||||
public boolean onPreferenceClick(final Preference preference) {
|
||||
Intent i = new Intent(Intent.ACTION_SEND);
|
||||
i.setType("message/rfc822");
|
||||
i.putExtra(Intent.EXTRA_EMAIL, new String[]{"app.feedback.mail@gmail.com"});
|
||||
i.putExtra(Intent.EXTRA_SUBJECT, getApplicationName(getBaseContext()) + " " + getCurrentVersion(getBaseContext()));
|
||||
i.putExtra(Intent.EXTRA_TEXT, "");
|
||||
try {
|
||||
startActivity(Intent.createChooser(i, getString(R.string.aboutactivity_authoremail_summary)));
|
||||
} catch (android.content.ActivityNotFoundException ex) {
|
||||
}
|
||||
return false;
|
||||
}
|
||||
});
|
||||
}
|
||||
if (changelog != null) {
|
||||
changelog.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
|
||||
@Override
|
||||
public boolean onPreferenceClick(final Preference preference) {
|
||||
openDialogFragment(new DialogStandardFragment());
|
||||
return false;
|
||||
}
|
||||
});
|
||||
}
|
||||
if (open_source_licenses != null) {
|
||||
open_source_licenses.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
|
||||
@Override
|
||||
public boolean onPreferenceClick(final Preference preference) {
|
||||
startActivity(new Intent(PreferenceAbout.this, LicensesActivity.class));
|
||||
return false;
|
||||
}
|
||||
});
|
||||
}
|
||||
if (market != null) {
|
||||
market.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
|
||||
@Override
|
||||
public boolean onPreferenceClick(final Preference preference) {
|
||||
try {
|
||||
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://search?q=pub:Vlad+Mihalachi"))
|
||||
.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
|
||||
} catch (Exception e) {
|
||||
}
|
||||
return false;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
private void openDialogFragment(DialogStandardFragment dialogStandardFragment) {
|
||||
if (dialogStandardFragment != null) {
|
||||
FragmentManager fm = getFragmentManager();
|
||||
FragmentTransaction ft = fm.beginTransaction();
|
||||
Fragment prev = fm.findFragmentByTag("changelogdemo_dialog");
|
||||
if (prev != null) {
|
||||
ft.remove(prev);
|
||||
}
|
||||
ft.addToBackStack(null);
|
||||
|
||||
dialogStandardFragment.show(ft, "changelogdemo_dialog");
|
||||
}
|
||||
}
|
||||
|
||||
public static String getApplicationName(final Context context) {
|
||||
final ApplicationInfo applicationInfo = context.getApplicationInfo();
|
||||
return context.getString(applicationInfo.labelRes);
|
||||
}
|
||||
|
||||
public static String getCurrentVersion(final Context context) {
|
||||
try {
|
||||
final PackageInfo packageInfo = context.getPackageManager().getPackageInfo(context.getPackageName(),
|
||||
0);
|
||||
return packageInfo.versionName;
|
||||
} catch (PackageManager.NameNotFoundException e) {
|
||||
return "";
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,224 @@
|
||||
/*
|
||||
* Copyright (C) 2013 Vlad Mihalachi
|
||||
*
|
||||
* This file is part of Turbo Editor.
|
||||
*
|
||||
* Turbo Editor is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Turbo Editor is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with Turbo Editor. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.vmihalachi.turboeditor;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Intent;
|
||||
import android.os.AsyncTask;
|
||||
import android.os.Bundle;
|
||||
import android.os.Environment;
|
||||
import android.text.TextUtils;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.widget.AdapterView;
|
||||
import android.widget.ListView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.vmihalachi.turboeditor.adapter.AdapterDetailedList;
|
||||
import com.vmihalachi.turboeditor.util.AlphanumComparator;
|
||||
|
||||
import org.apache.commons.io.FileUtils;
|
||||
|
||||
import java.io.File;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.AbstractMap;
|
||||
import java.util.Arrays;
|
||||
import java.util.Comparator;
|
||||
import java.util.HashMap;
|
||||
import java.util.LinkedList;
|
||||
|
||||
/**
|
||||
* Created by Vlad on 9/24/13.
|
||||
*/
|
||||
public class SelectFileActivity extends Activity implements AdapterView.OnItemClickListener {
|
||||
private String currentFolder;
|
||||
private ListView listView;
|
||||
private boolean wantAFile, wantAFolder;
|
||||
|
||||
// The android SD card root path
|
||||
public static final String SD_CARD_ROOT =
|
||||
Environment.getExternalStorageDirectory()
|
||||
.getAbsolutePath();
|
||||
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
setContentView(R.layout.activity_select_file);
|
||||
final Actions action = (Actions) getIntent().getExtras().getSerializable("action");
|
||||
wantAFile = action == Actions.SelectFile;
|
||||
wantAFolder = action == Actions.SelectFolder;
|
||||
|
||||
this.listView = (ListView) findViewById(android.R.id.list);
|
||||
this.listView.setOnItemClickListener(this);
|
||||
|
||||
String path = getIntent().getExtras().getString("path");
|
||||
if (TextUtils.isEmpty(path)) {
|
||||
new UpdateList().execute(SD_CARD_ROOT);
|
||||
} else {
|
||||
new UpdateList().execute(path);
|
||||
}
|
||||
}
|
||||
|
||||
void returnData(String path) {
|
||||
final Intent returnIntent = new Intent();
|
||||
returnIntent.putExtra("path", path);
|
||||
setResult(RESULT_OK, returnIntent);
|
||||
// finish the activity
|
||||
finish();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onItemClick(AdapterView<?> parent,
|
||||
View view, int position, long id) {
|
||||
final String name = ((TextView) view.findViewById(android.R.id.title)).getText().toString();
|
||||
if (name.equals("..")) {
|
||||
vaiIndietro();
|
||||
return;
|
||||
} else if (name.equals(getString(R.string.home))) {
|
||||
new UpdateList().execute(SD_CARD_ROOT);
|
||||
return;
|
||||
}
|
||||
|
||||
final File selectedFile = new File(currentFolder, name);
|
||||
|
||||
if (selectedFile.isFile() && wantAFile) {
|
||||
returnData(selectedFile.getAbsolutePath());
|
||||
} else if (selectedFile.isDirectory()) {
|
||||
new UpdateList().execute(selectedFile.getAbsolutePath());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCreateOptionsMenu(Menu menu) {
|
||||
getMenuInflater().inflate(R.menu.activity_select_file, menu);
|
||||
menu.findItem(R.id.im_button).setTitle(getString(wantAFolder ? R.string.seleziona
|
||||
: android.R.string.cancel));
|
||||
return super.onCreateOptionsMenu(menu);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
int i = item.getItemId();
|
||||
if (i == R.id.im_button) {
|
||||
if (wantAFolder) {
|
||||
returnData(currentFolder);
|
||||
} else if (wantAFile) {
|
||||
returnData("");
|
||||
}
|
||||
}
|
||||
return super.onOptionsItemSelected(item);
|
||||
}
|
||||
|
||||
void vaiIndietro() {
|
||||
if (currentFolder.equals("/")) {
|
||||
new UpdateList().execute(SD_CARD_ROOT);
|
||||
} else {
|
||||
File tempFile = new File(currentFolder);
|
||||
if (tempFile.isFile()) {
|
||||
tempFile = tempFile.getParentFile()
|
||||
.getParentFile();
|
||||
} else {
|
||||
tempFile = tempFile.getParentFile();
|
||||
}
|
||||
new UpdateList().execute(tempFile.getAbsolutePath());
|
||||
}
|
||||
}
|
||||
|
||||
private class UpdateList extends
|
||||
AsyncTask<String, Void, LinkedList<AdapterDetailedList.FileDetail>> {
|
||||
|
||||
@Override
|
||||
protected LinkedList<AdapterDetailedList.FileDetail> doInBackground(final String... params) {
|
||||
try {
|
||||
|
||||
final String path = params[0];
|
||||
if (TextUtils.isEmpty(path)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
File tempFile = new File(path);
|
||||
if (tempFile.isFile()) {
|
||||
tempFile = tempFile.getParentFile();
|
||||
}
|
||||
|
||||
final File[] files = tempFile.listFiles();
|
||||
Arrays.sort(files,
|
||||
getFileNameComparator());
|
||||
|
||||
final LinkedList<AdapterDetailedList.FileDetail> fileDetails = new LinkedList<AdapterDetailedList.FileDetail>();
|
||||
final LinkedList<AdapterDetailedList.FileDetail>
|
||||
folderDetails = new LinkedList<AdapterDetailedList.FileDetail>();
|
||||
final AbstractMap<String, File> tempList = new HashMap<String, File>();
|
||||
currentFolder = tempFile.getAbsolutePath();
|
||||
|
||||
if (files != null) {
|
||||
for (final File f : files) {
|
||||
if (f.isHidden()) {
|
||||
continue;
|
||||
} else if (f.isDirectory()
|
||||
&& f.canRead()) {
|
||||
folderDetails.add(new AdapterDetailedList.FileDetail(f.getName(),
|
||||
getString(R.string.folder),
|
||||
""));
|
||||
} else if (f.isFile()) {
|
||||
final long fileSize = f.length();
|
||||
SimpleDateFormat format = new SimpleDateFormat("MMM dd, yyyy hh:mm a");
|
||||
String date = format.format(f.lastModified());
|
||||
fileDetails.add(new AdapterDetailedList.FileDetail(f.getName(),
|
||||
FileUtils.byteCountToDisplaySize(fileSize), date));
|
||||
}
|
||||
tempList.put(f.getName(), f);
|
||||
}
|
||||
}
|
||||
|
||||
folderDetails.addAll(fileDetails);
|
||||
return folderDetails;
|
||||
} catch (Exception e) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPostExecute(final LinkedList<AdapterDetailedList.FileDetail> names) {
|
||||
boolean isRoot = currentFolder.equals("/");
|
||||
if (names != null) {
|
||||
listView.setAdapter(new AdapterDetailedList(getBaseContext(), names, isRoot));
|
||||
}
|
||||
super.onPostExecute(names);
|
||||
}
|
||||
|
||||
public final Comparator<File> getFileNameComparator() {
|
||||
return new AlphanumComparator() {
|
||||
@Override
|
||||
public String getTheString(Object obj) {
|
||||
return ((File) obj).getName()
|
||||
.toLowerCase();
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
public enum Actions {
|
||||
SelectFile, SelectFolder
|
||||
}
|
||||
}
|
@ -0,0 +1,260 @@
|
||||
/*
|
||||
* Copyright (C) 2013 Vlad Mihalachi
|
||||
*
|
||||
* This file is part of Turbo Editor.
|
||||
*
|
||||
* Turbo Editor is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Turbo Editor is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with Turbo Editor. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.vmihalachi.turboeditor.adapter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.Typeface;
|
||||
import android.text.TextUtils;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ArrayAdapter;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.vmihalachi.turboeditor.R;
|
||||
import com.vmihalachi.turboeditor.helper.FileHelper;
|
||||
import com.vmihalachi.turboeditor.util.MimeTypes;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.LinkedList;
|
||||
import java.util.Set;
|
||||
|
||||
public class AdapterDetailedList extends
|
||||
ArrayAdapter<AdapterDetailedList.FileDetail> {
|
||||
|
||||
// Layout Inflater
|
||||
final LayoutInflater inflater;
|
||||
|
||||
// The Context to get drawables from resources
|
||||
private final Context context;
|
||||
|
||||
// The list of names
|
||||
final LinkedList<FileDetail> fileDetails;
|
||||
|
||||
// Change HashMap<Integer, Boolean> to SparseBooleanArray
|
||||
private HashMap<String, Boolean> mSelection =
|
||||
new HashMap<String, Boolean>();
|
||||
|
||||
private final int default_text_color;
|
||||
private final int highlight_text_color;
|
||||
|
||||
public static class ViewHolder {
|
||||
|
||||
// Text view with the name of the file
|
||||
public TextView label;
|
||||
|
||||
// Text view with the name of the file
|
||||
public TextView sizeLabel;
|
||||
|
||||
public TextView dateLabel;
|
||||
|
||||
// The icon of the file
|
||||
public ImageView icon;
|
||||
}
|
||||
|
||||
public AdapterDetailedList(final Context context,
|
||||
final LinkedList<FileDetail> fileDetails,
|
||||
final boolean isRoot) {
|
||||
// super
|
||||
super(context,
|
||||
R.layout.item_file_list,
|
||||
fileDetails);
|
||||
this.context = context;
|
||||
this.fileDetails = fileDetails;
|
||||
// Cache the LayoutInflate to avoid asking for a new one each time.
|
||||
this.inflater = LayoutInflater.from(context);
|
||||
this.default_text_color = context.getResources().getColor(android.R.color.primary_text_dark);
|
||||
this.highlight_text_color = context.getResources().getColor(android.R.color.holo_blue_dark);
|
||||
if (!isRoot) {
|
||||
this.fileDetails.addFirst(new FileDetail("..",
|
||||
context.getString(R.string.folder), ""));
|
||||
} else {
|
||||
this.fileDetails.addFirst(new FileDetail(context.getString(R.string.home),
|
||||
context.getString(R.string.folder),
|
||||
""));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public View getView(final int position,
|
||||
View convertView, final ViewGroup parent) {
|
||||
if (convertView == null) {
|
||||
convertView = this.inflater
|
||||
.inflate(R.layout.item_file_list,
|
||||
null);
|
||||
final ViewHolder hold = new ViewHolder();
|
||||
hold.label = (TextView) convertView.findViewById(android.R.id.title);
|
||||
hold.sizeLabel = (TextView) convertView.findViewById(android.R.id.text1);
|
||||
hold.dateLabel = (TextView) convertView.findViewById(android.R.id.text2);
|
||||
hold.icon = (ImageView) convertView.findViewById(android.R.id.icon);
|
||||
convertView.setTag(hold);
|
||||
final FileDetail fileDetail = fileDetails.get(position);
|
||||
final String fileName = fileDetail.getName();
|
||||
setIcon(hold, fileDetail);
|
||||
hold.label
|
||||
.setText(fileName);
|
||||
hold.sizeLabel
|
||||
.setText(fileDetail.getSize());
|
||||
hold.dateLabel
|
||||
.setText(fileDetail.getDateModified());
|
||||
if (isPositionChecked(fileName)) {
|
||||
hold.label
|
||||
.setTextColor(this.highlight_text_color);
|
||||
hold.label
|
||||
.setTypeface(null, Typeface.ITALIC);
|
||||
} else {
|
||||
hold.label
|
||||
.setTextColor(this.default_text_color);
|
||||
hold.label
|
||||
.setTypeface(null, Typeface.NORMAL);
|
||||
}
|
||||
} else {
|
||||
final ViewHolder hold = ((ViewHolder) convertView.getTag());
|
||||
final FileDetail fileDetail = fileDetails.get(position);
|
||||
final String fileName = fileDetail.getName();
|
||||
setIcon(hold, fileDetail);
|
||||
hold.label
|
||||
.setText(fileName);
|
||||
hold.sizeLabel
|
||||
.setText(fileDetail.getSize());
|
||||
hold.dateLabel
|
||||
.setText(fileDetail.getDateModified());
|
||||
if (isPositionChecked(fileName)) {
|
||||
hold.label
|
||||
.setTextColor(this.highlight_text_color);
|
||||
hold.label
|
||||
.setTypeface(null, Typeface.ITALIC);
|
||||
} else {
|
||||
hold.label
|
||||
.setTextColor(this.default_text_color);
|
||||
hold.label
|
||||
.setTypeface(null, Typeface.NORMAL);
|
||||
}
|
||||
}
|
||||
return convertView;
|
||||
}
|
||||
|
||||
private void setIcon(final ViewHolder viewHolder,
|
||||
final FileDetail fileDetail) {
|
||||
final String fileName = fileDetail.getName();
|
||||
final String ext = FileHelper.getExtension(fileName);
|
||||
if (fileDetail.isFolder()) {
|
||||
viewHolder.icon
|
||||
.setImageResource(R.color.file_folder);
|
||||
} else if (Arrays.asList(MimeTypes.MIME_HTML)
|
||||
.contains(ext) || ext.endsWith("html")) {
|
||||
viewHolder.icon
|
||||
.setImageResource(R.color.file_html);
|
||||
} else if (Arrays.asList(MimeTypes.MIME_CODE)
|
||||
.contains(ext)
|
||||
|| fileName.endsWith("css")
|
||||
|| fileName.endsWith("js")) {
|
||||
viewHolder.icon
|
||||
.setImageResource(R.color.file_code);
|
||||
} else if (Arrays.asList(MimeTypes.MIME_ARCHIVE).contains(ext)) {
|
||||
viewHolder.icon
|
||||
.setImageResource(R.color.file_archive);
|
||||
} else if (Arrays.asList(MimeTypes.MIME_MUSIC)
|
||||
.contains(ext)) {
|
||||
viewHolder.icon
|
||||
.setImageResource(R.color.file_media_music);
|
||||
} else if (Arrays.asList(MimeTypes.MIME_PICTURE).contains(ext)) {
|
||||
viewHolder.icon
|
||||
.setImageResource(R.color.file_media_picture);
|
||||
} else if (Arrays.asList(MimeTypes.MIME_VIDEO)
|
||||
.contains(ext)) {
|
||||
viewHolder.icon
|
||||
.setImageResource(R.color.file_media_video);
|
||||
} else {
|
||||
viewHolder.icon
|
||||
.setImageResource(R.color.file_text);
|
||||
}
|
||||
}
|
||||
|
||||
public void checkPosition(final String name) {
|
||||
if (isPositionChecked(name)) {
|
||||
removeSelection(name);
|
||||
} else {
|
||||
setNewSelection(name, true);
|
||||
}
|
||||
}
|
||||
|
||||
void setNewSelection(final String name,
|
||||
final boolean value) {
|
||||
this.mSelection.put(name, value);
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
boolean isPositionChecked(final String name) {
|
||||
final Boolean result = this.mSelection.get(name);
|
||||
return (result == null) ? false : result;
|
||||
}
|
||||
|
||||
public Set<String> getCurrentCheckedPosition() {
|
||||
return this.mSelection.keySet();
|
||||
}
|
||||
|
||||
private void removeSelection(final String name) {
|
||||
this.mSelection.remove(name);
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
public void clearSelection() {
|
||||
this.mSelection = new HashMap<String, Boolean>();
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
public static class FileDetail {
|
||||
private String name;
|
||||
private String size;
|
||||
private String dateModified;
|
||||
private boolean isFolder;
|
||||
|
||||
public FileDetail(String name, String size,
|
||||
String dateModified) {
|
||||
this.name = name;
|
||||
this.size = size;
|
||||
this.dateModified = dateModified;
|
||||
if (TextUtils.isEmpty(dateModified)) {
|
||||
isFolder = true;
|
||||
} else {
|
||||
isFolder = false;
|
||||
}
|
||||
}
|
||||
|
||||
public String getDateModified() {
|
||||
return dateModified;
|
||||
}
|
||||
|
||||
public String getSize() {
|
||||
return size;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public boolean isFolder() {
|
||||
return isFolder;
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,23 @@
|
||||
/*
|
||||
* Copyright (C) 2013 Vlad Mihalachi
|
||||
*
|
||||
* This file is part of Turbo Editor.
|
||||
*
|
||||
* Turbo Editor is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Turbo Editor is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with Turbo Editor. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.vmihalachi.turboeditor.event;
|
||||
|
||||
public class CloseDrawerEvent {
|
||||
}
|
@ -0,0 +1,23 @@
|
||||
/*
|
||||
* Copyright (C) 2013 Vlad Mihalachi
|
||||
*
|
||||
* This file is part of Turbo Editor.
|
||||
*
|
||||
* Turbo Editor is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Turbo Editor is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with Turbo Editor. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.vmihalachi.turboeditor.event;
|
||||
|
||||
public class ErrorOpeningFileEvent {
|
||||
}
|
@ -0,0 +1,32 @@
|
||||
/*
|
||||
* Copyright (C) 2013 Vlad Mihalachi
|
||||
*
|
||||
* This file is part of Turbo Editor.
|
||||
*
|
||||
* Turbo Editor is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Turbo Editor is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with Turbo Editor. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.vmihalachi.turboeditor.event;
|
||||
|
||||
public class FileSavedEvent {
|
||||
private String filePath;
|
||||
|
||||
public FileSavedEvent(String filePath) {
|
||||
this.filePath = filePath;
|
||||
}
|
||||
|
||||
public String getFilePath() {
|
||||
return filePath;
|
||||
}
|
||||
}
|
@ -0,0 +1,33 @@
|
||||
/*
|
||||
* Copyright (C) 2013 Vlad Mihalachi
|
||||
*
|
||||
* This file is part of Turbo Editor.
|
||||
*
|
||||
* Turbo Editor is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Turbo Editor is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with Turbo Editor. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.vmihalachi.turboeditor.event;
|
||||
|
||||
public class FileSelectedEvent {
|
||||
|
||||
private String path;
|
||||
|
||||
public FileSelectedEvent(String path){
|
||||
this.path = path;
|
||||
}
|
||||
|
||||
public String getPath() {
|
||||
return path;
|
||||
}
|
||||
}
|
@ -0,0 +1,32 @@
|
||||
/*
|
||||
* Copyright (C) 2013 Vlad Mihalachi
|
||||
*
|
||||
* This file is part of Turbo Editor.
|
||||
*
|
||||
* Turbo Editor is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Turbo Editor is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with Turbo Editor. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.vmihalachi.turboeditor.event;
|
||||
|
||||
public class NewFileOpened {
|
||||
private String filePath;
|
||||
|
||||
public NewFileOpened(String filePath) {
|
||||
this.filePath = filePath;
|
||||
}
|
||||
|
||||
public String getFilePath() {
|
||||
return filePath;
|
||||
}
|
||||
}
|
@ -0,0 +1,23 @@
|
||||
/*
|
||||
* Copyright (C) 2013 Vlad Mihalachi
|
||||
*
|
||||
* This file is part of Turbo Editor.
|
||||
*
|
||||
* Turbo Editor is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Turbo Editor is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with Turbo Editor. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.vmihalachi.turboeditor.event;
|
||||
|
||||
public class OpenDrawerEvent {
|
||||
}
|
@ -0,0 +1,49 @@
|
||||
/*
|
||||
* Copyright (C) 2013 Vlad Mihalachi
|
||||
*
|
||||
* This file is part of Turbo Editor.
|
||||
*
|
||||
* Turbo Editor is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Turbo Editor is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with Turbo Editor. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.vmihalachi.turboeditor.helper;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
public class FileHelper {
|
||||
/**
|
||||
* Get the extension of a file
|
||||
* @param f the file
|
||||
* @return the extension of a file
|
||||
*/
|
||||
public static String getExtension(File f) {
|
||||
return getExtension(f.getAbsolutePath());
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the extension from a file path
|
||||
* @param path the path
|
||||
* @return the extension from a file path
|
||||
*/
|
||||
public static String getExtension(String path) {
|
||||
String ext = null;
|
||||
String s = path;
|
||||
int i = s.lastIndexOf('.');
|
||||
|
||||
if (i > 0 && i < s.length() - 1) {
|
||||
ext = s.substring(i+1).toLowerCase();
|
||||
}
|
||||
return ext;
|
||||
}
|
||||
}
|
@ -0,0 +1,58 @@
|
||||
/*
|
||||
* Copyright (C) 2013 Vlad Mihalachi
|
||||
*
|
||||
* This file is part of Turbo Editor.
|
||||
*
|
||||
* Turbo Editor is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Turbo Editor is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with Turbo Editor. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.vmihalachi.turboeditor.helper;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.res.Resources;
|
||||
import android.util.DisplayMetrics;
|
||||
|
||||
public final class PixelDipConverter {
|
||||
|
||||
private PixelDipConverter() {
|
||||
}
|
||||
|
||||
/**
|
||||
* This method convets dp unit to equivalent device specific value in pixels.
|
||||
*
|
||||
* @param dp A value in dp(Device independent pixels) unit. Which we need to convert into pixels
|
||||
* @param context Context to get resources and device specific display metrics
|
||||
* @return A float value to represent Pixels equivalent to dp according to device
|
||||
*/
|
||||
public static float convertDpToPixel(final float dp, final Context context) {
|
||||
final Resources resources = context.getResources();
|
||||
final DisplayMetrics metrics = resources.getDisplayMetrics();
|
||||
final float px = dp * metrics.densityDpi / 160f;
|
||||
return px;
|
||||
}
|
||||
|
||||
/**
|
||||
* This method converts device specific pixels to device independent pixels.
|
||||
*
|
||||
* @param px A value in px (pixels) unit. Which we need to convert into db
|
||||
* @param context Context to get resources and device specific display metrics
|
||||
* @return A float value to represent db equivalent to px value
|
||||
*/
|
||||
public static float convertPixelsToDp(final float px, final Context context) {
|
||||
final Resources resources = context.getResources();
|
||||
final DisplayMetrics metrics = resources.getDisplayMetrics();
|
||||
final float dp = px / (metrics.densityDpi / 160f);
|
||||
return dp;
|
||||
}
|
||||
}
|
@ -0,0 +1,68 @@
|
||||
/*
|
||||
* Copyright (C) 2013 Vlad Mihalachi
|
||||
*
|
||||
* This file is part of Turbo Editor.
|
||||
*
|
||||
* Turbo Editor is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Turbo Editor is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with Turbo Editor. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.vmihalachi.turboeditor.helper;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.SharedPreferences;
|
||||
import android.preference.PreferenceManager;
|
||||
|
||||
public final class PreferenceHelper {
|
||||
|
||||
private PreferenceHelper() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Getter Methods
|
||||
*/
|
||||
public static SharedPreferences getPrefs(Context context) {
|
||||
return PreferenceManager.getDefaultSharedPreferences(context);
|
||||
}
|
||||
|
||||
public static SharedPreferences.Editor getEditor(Context context) {
|
||||
return getPrefs(context).edit();
|
||||
}
|
||||
|
||||
public static boolean getWrapText(Context context) {
|
||||
return getPrefs(context).getBoolean("editor_wrap_text", true);
|
||||
}
|
||||
|
||||
public static boolean getSyntaxHiglight(Context context) {
|
||||
return getPrefs(context).getBoolean("editor_syntax_highlight", true);
|
||||
}
|
||||
|
||||
public static String getEncoding(Context context) {
|
||||
return getPrefs(context).getString("editor_encoding", "UTF-8");
|
||||
}
|
||||
/**
|
||||
* Setter Methods
|
||||
*/
|
||||
|
||||
public static void setWrapText(Context context, boolean value) {
|
||||
getEditor(context).putBoolean("editor_wrap_text", value).commit();
|
||||
}
|
||||
|
||||
public static void setSyntaxHiglight(Context context, boolean value) {
|
||||
getEditor(context).putBoolean("editor_syntax_highlight", value).commit();
|
||||
}
|
||||
|
||||
public static void setEncoding(Context context, String value) {
|
||||
getEditor(context).putString("editor_encoding", value).commit();
|
||||
}
|
||||
}
|
@ -0,0 +1,41 @@
|
||||
/*
|
||||
* Copyright (C) 2013 Vlad Mihalachi
|
||||
*
|
||||
* This file is part of Turbo Editor.
|
||||
*
|
||||
* Turbo Editor is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Turbo Editor is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with Turbo Editor. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.vmihalachi.turboeditor.helper;
|
||||
|
||||
public final class StringHelper {
|
||||
|
||||
private StringHelper() {
|
||||
}
|
||||
|
||||
public static String join(final String... strings) {
|
||||
final StringBuffer buffer = new StringBuffer();
|
||||
for (String string : strings) {
|
||||
if (!string.endsWith("/")) {
|
||||
string += "/";
|
||||
}
|
||||
buffer.append(string);
|
||||
}
|
||||
String result = buffer.toString();
|
||||
if (result.endsWith("/")) {
|
||||
result = result.substring(0, result.length() - 1);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
@ -0,0 +1,138 @@
|
||||
/*
|
||||
* Copyright (C) 2013 Vlad Mihalachi
|
||||
*
|
||||
* This file is part of Turbo Editor.
|
||||
*
|
||||
* Turbo Editor is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Turbo Editor is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with Turbo Editor. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.vmihalachi.turboeditor.util;/*
|
||||
* The Alphanum Algorithm is an improved sorting algorithm for strings
|
||||
* containing numbers. Instead of sorting numbers in ASCII order like
|
||||
* a standard sort, this algorithm sorts numbers in numeric order.
|
||||
*
|
||||
* The Alphanum Algorithm is discussed at http://www.DaveKoelle.com
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*
|
||||
*/
|
||||
|
||||
import java.util.Comparator;
|
||||
|
||||
/**
|
||||
* This is an updated version with enhancements made by Daniel Migowski, Andre Bogus, and David
|
||||
* Koelle
|
||||
* <p/>
|
||||
* To convert to use Templates (Java 1.5+): - Change "implements Comparator" to "implements
|
||||
* Comparator<String>" - Change "compare(Object o1, Object o2)" to "compare(String s1, String s2)" -
|
||||
* Remove the type checking and casting in compare().
|
||||
* <p/>
|
||||
* To use this class: Use the static "sort" method from the java.util.Collections class:
|
||||
* Collections.sort(your list, new AlphanumComparator());
|
||||
*/
|
||||
public class AlphanumComparator implements Comparator {
|
||||
private final boolean isDigit(char ch) {
|
||||
return ch >= 48 && ch <= 57;
|
||||
}
|
||||
|
||||
/**
|
||||
* Length of string is passed in for improved efficiency (only need to calculate it once) *
|
||||
*/
|
||||
private final String getChunk(String s, int slength, int marker) {
|
||||
StringBuilder chunk = new StringBuilder();
|
||||
char c = s.charAt(marker);
|
||||
chunk.append(c);
|
||||
marker++;
|
||||
if (isDigit(c)) {
|
||||
while (marker < slength) {
|
||||
c = s.charAt(marker);
|
||||
if (!isDigit(c)) {
|
||||
break;
|
||||
}
|
||||
chunk.append(c);
|
||||
marker++;
|
||||
}
|
||||
} else {
|
||||
while (marker < slength) {
|
||||
c = s.charAt(marker);
|
||||
if (isDigit(c)) {
|
||||
break;
|
||||
}
|
||||
chunk.append(c);
|
||||
marker++;
|
||||
}
|
||||
}
|
||||
return chunk.toString();
|
||||
}
|
||||
|
||||
public String getTheString(Object obj) {
|
||||
return (String) obj;
|
||||
}
|
||||
|
||||
public int compare(Object o1, Object o2) {
|
||||
String s1 = getTheString(o1);
|
||||
String s2 = getTheString(o2);
|
||||
|
||||
int thisMarker = 0;
|
||||
int thatMarker = 0;
|
||||
int s1Length = s1.length();
|
||||
int s2Length = s2.length();
|
||||
|
||||
while (thisMarker < s1Length && thatMarker < s2Length) {
|
||||
String thisChunk = getChunk(s1, s1Length, thisMarker);
|
||||
thisMarker += thisChunk.length();
|
||||
|
||||
String thatChunk = getChunk(s2, s2Length, thatMarker);
|
||||
thatMarker += thatChunk.length();
|
||||
|
||||
// If both chunks contain numeric characters, sort them numerically
|
||||
int result = 0;
|
||||
if (isDigit(thisChunk.charAt(0)) && isDigit(thatChunk.charAt(0))) {
|
||||
// Simple chunk comparison by length.
|
||||
int thisChunkLength = thisChunk.length();
|
||||
result = thisChunkLength - thatChunk.length();
|
||||
// If equal, the first different number counts
|
||||
if (result == 0) {
|
||||
for (int i = 0; i < thisChunkLength; i++) {
|
||||
result = thisChunk.charAt(i) - thatChunk.charAt(i);
|
||||
if (result != 0) {
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
result = thisChunk.compareTo(thatChunk);
|
||||
}
|
||||
|
||||
if (result != 0) {
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
return s1Length - s2Length;
|
||||
}
|
||||
}
|
@ -0,0 +1,146 @@
|
||||
/*
|
||||
* Copyright (C) 2013 Vlad Mihalachi
|
||||
*
|
||||
* This file is part of Turbo Editor.
|
||||
*
|
||||
* Turbo Editor is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Turbo Editor is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with Turbo Editor. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.vmihalachi.turboeditor.util;
|
||||
|
||||
public class MimeTypes {
|
||||
public static final String[] MIME_TEXT = {
|
||||
"ajx",
|
||||
"am",
|
||||
"asa",
|
||||
"asc",
|
||||
"asp",
|
||||
"aspx",
|
||||
"awk",
|
||||
"bat",
|
||||
"c",
|
||||
"cdf",
|
||||
"cf",
|
||||
"cfg",
|
||||
"cfm",
|
||||
"cgi",
|
||||
"cnf",
|
||||
"conf",
|
||||
"cpp",
|
||||
"css",
|
||||
"csv",
|
||||
"ctl",
|
||||
"dat",
|
||||
"dhtml",
|
||||
"diz",
|
||||
"file",
|
||||
"forward",
|
||||
"grp",
|
||||
"h",
|
||||
"hpp",
|
||||
"hqx",
|
||||
"hta",
|
||||
"htaccess",
|
||||
"htc",
|
||||
"htm",
|
||||
"html",
|
||||
"htpasswd",
|
||||
"htt",
|
||||
"htx",
|
||||
"in",
|
||||
"inc",
|
||||
"info",
|
||||
"ini",
|
||||
"ink",
|
||||
"java",
|
||||
"js",
|
||||
"jsp",
|
||||
"key",
|
||||
"log",
|
||||
"logfile",
|
||||
"m3u",
|
||||
"m4",
|
||||
"m4a",
|
||||
"mak",
|
||||
"map",
|
||||
"model",
|
||||
"msg",
|
||||
"nfo",
|
||||
"nsi",
|
||||
"info",
|
||||
"old",
|
||||
"pas",
|
||||
"patch",
|
||||
"perl",
|
||||
"php",
|
||||
"php2",
|
||||
"php3",
|
||||
"php4",
|
||||
"php5",
|
||||
"php6",
|
||||
"phtml",
|
||||
"pix",
|
||||
"pl",
|
||||
"pm",
|
||||
"po",
|
||||
"pwd",
|
||||
"py",
|
||||
"qmail",
|
||||
"rb",
|
||||
"rbl",
|
||||
"rbw",
|
||||
"readme",
|
||||
"reg",
|
||||
"rss",
|
||||
"rtf",
|
||||
"ruby",
|
||||
"session",
|
||||
"setup",
|
||||
"sh",
|
||||
"shtm",
|
||||
"shtml",
|
||||
"sql",
|
||||
"ssh",
|
||||
"stm",
|
||||
"style",
|
||||
"svg",
|
||||
"tcl",
|
||||
"text",
|
||||
"threads",
|
||||
"tmpl",
|
||||
"tpl",
|
||||
"txt",
|
||||
"ubb",
|
||||
"vbs",
|
||||
"xhtml",
|
||||
"xml",
|
||||
"xrc",
|
||||
"xsl"};
|
||||
public static final String[] MIME_CODE =
|
||||
{"xml", "php", "asp", "json", "wiki"};
|
||||
public static final String[] MIME_HTML =
|
||||
{"htm"};
|
||||
public static final String[] MIME_PICTURE = {
|
||||
"png", "jpeg", "jpg", "ico", "gif", "bmp",
|
||||
"tiff"
|
||||
};
|
||||
public static final String[] MIME_MUSIC =
|
||||
{"mp3", "avi", "flac", "mpga"};
|
||||
public static final String[] MIME_VIDEO =
|
||||
{"mp4", "mkv", "wmw"};
|
||||
public static final String[] MIME_ARCHIVE = {
|
||||
"zip", "tar", "gz", "bz2", "rar", "7z"
|
||||
};
|
||||
public static String[] USER_MIME_TEXT;
|
||||
}
|
@ -0,0 +1,66 @@
|
||||
/*
|
||||
* Copyright (C) 2013 Vlad Mihalachi
|
||||
*
|
||||
* This file is part of Turbo Editor.
|
||||
*
|
||||
* Turbo Editor is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Turbo Editor is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with Turbo Editor. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.vmihalachi.turboeditor.util;
|
||||
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
public class Patterns {
|
||||
public static final int COLOR_NUMBER = 0xffff6600;
|
||||
public static final int COLOR_KEYWORD = 0xff2f6f9f;
|
||||
public static final int COLOR_ATTR = 0xff4f9fcf;
|
||||
public static final int COLOR_ATTR_VALUE = 0xffd44950;
|
||||
public static final int COLOR_STRING = 0xffd44950;
|
||||
public static final int COLOR_COMMENT = 0xff999999;
|
||||
|
||||
// Strings
|
||||
public static final Pattern GENERAL_STRINGS = Pattern.compile("\"(.*?)\"|'(.*?)'");
|
||||
|
||||
public static final Pattern HTML_OPEN_TAGS = Pattern.compile(
|
||||
"<([A-Za-z][A-Za-z0-9]*)\\b[^>]*>");
|
||||
public static final Pattern HTML_CLOSE_TAGS = Pattern.compile(
|
||||
"</([A-Za-z][A-Za-z0-9]*)\\b[^>]*>");
|
||||
public static final Pattern HTML_ATTRS = Pattern.compile(
|
||||
"(\\S+)=[\"']?((?:.(?![\"']?\\s+(?:\\S+)=|[>\"']))+.)[\"']?");
|
||||
|
||||
//static final Pattern CSS_STYLE_NAME= Pattern.compile(
|
||||
// "[ \\t\\n\\r\\f](.+?)\\{([^\\)]+)\\}");
|
||||
public static final Pattern CSS_ATTRS = Pattern.compile(
|
||||
"(.+?):(.+?);");
|
||||
public static final Pattern CSS_ATTR_VALUE = Pattern.compile(
|
||||
":[ \t](.+?);");
|
||||
|
||||
public static final Pattern NUMBERS = Pattern.compile(
|
||||
"\\b(\\d*[.]?\\d+)\\b");
|
||||
public static final Pattern CSS_NUMBERS = Pattern.compile(
|
||||
"/^auto$|^[+-]?[0-9]+\\.?([0-9]+)?(px|em|ex|%|in|cm|mm|pt|pc)?$/ig");
|
||||
public static final Pattern GENERAL_KEYWORDS = Pattern.compile(
|
||||
"\\b(alignas|alignof|and|and_eq|asm|auto|bitand|bitorbool|break|case|catch|char|"
|
||||
+ "char16_t|char32_t|class|compl|const|constexpr|const_cast|continue|decltype"
|
||||
+ "|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|"
|
||||
+ "false|float|for|friend|function|goto|if|inline|int|mutable|namespace|new|noexcept|"
|
||||
+ "not|not_eq|nullptr|operator|or|or_eq|private|protected|public|register|"
|
||||
+ "reinterpret_cast|return|short|signed|sizeof|static|static_assert|static_cast"
|
||||
+ "|struct|switch|template|this|thread_local|throw|true|try|typedef|typeid|typename"
|
||||
+ "|union|unsigned|using|var|virtual|void|volatile|wchar_t|while|xor|xor_eq)\\b");
|
||||
// Comments
|
||||
public static final Pattern XML_COMMENTS = Pattern.compile("(?s)<!--.*?-->");
|
||||
public static final Pattern GENERAL_COMMENTS = Pattern.compile(
|
||||
"/\\*(?:.|[\\n\\r])*?\\*/|//.*");
|
||||
}
|
@ -0,0 +1,44 @@
|
||||
/*
|
||||
* Copyright (C) 2013 Vlad Mihalachi
|
||||
*
|
||||
* This file is part of Turbo Editor.
|
||||
*
|
||||
* Turbo Editor is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Turbo Editor is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with Turbo Editor. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.vmihalachi.turboeditor.view;
|
||||
|
||||
import android.content.Context;
|
||||
import android.util.AttributeSet;
|
||||
import android.widget.TextView;
|
||||
|
||||
public class CapitalizedTextView extends TextView {
|
||||
|
||||
public CapitalizedTextView(final Context context) {
|
||||
super(context);
|
||||
}
|
||||
|
||||
public CapitalizedTextView(final Context context, final AttributeSet attrs) {
|
||||
super(context, attrs);
|
||||
}
|
||||
|
||||
public CapitalizedTextView(final Context context, final AttributeSet attrs, final int defStyle) {
|
||||
super(context, attrs, defStyle);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setText(final CharSequence text, final BufferType type) {
|
||||
super.setText(text.toString().toUpperCase(), type);
|
||||
}
|
||||
}
|
BIN
Turbo Editor/src/main/res/drawable-hdpi/ic_action_redo.png
Normal file
After Width: | Height: | Size: 729 B |
BIN
Turbo Editor/src/main/res/drawable-hdpi/ic_action_tick.png
Normal file
After Width: | Height: | Size: 393 B |
BIN
Turbo Editor/src/main/res/drawable-hdpi/ic_action_undo.png
Normal file
After Width: | Height: | Size: 716 B |
BIN
Turbo Editor/src/main/res/drawable-hdpi/ic_drawer.png
Normal file
After Width: | Height: | Size: 2.8 KiB |
BIN
Turbo Editor/src/main/res/drawable-hdpi/ic_launcher.png
Normal file
After Width: | Height: | Size: 5.5 KiB |
BIN
Turbo Editor/src/main/res/drawable-mdpi/ic_action_redo.png
Normal file
After Width: | Height: | Size: 481 B |
BIN
Turbo Editor/src/main/res/drawable-mdpi/ic_action_tick.png
Normal file
After Width: | Height: | Size: 332 B |
BIN
Turbo Editor/src/main/res/drawable-mdpi/ic_action_undo.png
Normal file
After Width: | Height: | Size: 485 B |
BIN
Turbo Editor/src/main/res/drawable-mdpi/ic_drawer.png
Normal file
After Width: | Height: | Size: 2.8 KiB |
BIN
Turbo Editor/src/main/res/drawable-mdpi/ic_launcher.png
Normal file
After Width: | Height: | Size: 3.1 KiB |
BIN
Turbo Editor/src/main/res/drawable-xhdpi/ic_action_redo.png
Normal file
After Width: | Height: | Size: 886 B |
BIN
Turbo Editor/src/main/res/drawable-xhdpi/ic_action_tick.png
Normal file
After Width: | Height: | Size: 327 B |
BIN
Turbo Editor/src/main/res/drawable-xhdpi/ic_action_undo.png
Normal file
After Width: | Height: | Size: 926 B |
BIN
Turbo Editor/src/main/res/drawable-xhdpi/ic_drawer.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
Turbo Editor/src/main/res/drawable-xhdpi/ic_launcher.png
Normal file
After Width: | Height: | Size: 7.9 KiB |
BIN
Turbo Editor/src/main/res/drawable-xxhdpi/ic_action_redo.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
Turbo Editor/src/main/res/drawable-xxhdpi/ic_action_tick.png
Normal file
After Width: | Height: | Size: 777 B |
BIN
Turbo Editor/src/main/res/drawable-xxhdpi/ic_action_undo.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
Turbo Editor/src/main/res/drawable-xxhdpi/ic_launcher.png
Normal file
After Width: | Height: | Size: 14 KiB |
34
Turbo Editor/src/main/res/drawable/holo_selector.xml
Normal file
@ -0,0 +1,34 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
~ Copyright (C) 2013 Vlad Mihalachi
|
||||
~
|
||||
~ This file is part of Turbo Editor.
|
||||
~
|
||||
~ Turbo Editor is free software: you can redistribute it and/or modify
|
||||
~ it under the terms of the GNU General Public License as published by
|
||||
~ the Free Software Foundation, either version 3 of the License, or
|
||||
~ (at your option) any later version.
|
||||
~
|
||||
~ Turbo Editor is distributed in the hope that it will be useful,
|
||||
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
~ GNU General Public License for more details.
|
||||
~
|
||||
~ You should have received a copy of the GNU General Public License
|
||||
~ along with Turbo Editor. If not, see <http://www.gnu.org/licenses/>.
|
||||
-->
|
||||
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:exitFadeDuration="@android:integer/config_shortAnimTime">
|
||||
|
||||
<item
|
||||
android:drawable="@android:color/holo_blue_light"
|
||||
android:state_pressed="true"/>
|
||||
<item
|
||||
android:drawable="@android:color/holo_blue_light"
|
||||
android:state_enabled="true"
|
||||
android:state_focused="true"/>
|
||||
<item
|
||||
android:drawable="@android:color/transparent"/>
|
||||
|
||||
</selector>
|
39
Turbo Editor/src/main/res/layout/activity_home.xml
Normal file
@ -0,0 +1,39 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
~ Copyright (C) 2013 Vlad Mihalachi
|
||||
~
|
||||
~ This file is part of Turbo Editor.
|
||||
~
|
||||
~ Turbo Editor is free software: you can redistribute it and/or modify
|
||||
~ it under the terms of the GNU General Public License as published by
|
||||
~ the Free Software Foundation, either version 3 of the License, or
|
||||
~ (at your option) any later version.
|
||||
~
|
||||
~ Turbo Editor is distributed in the hope that it will be useful,
|
||||
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
~ GNU General Public License for more details.
|
||||
~
|
||||
~ You should have received a copy of the GNU General Public License
|
||||
~ along with Turbo Editor. If not, see <http://www.gnu.org/licenses/>.
|
||||
-->
|
||||
|
||||
<android.support.v4.widget.DrawerLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:id="@id/drawer_layout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<FrameLayout
|
||||
android:id="@id/fragment_editor"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"/>
|
||||
|
||||
<fragment android:layout_width="@dimen/navigation_drawer_width"
|
||||
android:layout_height="match_parent"
|
||||
android:name="com.vmihalachi.turboeditor.NavigationDrawerListFragment"
|
||||
android:id="@id/drawer_list"
|
||||
android:layout_gravity="left"/>
|
||||
|
||||
|
||||
</android.support.v4.widget.DrawerLayout>
|
30
Turbo Editor/src/main/res/layout/activity_licenses.xml
Normal file
@ -0,0 +1,30 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
~ Copyright (C) 2013 Vlad Mihalachi
|
||||
~
|
||||
~ This file is part of Turbo Editor.
|
||||
~
|
||||
~ Turbo Editor is free software: you can redistribute it and/or modify
|
||||
~ it under the terms of the GNU General Public License as published by
|
||||
~ the Free Software Foundation, either version 3 of the License, or
|
||||
~ (at your option) any later version.
|
||||
~
|
||||
~ Turbo Editor is distributed in the hope that it will be useful,
|
||||
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
~ GNU General Public License for more details.
|
||||
~
|
||||
~ You should have received a copy of the GNU General Public License
|
||||
~ along with Turbo Editor. If not, see <http://www.gnu.org/licenses/>.
|
||||
-->
|
||||
|
||||
<ListView
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:listSelector="@drawable/holo_selector"
|
||||
android:cacheColorHint="@null"
|
||||
android:id="@android:id/list"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:smoothScrollbar="true"
|
||||
android:paddingLeft="@dimen/activity_horizontal_margin"
|
||||
android:paddingRight="@dimen/activity_horizontal_margin"/>
|
30
Turbo Editor/src/main/res/layout/activity_select_file.xml
Normal file
@ -0,0 +1,30 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
~ Copyright (C) 2013 Vlad Mihalachi
|
||||
~
|
||||
~ This file is part of Turbo Editor.
|
||||
~
|
||||
~ Turbo Editor is free software: you can redistribute it and/or modify
|
||||
~ it under the terms of the GNU General Public License as published by
|
||||
~ the Free Software Foundation, either version 3 of the License, or
|
||||
~ (at your option) any later version.
|
||||
~
|
||||
~ Turbo Editor is distributed in the hope that it will be useful,
|
||||
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
~ GNU General Public License for more details.
|
||||
~
|
||||
~ You should have received a copy of the GNU General Public License
|
||||
~ along with Turbo Editor. If not, see <http://www.gnu.org/licenses/>.
|
||||
-->
|
||||
|
||||
<ListView
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:listSelector="@drawable/holo_selector"
|
||||
android:cacheColorHint="@null"
|
||||
android:id="@android:id/list"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:smoothScrollbar="true"
|
||||
android:paddingLeft="@dimen/activity_horizontal_margin"
|
||||
android:paddingRight="@dimen/activity_horizontal_margin"/>
|
@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<view xmlns:android="http://schemas.oiandroid.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
class="it.gmariotti.changelibs.library.view.ChangeLogListView"
|
||||
android:id="@+id/view"
|
||||
android:layout_gravity="center" />
|
@ -0,0 +1,50 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
~ Copyright (C) 2013 Vlad Mihalachi
|
||||
~
|
||||
~ This file is part of Turbo Editor.
|
||||
~
|
||||
~ Turbo Editor is free software: you can redistribute it and/or modify
|
||||
~ it under the terms of the GNU General Public License as published by
|
||||
~ the Free Software Foundation, either version 3 of the License, or
|
||||
~ (at your option) any later version.
|
||||
~
|
||||
~ Turbo Editor is distributed in the hope that it will be useful,
|
||||
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
~ GNU General Public License for more details.
|
||||
~
|
||||
~ You should have received a copy of the GNU General Public License
|
||||
~ along with Turbo Editor. If not, see <http://www.gnu.org/licenses/>.
|
||||
-->
|
||||
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:orientation="vertical">
|
||||
|
||||
<EditText
|
||||
android:id="@android:id/edit"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:inputType="text"
|
||||
android:imeOptions="actionDone"
|
||||
android:layout_margin="@dimen/dialog_edittext_margin"/>
|
||||
|
||||
<View
|
||||
android:background="?android:attr/listDivider"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/line_dimension"/>
|
||||
|
||||
<Button
|
||||
android:background="@drawable/holo_selector"
|
||||
android:gravity="center_vertical|center_horizontal"
|
||||
android:id="@android:id/button1"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="@dimen/dialog_button_padding"
|
||||
android:maxLines="1"
|
||||
android:text="@android:string/ok"
|
||||
android:textAppearance="?android:attr/textAppearanceMedium"/>
|
||||
</LinearLayout>
|
42
Turbo Editor/src/main/res/layout/fragment_editor.xml
Normal file
@ -0,0 +1,42 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
~ Copyright (C) 2013 Vlad Mihalachi
|
||||
~
|
||||
~ This file is part of Turbo Editor.
|
||||
~
|
||||
~ Turbo Editor is free software: you can redistribute it and/or modify
|
||||
~ it under the terms of the GNU General Public License as published by
|
||||
~ the Free Software Foundation, either version 3 of the License, or
|
||||
~ (at your option) any later version.
|
||||
~
|
||||
~ Turbo Editor is distributed in the hope that it will be useful,
|
||||
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
~ GNU General Public License for more details.
|
||||
~
|
||||
~ You should have received a copy of the GNU General Public License
|
||||
~ along with Turbo Editor. If not, see <http://www.gnu.org/licenses/>.
|
||||
-->
|
||||
|
||||
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:scrollbars="vertical"
|
||||
android:fillViewport="true">
|
||||
|
||||
<view
|
||||
class="com.vmihalachi.turboeditor.EditorFragment$Editor"
|
||||
android:id="@id/editor"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@null"
|
||||
android:bufferType="normal"
|
||||
android:gravity="top|left"
|
||||
android:imeOptions="actionDone|flagNoFullscreen"
|
||||
android:inputType="textMultiLine|textImeMultiLine|textNoSuggestions"
|
||||
android:maxLength="@integer/editor_max_file_size"
|
||||
android:singleLine="false"
|
||||
android:text="@null"
|
||||
android:textSize="@dimen/text_size_editor" />
|
||||
</ScrollView>
|
||||
|
@ -0,0 +1,38 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
~ Copyright (C) 2013 Vlad Mihalachi
|
||||
~
|
||||
~ This file is part of Turbo Editor.
|
||||
~
|
||||
~ Turbo Editor is free software: you can redistribute it and/or modify
|
||||
~ it under the terms of the GNU General Public License as published by
|
||||
~ the Free Software Foundation, either version 3 of the License, or
|
||||
~ (at your option) any later version.
|
||||
~
|
||||
~ Turbo Editor is distributed in the hope that it will be useful,
|
||||
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
~ GNU General Public License for more details.
|
||||
~
|
||||
~ You should have received a copy of the GNU General Public License
|
||||
~ along with Turbo Editor. If not, see <http://www.gnu.org/licenses/>.
|
||||
-->
|
||||
|
||||
<LinearLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical"
|
||||
android:background="@color/navigation_drawer_background">
|
||||
|
||||
<ListView
|
||||
android:id="@id/android:list"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:fadingEdge="none"
|
||||
android:choiceMode="multipleChoiceModal"
|
||||
android:cacheColorHint="@android:color/transparent"/>
|
||||
|
||||
<include android:id="@android:id/empty"
|
||||
layout="@layout/fragment_no_file_open"/>
|
||||
</LinearLayout>
|
28
Turbo Editor/src/main/res/layout/fragment_no_file_open.xml
Normal file
@ -0,0 +1,28 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
~ Copyright (C) 2013 Vlad Mihalachi
|
||||
~
|
||||
~ This file is part of Turbo Editor.
|
||||
~
|
||||
~ Turbo Editor is free software: you can redistribute it and/or modify
|
||||
~ it under the terms of the GNU General Public License as published by
|
||||
~ the Free Software Foundation, either version 3 of the License, or
|
||||
~ (at your option) any later version.
|
||||
~
|
||||
~ Turbo Editor is distributed in the hope that it will be useful,
|
||||
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
~ GNU General Public License for more details.
|
||||
~
|
||||
~ You should have received a copy of the GNU General Public License
|
||||
~ along with Turbo Editor. If not, see <http://www.gnu.org/licenses/>.
|
||||
-->
|
||||
|
||||
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:gravity="center"
|
||||
android:textSize="@dimen/text_size_mega_title"
|
||||
android:fontFamily="sans-serif-light"
|
||||
android:text="@string/open_a_file"
|
||||
android:clickable="true" />
|
32
Turbo Editor/src/main/res/layout/item_drawer_list.xml
Normal file
@ -0,0 +1,32 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
~ Copyright (C) 2013 Vlad Mihalachi
|
||||
~
|
||||
~ This file is part of Turbo Editor.
|
||||
~
|
||||
~ Turbo Editor is free software: you can redistribute it and/or modify
|
||||
~ it under the terms of the GNU General Public License as published by
|
||||
~ the Free Software Foundation, either version 3 of the License, or
|
||||
~ (at your option) any later version.
|
||||
~
|
||||
~ Turbo Editor is distributed in the hope that it will be useful,
|
||||
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
~ GNU General Public License for more details.
|
||||
~
|
||||
~ You should have received a copy of the GNU General Public License
|
||||
~ along with Turbo Editor. If not, see <http://www.gnu.org/licenses/>.
|
||||
-->
|
||||
|
||||
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:id="@android:id/text1"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:textAppearance="?android:attr/textAppearanceListItem"
|
||||
android:gravity="center_vertical"
|
||||
android:paddingLeft="@dimen/item_drawer_list_padding"
|
||||
android:paddingRight="@dimen/item_drawer_list_padding"
|
||||
android:maxLines="1"
|
||||
android:fontFamily="sans-serif-light"
|
||||
android:background="?android:attr/activatedBackgroundIndicator"
|
||||
android:minHeight="@dimen/item_drawer_list_height"/>
|
71
Turbo Editor/src/main/res/layout/item_file_list.xml
Normal file
@ -0,0 +1,71 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
~ Copyright (C) 2013 Vlad Mihalachi
|
||||
~
|
||||
~ This file is part of Turbo Editor.
|
||||
~
|
||||
~ Turbo Editor is free software: you can redistribute it and/or modify
|
||||
~ it under the terms of the GNU General Public License as published by
|
||||
~ the Free Software Foundation, either version 3 of the License, or
|
||||
~ (at your option) any later version.
|
||||
~
|
||||
~ Turbo Editor is distributed in the hope that it will be useful,
|
||||
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
~ GNU General Public License for more details.
|
||||
~
|
||||
~ You should have received a copy of the GNU General Public License
|
||||
~ along with Turbo Editor. If not, see <http://www.gnu.org/licenses/>.
|
||||
-->
|
||||
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center_vertical"
|
||||
android:minHeight="@dimen/item_file_list_height">
|
||||
|
||||
<ImageView
|
||||
android:id="@android:id/icon"
|
||||
android:layout_width="@dimen/icon_dimension"
|
||||
android:layout_height="@dimen/icon_dimension"
|
||||
android:padding="@dimen/icon_padding"
|
||||
android:layout_alignParentLeft="true" />
|
||||
|
||||
<TextView
|
||||
android:id="@android:id/title"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_toRightOf="@android:id/icon"
|
||||
android:maxLines="1"
|
||||
android:textSize="@dimen/text_size_title"
|
||||
android:ellipsize="end"
|
||||
android:padding="@dimen/minimum_padding" />
|
||||
|
||||
<LinearLayout
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_toRightOf="@android:id/icon"
|
||||
android:layout_below="@android:id/title"
|
||||
android:padding="@dimen/minimum_padding">
|
||||
|
||||
<TextView
|
||||
android:id="@android:id/text1"
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="wrap_content"
|
||||
android:maxLines="1"
|
||||
android:textSize="@dimen/text_size_subtitle"
|
||||
android:enabled="false"
|
||||
android:ellipsize="end"/>
|
||||
|
||||
<TextView
|
||||
android:id="@android:id/text2"
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="2"
|
||||
android:layout_height="wrap_content"
|
||||
android:maxLines="1"
|
||||
android:textSize="@dimen/text_size_subtitle"
|
||||
android:enabled="false"
|
||||
android:ellipsize="end"/>
|
||||
</LinearLayout>
|
||||
</RelativeLayout>
|
@ -0,0 +1,26 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
~ Copyright (C) 2013 Vlad Mihalachi
|
||||
~
|
||||
~ This file is part of Turbo Editor.
|
||||
~
|
||||
~ Turbo Editor is free software: you can redistribute it and/or modify
|
||||
~ it under the terms of the GNU General Public License as published by
|
||||
~ the Free Software Foundation, either version 3 of the License, or
|
||||
~ (at your option) any later version.
|
||||
~
|
||||
~ Turbo Editor is distributed in the hope that it will be useful,
|
||||
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
~ GNU General Public License for more details.
|
||||
~
|
||||
~ You should have received a copy of the GNU General Public License
|
||||
~ along with Turbo Editor. If not, see <http://www.gnu.org/licenses/>.
|
||||
-->
|
||||
|
||||
<menu xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item
|
||||
android:id="@id/im_remove"
|
||||
android:showAsAction="always"
|
||||
android:icon="@android:drawable/ic_menu_close_clear_cancel"/>
|
||||
</menu>
|
31
Turbo Editor/src/main/res/menu/activity_home.xml
Normal file
@ -0,0 +1,31 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
~ Copyright (C) 2013 Vlad Mihalachi
|
||||
~
|
||||
~ This file is part of Turbo Editor.
|
||||
~
|
||||
~ Turbo Editor is free software: you can redistribute it and/or modify
|
||||
~ it under the terms of the GNU General Public License as published by
|
||||
~ the Free Software Foundation, either version 3 of the License, or
|
||||
~ (at your option) any later version.
|
||||
~
|
||||
~ Turbo Editor is distributed in the hope that it will be useful,
|
||||
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
~ GNU General Public License for more details.
|
||||
~
|
||||
~ You should have received a copy of the GNU General Public License
|
||||
~ along with Turbo Editor. If not, see <http://www.gnu.org/licenses/>.
|
||||
-->
|
||||
|
||||
<menu xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item
|
||||
android:id="@id/im_open"
|
||||
android:title="@string/open_a_file"
|
||||
android:titleCondensed="@string/open"
|
||||
android:showAsAction="ifRoom"/>
|
||||
<item
|
||||
android:id="@id/im_info"
|
||||
android:title="@string/info"
|
||||
android:showAsAction="ifRoom"/>
|
||||
</menu>
|
25
Turbo Editor/src/main/res/menu/activity_select_file.xml
Normal file
@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
~ Copyright (C) 2013 Vlad Mihalachi
|
||||
~
|
||||
~ This file is part of Turbo Editor.
|
||||
~
|
||||
~ Turbo Editor is free software: you can redistribute it and/or modify
|
||||
~ it under the terms of the GNU General Public License as published by
|
||||
~ the Free Software Foundation, either version 3 of the License, or
|
||||
~ (at your option) any later version.
|
||||
~
|
||||
~ Turbo Editor is distributed in the hope that it will be useful,
|
||||
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
~ GNU General Public License for more details.
|
||||
~
|
||||
~ You should have received a copy of the GNU General Public License
|
||||
~ along with Turbo Editor. If not, see <http://www.gnu.org/licenses/>.
|
||||
-->
|
||||
|
||||
<menu xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item
|
||||
android:id="@id/im_button"
|
||||
android:showAsAction="ifRoom|withText"/>
|
||||
</menu>
|
59
Turbo Editor/src/main/res/menu/fragment_editor.xml
Normal file
@ -0,0 +1,59 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
~ Copyright (C) 2013 Vlad Mihalachi
|
||||
~
|
||||
~ This file is part of Turbo Editor.
|
||||
~
|
||||
~ Turbo Editor is free software: you can redistribute it and/or modify
|
||||
~ it under the terms of the GNU General Public License as published by
|
||||
~ the Free Software Foundation, either version 3 of the License, or
|
||||
~ (at your option) any later version.
|
||||
~
|
||||
~ Turbo Editor is distributed in the hope that it will be useful,
|
||||
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
~ GNU General Public License for more details.
|
||||
~
|
||||
~ You should have received a copy of the GNU General Public License
|
||||
~ along with Turbo Editor. If not, see <http://www.gnu.org/licenses/>.
|
||||
-->
|
||||
|
||||
<menu xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item
|
||||
android:id="@id/im_save"
|
||||
android:showAsAction="always"
|
||||
android:icon="@drawable/ic_action_tick"
|
||||
android:title="@string/salva"/>
|
||||
<item
|
||||
android:id="@id/im_undo"
|
||||
android:showAsAction="always"
|
||||
android:icon="@drawable/ic_action_undo"
|
||||
android:title="@string/testo_indietro"
|
||||
/>
|
||||
<item
|
||||
android:id="@id/im_redo"
|
||||
android:showAsAction="always"
|
||||
android:icon="@drawable/ic_action_redo"
|
||||
android:title="@string/testo_rifai"
|
||||
/>
|
||||
<item
|
||||
android:title="@string/preferenze"
|
||||
android:showAsAction="ifRoom|withText">
|
||||
<menu>
|
||||
<item
|
||||
android:id="@id/im_editor_encoding"
|
||||
android:showAsAction="ifRoom"
|
||||
android:title="@string/codifica"/>
|
||||
<item
|
||||
android:id="@id/im_wrap_text"
|
||||
android:showAsAction="ifRoom"
|
||||
android:title="@string/wrap_the_text"
|
||||
android:checkable="true"/>
|
||||
<item
|
||||
android:id="@id/im_syntax_highlight"
|
||||
android:showAsAction="ifRoom"
|
||||
android:title="@string/menu_syntax_highlight"
|
||||
android:checkable="true"/>
|
||||
</menu>
|
||||
</item>
|
||||
</menu>
|
117
Turbo Editor/src/main/res/values-de-rDE/strings.xml
Normal file
@ -0,0 +1,117 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--Generated by crowdin.net-->
|
||||
<resources>
|
||||
<string name="aggiungi_account">Neues Benutzerkonto</string>
|
||||
<string name="attiva">Aktiv</string>
|
||||
<string name="cancella">Löschen</string>
|
||||
<string name="cancellazione">Dateien löschen…</string>
|
||||
<string name="caricamento">Laden…</string>
|
||||
<string name="cartella_locale_corrente">Aktueller lokaler Ordner</string>
|
||||
<string name="chiave_privata">Privater Schlüssel</string>
|
||||
<string name="chiaro">Hell</string>
|
||||
<string name="codifica">Verschlüsseln</string>
|
||||
<string name="condividi">Teilen</string>
|
||||
<string name="crea_cartella_locale">Neuer lokaler Ordner</string>
|
||||
<string name="crea_cartella_remota">Neuer Remote-Ordner</string>
|
||||
<string name="disconneti">Trennen</string>
|
||||
<string name="default_local_folder">Standard lokaler Ordner</string>
|
||||
<string name="dove_scaricare">Wohin herunterladen?</string>
|
||||
<string name="download">Herunterladen</string>
|
||||
<string name="download_completato">Download abgeschlossen</string>
|
||||
<string name="duplicate">Duplizieren</string>
|
||||
<string name="fatto">Fertig</string>
|
||||
<string name="home">Home</string>
|
||||
<string name="host">Server</string>
|
||||
<string name="info">Informationen</string>
|
||||
<string name="locale">lokal</string>
|
||||
<string name="log_in">Einloggen…</string>
|
||||
<string name="modifica">bearbeiten</string>
|
||||
<string name="muovi">Verschieben</string>
|
||||
<string name="nascondi">Ausblenden</string>
|
||||
<string name="nome_app">Turbo Client</string>
|
||||
<string name="nome_app_turbo_editor">Turbo-Editor</string>
|
||||
<string name="nome_utente">Benutzername</string>
|
||||
<string name="passiva">Passiver Modus</string>
|
||||
<string name="passphrase">Passphrase</string>
|
||||
<string name="password">Kennwort</string>
|
||||
<string name="password_summary">Leave it empty to prompt for it every session</string>
|
||||
<string name="porta">Port</string>
|
||||
<string name="preferenze">Einstellungen</string>
|
||||
<string name="remoto">Remote</string>
|
||||
<string name="riavva_per_tema">Um das Theme zu ändern, starten Sie die Anwendung neu</string>
|
||||
<string name="rinomina">Umbenennen</string>
|
||||
<string name="root">Standardverzeichnis</string>
|
||||
<string name="salva">Speichern</string>
|
||||
<string name="scuro">Dunkel</string>
|
||||
<string name="seleziona">Auswählen</string>
|
||||
<string name="seleziona_account">Benutzerkonto auswählen</string>
|
||||
<string name="sicuro">Sind sie sicher?</string>
|
||||
<string name="something_failed">Something failed</string>
|
||||
<string name="skip_same_file">Dieselbe Datei nicht übertragen</string>
|
||||
<string name="tema_app">Design</string>
|
||||
<string name="tipo_connessione">Verbindungsart</string>
|
||||
<string name="tipo_protocollo">Protokoll</string>
|
||||
<string name="un_altra_cartella">Anderer Ordner</string>
|
||||
<string name="use_passphrase">Passphrase benutzen</string>
|
||||
<string name="upload">Hochladen</string>
|
||||
<string name="upload_completato">Hochladen abgeschlossen</string>
|
||||
<string name="what_to_do">Was möchten Sie tun?</string>
|
||||
<string name="wrap_the_text">Zeilenumbruch</string>
|
||||
<string name="menu_syntax_highlight">Syntax Hervorhebung</string>
|
||||
<string name="testo_indietro">Ungeschehen machen</string>
|
||||
<string name="testo_rifai">Rückgängig machen</string>
|
||||
<string name="sync">Synchronisieren</string>
|
||||
<string name="remote_folder_to_sync">Entfernten Ordner zum synchronisieren</string>
|
||||
<string name="local_folder_to_sync">Lokalen Ordner zum synchronisieren</string>
|
||||
<string name="vota">Bewerten</string>
|
||||
<string name="inapp_unavailable">Kann keine Verbindung zu Google Play herstellen</string>
|
||||
<string name="inapp_description">Unterstützen Sie die Entwicklung weiterer großer Features</string>
|
||||
<string name="upgrade_premium">Auf Premium upgraden</string>
|
||||
<string name="upgrade_premium_summary">Auf Premium upgraden und die Entwicklung von Turbo Client unterstützen</string>
|
||||
<string name="download_unlocked_version">Entsperrte Version herunterladen</string>
|
||||
<string name="inapp_second_description">Was ist ihnen Turbo Client wert? Geben sie einen Preis ein! </string>
|
||||
<string name="inapp_first_description">Upgraden um diese Funktion freizuschalten:</string>
|
||||
<string name="inapp_item_openandeditfiles">Beliebige Dateien öffnen und ändern</string>
|
||||
<string name="inapp_item_backup_service">Backup Service für Backup und sichere Wiederherstellung Ihrer Daten. </string>
|
||||
<string name="inapp_unlock_features">Premium Funktionen freischalten</string>
|
||||
<string name="inapp_seconditem_description">Ich mag diese App!</string>
|
||||
<string name="inapp_thirditem_description">Ich liebe diese App!</string>
|
||||
<string name="backup_accounts">Backup the accounts</string>
|
||||
<string name="restore_accounts">Accounts wiederherstellen</string>
|
||||
<string name="share_accounts">Backup and share the accounts</string>
|
||||
<string name="importing_accounts">Konten werden importiert...</string>
|
||||
<string name="exporting_accounts">Konten werden exportiert...</string>
|
||||
<string name="backup_not_found">Keine Sicherungen gefunden</string>
|
||||
<string name="err_cant_open_the_file">Datei kann nicht geöffnet werden</string>
|
||||
<string name="err_temp_folder_doesnt_exist">Temporärer Ordner ist nicht vorhanden</string>
|
||||
<string name="err_occured">Es ist ein Fehler aufgetreten</string>
|
||||
<string name="ui_ux">Benutzeroberfläche</string>
|
||||
<string name="folder">Ordner</string>
|
||||
<string name="remove">Entfernen</string>
|
||||
<string name="modification_date">Änderungsdatum</string>
|
||||
<string name="name">Name </string>
|
||||
<string name="size">Größe</string>
|
||||
<string name="sort">Sortieren</string>
|
||||
<string name="open">Öffnen</string>
|
||||
<string name="file_modified">Die Datei %1$s wurde geändert? Möchten Sie sie hochladen?</string>
|
||||
<string name="file_saved_with_success">Die Datei %1$s wurde erfolgreich gespeichert!</string>
|
||||
<string name="number_of_things_selected">%1$d ausgewählt</string>
|
||||
<string name="crea_file_remoto">New remote file</string>
|
||||
<string name="new_local_file">Neue lokale Datei</string>
|
||||
<string name="create_new_account">Erstelle ein neues Benutzerkonto</string>
|
||||
<string name="create_new_account_to_start">Erstellen Sie ein neues Konto um zu starten.</string>
|
||||
<string name="type">Typ</string>
|
||||
<string name="send_feedback">Feedback senden</string>
|
||||
<string name="copy_url">URL kopieren</string>
|
||||
<string name="cut">Ausschneiden</string>
|
||||
<string name="paste">einfügen</string>
|
||||
<string name="advanced">Erweitert</string>
|
||||
<string name="auto">Auto</string>
|
||||
<string name="bytes">Bytes</string>
|
||||
<string name="unit_measurement_for_file_size">Maßeinheit für Dateigröße</string>
|
||||
<string name="open_source_license">Open Source Lizenzen</string>
|
||||
<string name="open_source_license_summary">Open-Source-Lizenzen anzeigen</string>
|
||||
<string name="show_navigation_breadcrumb">Show navigation breadcrumb</string>
|
||||
<string name="open_a_file">Datei öffnen</string>
|
||||
<string name="open_this_time_only">Nur dieses Mal öffnen</string>
|
||||
</resources>
|
@ -0,0 +1,41 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--Generated by crowdin.net-->
|
||||
<resources>
|
||||
<string name="aboutactivity_info_category">Informationen</string>
|
||||
<string name="aboutactivity_app_category">App-Informationen</string>
|
||||
<string name="aboutactivity_miscellaneous_category">Sonstiges</string>
|
||||
<string name="aboutactivity_version">v %1$s</string>
|
||||
<string name="aboutactivity_author">Autor</string>
|
||||
<string name="aboutactivity_authorsite">Website</string>
|
||||
<string name="aboutactivity_authorsite_summary">Die Website des Autors anzeigen</string>
|
||||
<string name="aboutactivity_authoremail">E-Mail</string>
|
||||
<string name="aboutactivity_authoremail_summary">Dem Autor eine E-Mail senden</string>
|
||||
<string name="aboutactivity_authortwitter">Twitter</string>
|
||||
<string name="aboutactivity_authortwitter_summary">Twitter Profil anzeigen</string>
|
||||
<string name="aboutactivity_authorgoogleplus">Google\u002B</string>
|
||||
<string name="aboutactivity_authorgoogleplus_summary">Google\u002B Profil anzeigen</string>
|
||||
<string name="aboutactivity_betatester">Werde Betatester</string>
|
||||
<string name="aboutactivity_betatester_summary">Sei Teil der Community um Beta-Updates zu erhalten</string>
|
||||
<string name="aboutactivity_helptranslate">Übersetze diese Anwendung</string>
|
||||
<string name="aboutactivity_helptranslate_summary">Korrigiere Fehler oder füge eine neue Übersetzung hinzu</string>
|
||||
<string name="aboutactivity_readme">Readme</string>
|
||||
<string name="aboutactivity_readme_summary">Readme-Datei anzeigen</string>
|
||||
<string name="aboutactivity_faq">Häufige Fragen / FAQ</string>
|
||||
<string name="aboutactivity_faq_summary">App-FAQ anzeigen</string>
|
||||
<string name="aboutactivity_changelog">Changelog</string>
|
||||
<string name="aboutactivity_changelog_summary">Changelog anzeigen</string>
|
||||
<string name="aboutactivity_license">Nutzungsbedingungen</string>
|
||||
<string name="aboutactivity_license_summary">Nutzungsbedingungen anzeigen</string>
|
||||
<string name="aboutactivity_license_accept">Akzeptieren</string>
|
||||
<string name="aboutactivity_license_refuse">Ablehnen</string>
|
||||
<string name="aboutactivity_privacy">Datenschutzrichtlinien</string>
|
||||
<string name="aboutactivity_privacy_summary">Datenschutzrichtlinien anzeigen</string>
|
||||
<string name="aboutactivity_todo">ToDo-Liste</string>
|
||||
<string name="aboutactivity_todo_summary">ToDo-Liste anzeigen</string>
|
||||
<string name="aboutactivity_donate">Spenden</string>
|
||||
<string name="aboutactivity_donate_summary">Danke, dass du mich unterstützst</string>
|
||||
<string name="aboutactivity_market">Play Store</string>
|
||||
<string name="aboutactivity_market_summary">Feedback abgeben</string>
|
||||
<string name="aboutactivity_authormarket">Weitere App</string>
|
||||
<string name="aboutactivity_authormarket_summary">Weitere Apps des Autors anzeigen</string>
|
||||
</resources>
|
117
Turbo Editor/src/main/res/values-el-rGR/strings.xml
Normal file
@ -0,0 +1,117 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--Generated by crowdin.net-->
|
||||
<resources>
|
||||
<string name="aggiungi_account">Νέος λογαριασμός</string>
|
||||
<string name="attiva">Ενεργό</string>
|
||||
<string name="cancella">Διαγραφή</string>
|
||||
<string name="cancellazione">Διαγραφή αρχείων…</string>
|
||||
<string name="caricamento">Φόρτωση…</string>
|
||||
<string name="cartella_locale_corrente">Τρέχον τοπικός φάκελος</string>
|
||||
<string name="chiave_privata">Ιδιωτικό Κλειδί</string>
|
||||
<string name="chiaro">Φωτεινό</string>
|
||||
<string name="codifica">Κωδικοποίηση</string>
|
||||
<string name="condividi">Μοίρασε</string>
|
||||
<string name="crea_cartella_locale">Νέος τοπικός φάκελος</string>
|
||||
<string name="crea_cartella_remota">Νέος απομακρυσμένος φάκελος</string>
|
||||
<string name="disconneti">Αποσύνδεση</string>
|
||||
<string name="default_local_folder">Προεπιλεγμένος τοπικός φάκελος</string>
|
||||
<string name="dove_scaricare">Που να γίνει η λήψη;</string>
|
||||
<string name="download">Λήψη</string>
|
||||
<string name="download_completato">Η λήψη ολοκληρώθηκε</string>
|
||||
<string name="duplicate">Διπλότυπο</string>
|
||||
<string name="fatto">Ολοκληρώθηκε</string>
|
||||
<string name="home">Αρχή</string>
|
||||
<string name="host">Διακομιστής</string>
|
||||
<string name="info">Πληροφορίες</string>
|
||||
<string name="locale">Τοπικά</string>
|
||||
<string name="log_in">Σύνδεση με…</string>
|
||||
<string name="modifica">Επεξεργασία</string>
|
||||
<string name="muovi">Μετακίνηση</string>
|
||||
<string name="nascondi">Απόκρυψη</string>
|
||||
<string name="nome_app">Turbo Client</string>
|
||||
<string name="nome_app_turbo_editor">Turbo Editor</string>
|
||||
<string name="nome_utente">Όνομα χρήστη</string>
|
||||
<string name="passiva">Παθητικό</string>
|
||||
<string name="passphrase">Συνθηματικό</string>
|
||||
<string name="password">Κωδικός</string>
|
||||
<string name="password_summary">Αφήστε το κενό για να σας ρωτάει σε κάθε συνεδρία</string>
|
||||
<string name="porta">Θύρα</string>
|
||||
<string name="preferenze">Προτιμήσεις</string>
|
||||
<string name="remoto">Απομακρυσμένα</string>
|
||||
<string name="riavva_per_tema">Για να αλλάξετε το θέμα, κάντε επανεκκίνηση της εφαρμογής</string>
|
||||
<string name="rinomina">Μετονομασία</string>
|
||||
<string name="root">Προεπιλεγμένος απομακρυσμένος φάκελος</string>
|
||||
<string name="salva">Αποθήκευση</string>
|
||||
<string name="scuro">Σκοτεινό</string>
|
||||
<string name="seleziona">Επιλογή</string>
|
||||
<string name="seleziona_account">Επιλέξτε έναν λογαριασμό</string>
|
||||
<string name="sicuro">Θέλετε σίγουρα;</string>
|
||||
<string name="something_failed">Προέκυψε κάποια αποτυχία</string>
|
||||
<string name="skip_same_file">Να μην γίνει μεταφορά του ίδιου αρχείου</string>
|
||||
<string name="tema_app">Θέμα εφαρμογής</string>
|
||||
<string name="tipo_connessione">Τύπος σύνδεσης</string>
|
||||
<string name="tipo_protocollo">Τύπος πρωτοκόλλου</string>
|
||||
<string name="un_altra_cartella">Άλλος φάκελος</string>
|
||||
<string name="use_passphrase">Χρησιμοποιήστε ένα Συνθηματικό</string>
|
||||
<string name="upload">Αποστολή</string>
|
||||
<string name="upload_completato">Το ανέβασμα ολοκληρώθηκε</string>
|
||||
<string name="what_to_do">Τι θέλετε να κάνετε;</string>
|
||||
<string name="wrap_the_text">Αναδίπλωση κειμένου</string>
|
||||
<string name="menu_syntax_highlight">Επισήμανση σύνταξης</string>
|
||||
<string name="testo_indietro">Αναίρεση</string>
|
||||
<string name="testo_rifai">Ακύρωση αναίρεσης</string>
|
||||
<string name="sync">Συγχρονισμός</string>
|
||||
<string name="remote_folder_to_sync">Απομακρυσμένος φάκελος για συγχρονισμό</string>
|
||||
<string name="local_folder_to_sync">Τοπικός φάκελος για συγχρονισμό</string>
|
||||
<string name="vota">Βαθμολογία</string>
|
||||
<string name="inapp_unavailable">Δεν είναι δυνατή η επικοινωνία με το Google Play</string>
|
||||
<string name="inapp_description">Και υποστιρίξτε την ανάπτυξη άλλων σπουδαίων δυνατοτήτων</string>
|
||||
<string name="upgrade_premium">Αναβάθμιση σε Premium</string>
|
||||
<string name="upgrade_premium_summary">Αναβάθμιση σε Premium και υποστήριξη της ανάπτυξης του Turbo Client!</string>
|
||||
<string name="download_unlocked_version">Κατεβάστε την ξεκλειδωμένη έκδοση</string>
|
||||
<string name="inapp_second_description">Τι αξίζει το Turbo Client για εσάς; Ορίστε την τιμή! </string>
|
||||
<string name="inapp_first_description">Αναβάθμιση για ξεκλείδωμα των χαρακτηριστικών:</string>
|
||||
<string name="inapp_item_openandeditfiles">Δυνατότητα να ανοίξετε και να τροποποιήσετε οποιοδήποτε τύπο αρχείου.</string>
|
||||
<string name="inapp_item_backup_service">Υπηρεσία αντιγράφων ασφαλείας για να δημιουργήσετε αντίγραφα και να επαναφέρετε τα δεδομένα σας με ασφάλεια. </string>
|
||||
<string name="inapp_unlock_features">Ξεκλείδωμα των Premium χαρακτηριστικών</string>
|
||||
<string name="inapp_seconditem_description">Συμπαθώ πραγματικά αυτή την εφαρμογή!</string>
|
||||
<string name="inapp_thirditem_description">Αγαπώ αυτή την εφαρμογή!</string>
|
||||
<string name="backup_accounts">Αντίγραφα ασφαλείας λογαριασμών</string>
|
||||
<string name="restore_accounts">Επαναφορά των λογαριασμών</string>
|
||||
<string name="share_accounts">Αντίγραφα ασφαλείας και μοίρασμα λογαριασμών</string>
|
||||
<string name="importing_accounts">Εισαγωγή λογαριασμών…</string>
|
||||
<string name="exporting_accounts">Εξαγωγή λογαριασμών...</string>
|
||||
<string name="backup_not_found">Δεν βρέθηκε κανένα αντίγραφο ασφαλείας</string>
|
||||
<string name="err_cant_open_the_file">Δεν μπορεί να ανοίξει το αρχείο</string>
|
||||
<string name="err_temp_folder_doesnt_exist">Ο φάκελος προσωρινής αποθήκευσης δεν υπάρχει</string>
|
||||
<string name="err_occured">Προέκυψε ένα σφάλμα</string>
|
||||
<string name="ui_ux">Περιβάλλον χρήσης</string>
|
||||
<string name="folder">Φάκελος</string>
|
||||
<string name="remove">Αφαίρεση</string>
|
||||
<string name="modification_date">Ημ. τροποποίησης</string>
|
||||
<string name="name">Όνομα</string>
|
||||
<string name="size">Μέγεθος</string>
|
||||
<string name="sort">Ταξινόμηση</string>
|
||||
<string name="open">Άνοιγμα</string>
|
||||
<string name="file_modified">Το αρχείο %1$s τροποποιήθηκε, θέλετε να το ανεβάσετε;</string>
|
||||
<string name="file_saved_with_success">Το αρχείο %1$s αποθηκεύτηκε με επιτυχία!</string>
|
||||
<string name="number_of_things_selected">%1$d επιλέχθηκε</string>
|
||||
<string name="crea_file_remoto">Νέα απομακρυσμένο αρχείο</string>
|
||||
<string name="new_local_file">Νέο τοπικό αρχείο</string>
|
||||
<string name="create_new_account">Δημιουργία νέου λογαριασμού</string>
|
||||
<string name="create_new_account_to_start">Δημιουργήσετε ένα νέο λογαριασμό για να ξεκινήσετε.</string>
|
||||
<string name="type">Τύπος</string>
|
||||
<string name="send_feedback">Αποστολή σχολίων</string>
|
||||
<string name="copy_url">Αντιγραφή συνδέσμου</string>
|
||||
<string name="cut">Αποκοπή</string>
|
||||
<string name="paste">επικόληση</string>
|
||||
<string name="advanced">Για προχωρημένους</string>
|
||||
<string name="auto">Αυτόματα</string>
|
||||
<string name="bytes">Bytes</string>
|
||||
<string name="unit_measurement_for_file_size">Μονάδα μέτρησης για το μέγεθος του αρχείου</string>
|
||||
<string name="open_source_license">Άδειες χρήσης ανοιχτού κώδικα</string>
|
||||
<string name="open_source_license_summary">Προβολή αδειών χρήσης ανοιχτού κώδικα</string>
|
||||
<string name="show_navigation_breadcrumb">Εμφάνιση βοηθού πλοήγησης</string>
|
||||
<string name="open_a_file">Άνοιγμα αρχείου</string>
|
||||
<string name="open_this_time_only">Open this time only</string>
|
||||
</resources>
|
@ -0,0 +1,41 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--Generated by crowdin.net-->
|
||||
<resources>
|
||||
<string name="aboutactivity_info_category">Πληροφορίες</string>
|
||||
<string name="aboutactivity_app_category">Πληροφορίες εφαρμογής</string>
|
||||
<string name="aboutactivity_miscellaneous_category">Διάφορα</string>
|
||||
<string name="aboutactivity_version">Έκδοση %1$s</string>
|
||||
<string name="aboutactivity_author">Δημιουργός</string>
|
||||
<string name="aboutactivity_authorsite">Ιστότοπος δημιουργού</string>
|
||||
<string name="aboutactivity_authorsite_summary">Προβολή ιστότοπου δημιουργού</string>
|
||||
<string name="aboutactivity_authoremail">Email δημιουργού</string>
|
||||
<string name="aboutactivity_authoremail_summary">Αποστολή email στον δημιουργό</string>
|
||||
<string name="aboutactivity_authortwitter">Twitter</string>
|
||||
<string name="aboutactivity_authortwitter_summary">Προβολή σελίδας στο Twitter</string>
|
||||
<string name="aboutactivity_authorgoogleplus">Google Plus</string>
|
||||
<string name="aboutactivity_authorgoogleplus_summary">Προβολή σελίδας στο Google Plus</string>
|
||||
<string name="aboutactivity_betatester">Γίνετε beta tester</string>
|
||||
<string name="aboutactivity_betatester_summary">Γίνετε μέρος της κοινότητας για να λαμβάνετε ενημερώσεις beta εκδόσεων</string>
|
||||
<string name="aboutactivity_helptranslate">Μεταφράστε την εφαρμογή</string>
|
||||
<string name="aboutactivity_helptranslate_summary">Διορθώσει κάποια λάθη ή προσθέσετε μια νέα μετάφραση</string>
|
||||
<string name="aboutactivity_readme">Αρχείο πληροφοριών</string>
|
||||
<string name="aboutactivity_readme_summary">Διαβάστε την αναφορά</string>
|
||||
<string name="aboutactivity_faq">ΣΥΧΝΈΣ ΕΡΩΤΉΣΕΙΣ</string>
|
||||
<string name="aboutactivity_faq_summary">Προβολή ΣΕΑ εφαρμογής</string>
|
||||
<string name="aboutactivity_changelog">Αρχείο καταγραφής αλλαγών</string>
|
||||
<string name="aboutactivity_changelog_summary">Προβολή αρχείου καταγραφής αλλαγών</string>
|
||||
<string name="aboutactivity_license">Όροι παροχής υπηρεσιών</string>
|
||||
<string name="aboutactivity_license_summary">Διαβάστε τους όρους παροχής υπηρεσιών</string>
|
||||
<string name="aboutactivity_license_accept">Αποδοχή</string>
|
||||
<string name="aboutactivity_license_refuse">Άρνηση</string>
|
||||
<string name="aboutactivity_privacy">Πολιτική απορρήτου</string>
|
||||
<string name="aboutactivity_privacy_summary">Διαβάζετε την πολιτική απορρήτου</string>
|
||||
<string name="aboutactivity_todo">Λίστα ToDo</string>
|
||||
<string name="aboutactivity_todo_summary">Διαβάστε τη λίστα todo</string>
|
||||
<string name="aboutactivity_donate">Κάντε μια δωρεά</string>
|
||||
<string name="aboutactivity_donate_summary">Σας ευχαριστούμε για την υποστήριξη!</string>
|
||||
<string name="aboutactivity_market">Play Store</string>
|
||||
<string name="aboutactivity_market_summary">Αποστολή σχολίων και βαθμολογίας!</string>
|
||||
<string name="aboutactivity_authormarket">Κατάστημα του δημιουργού</string>
|
||||
<string name="aboutactivity_authormarket_summary">Προβολή άλλων εφαρμογών του δημιουργού!</string>
|
||||
</resources>
|
117
Turbo Editor/src/main/res/values-it-rIT/strings.xml
Normal file
@ -0,0 +1,117 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--Generated by crowdin.net-->
|
||||
<resources>
|
||||
<string name="aggiungi_account">Nuovo account</string>
|
||||
<string name="attiva">Attiva</string>
|
||||
<string name="cancella">Cancella</string>
|
||||
<string name="cancellazione">Cancella files…</string>
|
||||
<string name="caricamento">Caricamento…</string>
|
||||
<string name="cartella_locale_corrente">Cartella locale corrente</string>
|
||||
<string name="chiave_privata">Chiave Privata</string>
|
||||
<string name="chiaro">Chiaro</string>
|
||||
<string name="codifica">Codifica</string>
|
||||
<string name="condividi">Condividi</string>
|
||||
<string name="crea_cartella_locale">Nuova cartella locale</string>
|
||||
<string name="crea_cartella_remota">Nuova cartella remota</string>
|
||||
<string name="disconneti">Disconnetti</string>
|
||||
<string name="default_local_folder">Cartella locale di default</string>
|
||||
<string name="dove_scaricare">Dove scaricare?</string>
|
||||
<string name="download">Scarica</string>
|
||||
<string name="download_completato">Completato il download</string>
|
||||
<string name="duplicate">Duplica</string>
|
||||
<string name="fatto">Fatto</string>
|
||||
<string name="home">Home</string>
|
||||
<string name="host">Host</string>
|
||||
<string name="info">Informazioni</string>
|
||||
<string name="locale">Locale</string>
|
||||
<string name="log_in">Accesso in corso…</string>
|
||||
<string name="modifica">Modifica</string>
|
||||
<string name="muovi">Sposta</string>
|
||||
<string name="nascondi">Nascondi</string>
|
||||
<string name="nome_app">Turbo Client</string>
|
||||
<string name="nome_app_turbo_editor">Turbo Editor</string>
|
||||
<string name="nome_utente">Nome Utente</string>
|
||||
<string name="passiva">Passiva</string>
|
||||
<string name="passphrase">Frase segreta</string>
|
||||
<string name="password">Password</string>
|
||||
<string name="password_summary">Lasciala vuota per richiederla a ogni sessione</string>
|
||||
<string name="porta">Porta</string>
|
||||
<string name="preferenze">Preferenze</string>
|
||||
<string name="remoto">Remoto</string>
|
||||
<string name="riavva_per_tema">Per cambiare il tema, riavvia l applicazione</string>
|
||||
<string name="rinomina">Rinomina</string>
|
||||
<string name="root">Root</string>
|
||||
<string name="salva">Salva</string>
|
||||
<string name="scuro">Scuro</string>
|
||||
<string name="seleziona">Seleziona</string>
|
||||
<string name="seleziona_account">Seleziona un account</string>
|
||||
<string name="sicuro">Sei sicuro?</string>
|
||||
<string name="something_failed">Qualcosa è fallito</string>
|
||||
<string name="skip_same_file">Non trasferire lo stesso file</string>
|
||||
<string name="tema_app">Tema</string>
|
||||
<string name="tipo_connessione">Tipo di Connessione</string>
|
||||
<string name="tipo_protocollo">Tipo di Protocollo</string>
|
||||
<string name="un_altra_cartella">Un altra cartella</string>
|
||||
<string name="use_passphrase">Usa una frase segreta</string>
|
||||
<string name="upload">Carica</string>
|
||||
<string name="upload_completato">Caricamento completato</string>
|
||||
<string name="what_to_do">Cosa vuoi fare?</string>
|
||||
<string name="wrap_the_text">Vai a capo</string>
|
||||
<string name="menu_syntax_highlight">Colora la sinstassi</string>
|
||||
<string name="testo_indietro">Annulla</string>
|
||||
<string name="testo_rifai">Rifai</string>
|
||||
<string name="sync">Sincronizza</string>
|
||||
<string name="remote_folder_to_sync">Cartella remota da sincronizzare</string>
|
||||
<string name="local_folder_to_sync">Cartella locale da sincronizzare</string>
|
||||
<string name="vota">Vota</string>
|
||||
<string name="inapp_unavailable">Impossibile contattare il Google Play</string>
|
||||
<string name="inapp_description">E supporta lo sviluppo di nuove funzionalita</string>
|
||||
<string name="upgrade_premium">Aggiorna a Premium</string>
|
||||
<string name="upgrade_premium_summary">Aggiorna a Premium e supporta lo sviluppo di Turbo Client!</string>
|
||||
<string name="download_unlocked_version">Scarica la versione sbloccata</string>
|
||||
<string name="inapp_second_description">Quanto vale Turbo Client per te? Metti il tuo prezzo! </string>
|
||||
<string name="inapp_first_description">Aggiorna per sbloccare queste funzionalita:</string>
|
||||
<string name="inapp_item_openandeditfiles">Abilita di aprire e modificare ogni tipo di file</string>
|
||||
<string name="inapp_item_backup_service">Servizio di backup per salvare e caricare i tuoi account in modo sicuro. </string>
|
||||
<string name="inapp_unlock_features">Sblocca le funzioni Premium</string>
|
||||
<string name="inapp_seconditem_description">Mi piace l\'app!</string>
|
||||
<string name="inapp_thirditem_description">Amo quest\'app!</string>
|
||||
<string name="backup_accounts">Fai un backup degli account</string>
|
||||
<string name="restore_accounts">Ripristina gli account</string>
|
||||
<string name="share_accounts">Salva e condividi gli account</string>
|
||||
<string name="importing_accounts">Importando gli account…</string>
|
||||
<string name="exporting_accounts">Esportando gli account…</string>
|
||||
<string name="backup_not_found">Nessun backup trovato</string>
|
||||
<string name="err_cant_open_the_file">Impossibile aprire il file</string>
|
||||
<string name="err_temp_folder_doesnt_exist">La cartella temporanea non esiste</string>
|
||||
<string name="err_occured">Si è verificato un errore</string>
|
||||
<string name="ui_ux">Interfaccia utente</string>
|
||||
<string name="folder">Cartella</string>
|
||||
<string name="remove">Rimuovi</string>
|
||||
<string name="modification_date">Data della modifica</string>
|
||||
<string name="name">Nome</string>
|
||||
<string name="size">Peso</string>
|
||||
<string name="sort">Ordina</string>
|
||||
<string name="open">Apri</string>
|
||||
<string name="file_modified">Il file %1$s è stato modificato, vuoi caricarlo?</string>
|
||||
<string name="file_saved_with_success">Il file %1$s è stato salvato con successo!</string>
|
||||
<string name="number_of_things_selected">%1$d selezionato</string>
|
||||
<string name="crea_file_remoto">Nuovo file remoto</string>
|
||||
<string name="new_local_file">Nuovo file locale</string>
|
||||
<string name="create_new_account">Crea un nuovo account</string>
|
||||
<string name="create_new_account_to_start">Creare un nuovo account per iniziare.</string>
|
||||
<string name="type">Tipo</string>
|
||||
<string name="send_feedback">Invia Feedback</string>
|
||||
<string name="copy_url">Copia l\'URL</string>
|
||||
<string name="cut">Taglia</string>
|
||||
<string name="paste">Incolla</string>
|
||||
<string name="advanced">Avanzate</string>
|
||||
<string name="auto">Automatico</string>
|
||||
<string name="bytes">Byte</string>
|
||||
<string name="unit_measurement_for_file_size">Unità di misura per la dimensione del file</string>
|
||||
<string name="open_source_license">Licenze Open Source</string>
|
||||
<string name="open_source_license_summary">Visualizza licenze open source</string>
|
||||
<string name="show_navigation_breadcrumb">Visualizza navigazione breadcrumb</string>
|
||||
<string name="open_a_file">Apri come file</string>
|
||||
<string name="open_this_time_only">Apri solo questa volta</string>
|
||||
</resources>
|
@ -0,0 +1,41 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--Generated by crowdin.net-->
|
||||
<resources>
|
||||
<string name="aboutactivity_info_category">Informazioni</string>
|
||||
<string name="aboutactivity_app_category">Informazioni applicazione</string>
|
||||
<string name="aboutactivity_miscellaneous_category">Varie</string>
|
||||
<string name="aboutactivity_version">Versione %1$s</string>
|
||||
<string name="aboutactivity_author">Autore</string>
|
||||
<string name="aboutactivity_authorsite">Sito Web Autore</string>
|
||||
<string name="aboutactivity_authorsite_summary">Visualizza il sito dell\'autore</string>
|
||||
<string name="aboutactivity_authoremail">Email Autore</string>
|
||||
<string name="aboutactivity_authoremail_summary">Manda una mail all\'autore</string>
|
||||
<string name="aboutactivity_authortwitter">Twitter</string>
|
||||
<string name="aboutactivity_authortwitter_summary">Visualizza la pagina twitter</string>
|
||||
<string name="aboutactivity_authorgoogleplus">Google Plus</string>
|
||||
<string name="aboutactivity_authorgoogleplus_summary">Visualizza pagina Google Plus</string>
|
||||
<string name="aboutactivity_betatester">Diventa un beta tester</string>
|
||||
<string name="aboutactivity_betatester_summary">Diventa una parte della gruppo per ricevere gli aggiornamenti beta</string>
|
||||
<string name="aboutactivity_helptranslate">Traduci l\'applicazione</string>
|
||||
<string name="aboutactivity_helptranslate_summary">Correggi alcuni errori o aggiunggi una nuova traduzione</string>
|
||||
<string name="aboutactivity_readme">Leggimi</string>
|
||||
<string name="aboutactivity_readme_summary">Leggi la guida</string>
|
||||
<string name="aboutactivity_faq">Domande frequenti</string>
|
||||
<string name="aboutactivity_faq_summary">Visualizza le FAQ</string>
|
||||
<string name="aboutactivity_changelog">ChangeLog</string>
|
||||
<string name="aboutactivity_changelog_summary">Visualizza i cambiamenti</string>
|
||||
<string name="aboutactivity_license">Termini di servizio</string>
|
||||
<string name="aboutactivity_license_summary">Leggi i termini di servizio</string>
|
||||
<string name="aboutactivity_license_accept">Accetta</string>
|
||||
<string name="aboutactivity_license_refuse">Rifiuta</string>
|
||||
<string name="aboutactivity_privacy">Norme sulla privacy</string>
|
||||
<string name="aboutactivity_privacy_summary">Leggi le norme sulla privacy</string>
|
||||
<string name="aboutactivity_todo">Da Fare</string>
|
||||
<string name="aboutactivity_todo_summary">Leggi la lista delle cosa da fare</string>
|
||||
<string name="aboutactivity_donate">Fai una donazione</string>
|
||||
<string name="aboutactivity_donate_summary">Grazie per il tuo supporto!</string>
|
||||
<string name="aboutactivity_market">Android Market</string>
|
||||
<string name="aboutactivity_market_summary">Visualizza l\'app nel market!</string>
|
||||
<string name="aboutactivity_authormarket">Market Autore</string>
|
||||
<string name="aboutactivity_authormarket_summary">Visualizza altre app!</string>
|
||||
</resources>
|
117
Turbo Editor/src/main/res/values-ms-rMY/strings.xml
Normal file
@ -0,0 +1,117 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--Generated by crowdin.net-->
|
||||
<resources>
|
||||
<string name="aggiungi_account">Akaun Baru</string>
|
||||
<string name="attiva">Aktif</string>
|
||||
<string name="cancella">Buang</string>
|
||||
<string name="cancellazione">Menghapus fail...</string>
|
||||
<string name="caricamento">Memproses...</string>
|
||||
<string name="cartella_locale_corrente">Folder local sekarang</string>
|
||||
<string name="chiave_privata">Kata kunci Private</string>
|
||||
<string name="chiaro">Terang</string>
|
||||
<string name="codifica">Pengekodan</string>
|
||||
<string name="condividi">Kongsi</string>
|
||||
<string name="crea_cartella_locale">New local folder</string>
|
||||
<string name="crea_cartella_remota">New remote folder</string>
|
||||
<string name="disconneti">Putuskan sambungan</string>
|
||||
<string name="default_local_folder">Folder local asal</string>
|
||||
<string name="dove_scaricare">Muat turun ke?</string>
|
||||
<string name="download">Muat turun</string>
|
||||
<string name="download_completato">Muat turun selesai</string>
|
||||
<string name="duplicate">Fail sudah wujud</string>
|
||||
<string name="fatto">Selesai</string>
|
||||
<string name="home">Home</string>
|
||||
<string name="host">Host</string>
|
||||
<string name="info">Maklumat</string>
|
||||
<string name="locale">Local</string>
|
||||
<string name="log_in">Melog masuk...</string>
|
||||
<string name="modifica">Edit</string>
|
||||
<string name="muovi">Alih</string>
|
||||
<string name="nascondi">Sembunyikan</string>
|
||||
<string name="nome_app">Turbo Client</string>
|
||||
<string name="nome_app_turbo_editor">Turbo Editor</string>
|
||||
<string name="nome_utente">Kata Pengguna</string>
|
||||
<string name="passiva">Pasif</string>
|
||||
<string name="passphrase">Kata Laluan</string>
|
||||
<string name="password">Kata Kunci</string>
|
||||
<string name="password_summary">Biarkan kosong untuk ditanya setiap sesi</string>
|
||||
<string name="porta">Port</string>
|
||||
<string name="preferenze">Pilihan</string>
|
||||
<string name="remoto">Remote</string>
|
||||
<string name="riavva_per_tema">Untuk mengubah tema, tutup dan buka semula aplikasi</string>
|
||||
<string name="rinomina">Edit nama</string>
|
||||
<string name="root">root</string>
|
||||
<string name="salva">Simpan</string>
|
||||
<string name="scuro">Gelap</string>
|
||||
<string name="seleziona">Pilih</string>
|
||||
<string name="seleziona_account">Pilih akaun</string>
|
||||
<string name="sicuro">Anda pasti?</string>
|
||||
<string name="something_failed">Something failed</string>
|
||||
<string name="skip_same_file">Do not transfer same file</string>
|
||||
<string name="tema_app">Tema aplikasi</string>
|
||||
<string name="tipo_connessione">Jenis sambungan</string>
|
||||
<string name="tipo_protocollo">Jenis protokol</string>
|
||||
<string name="un_altra_cartella">Folder lain</string>
|
||||
<string name="use_passphrase">Guna kata laluan</string>
|
||||
<string name="upload">Muat naik</string>
|
||||
<string name="upload_completato">Muat naik selesai</string>
|
||||
<string name="what_to_do">What do you want todo?</string>
|
||||
<string name="wrap_the_text">Word wrap</string>
|
||||
<string name="menu_syntax_highlight">Syntax highlight</string>
|
||||
<string name="testo_indietro">Batal edit</string>
|
||||
<string name="testo_rifai">Buat semula edit</string>
|
||||
<string name="sync">Sinkronisasi</string>
|
||||
<string name="remote_folder_to_sync">Sinkronisasikan folder remote</string>
|
||||
<string name="local_folder_to_sync">Sinkronisasi folder local</string>
|
||||
<string name="vota">Undi</string>
|
||||
<string name="inapp_unavailable">Tidak dapat berhubung dengan Google Play</string>
|
||||
<string name="inapp_description">Sokong pembinaan ciri-ciri hebat yang lain.</string>
|
||||
<string name="upgrade_premium">Naik taraf kepada Premium</string>
|
||||
<string name="upgrade_premium_summary">Menaiktaraf kepada Premium dan sokong perkembangan Turbo Client!</string>
|
||||
<string name="download_unlocked_version">Download unlocked version</string>
|
||||
<string name="inapp_second_description">Apakah nilai Turbo Client pada anda? Berikan harga anda! </string>
|
||||
<string name="inapp_first_description">Naiktaraf untuk mendapat akses kepada ciri-ciri ini:</string>
|
||||
<string name="inapp_item_openandeditfiles">Membaca dan mengubahsuai apa-apa jenis fail.</string>
|
||||
<string name="inapp_item_backup_service">Menyimpan dan mengambil semula data anda dengan selamat. </string>
|
||||
<string name="inapp_unlock_features">Akses ciri-ciri Premium</string>
|
||||
<string name="inapp_seconditem_description">Saya sangat suka aplikasi ini!</string>
|
||||
<string name="inapp_thirditem_description">Saya suka aplikasi ini!</string>
|
||||
<string name="backup_accounts">Backup akaun</string>
|
||||
<string name="restore_accounts">Kembalikan akaun</string>
|
||||
<string name="share_accounts">Backup dan kongsi akaun</string>
|
||||
<string name="importing_accounts">Mengimport akaun…</string>
|
||||
<string name="exporting_accounts">Mengeksport akaun...</string>
|
||||
<string name="backup_not_found">No backups found</string>
|
||||
<string name="err_cant_open_the_file">Tidak dapat membuka fail</string>
|
||||
<string name="err_temp_folder_doesnt_exist">Temporary folder does not exist</string>
|
||||
<string name="err_occured">An error occurred</string>
|
||||
<string name="ui_ux">antara muka pengguna</string>
|
||||
<string name="folder">Folder</string>
|
||||
<string name="remove">Hapus</string>
|
||||
<string name="modification_date">Tarikh pengubahsuaian</string>
|
||||
<string name="name">Nama</string>
|
||||
<string name="size">Saiz</string>
|
||||
<string name="sort">Susun</string>
|
||||
<string name="open">Buka</string>
|
||||
<string name="file_modified">Fail %1$s telah berubah. Adakah anda mahu memuat naik?</string>
|
||||
<string name="file_saved_with_success">The file %1$s was saved with success!</string>
|
||||
<string name="number_of_things_selected">%1$d selected</string>
|
||||
<string name="crea_file_remoto">New remote file</string>
|
||||
<string name="new_local_file">New local file</string>
|
||||
<string name="create_new_account">Cipta akaun baru</string>
|
||||
<string name="create_new_account_to_start">Create a new account to start.</string>
|
||||
<string name="type">Jenis</string>
|
||||
<string name="send_feedback">Send feedback</string>
|
||||
<string name="copy_url">Copy URL</string>
|
||||
<string name="cut">Cut</string>
|
||||
<string name="paste">paste</string>
|
||||
<string name="advanced">Advanced</string>
|
||||
<string name="auto">Auto</string>
|
||||
<string name="bytes">Bytes</string>
|
||||
<string name="unit_measurement_for_file_size">Unit of measurement for file size</string>
|
||||
<string name="open_source_license">Open Source licenses</string>
|
||||
<string name="open_source_license_summary">Show open source licenses</string>
|
||||
<string name="show_navigation_breadcrumb">Show navigation breadcrumb</string>
|
||||
<string name="open_a_file">Open a file</string>
|
||||
<string name="open_this_time_only">Open this time only</string>
|
||||
</resources>
|
@ -0,0 +1,41 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--Generated by crowdin.net-->
|
||||
<resources>
|
||||
<string name="aboutactivity_info_category">Maklumat</string>
|
||||
<string name="aboutactivity_app_category">Maklumat Aplikasi</string>
|
||||
<string name="aboutactivity_miscellaneous_category">Lain-lain</string>
|
||||
<string name="aboutactivity_version">Versi %1$s</string>
|
||||
<string name="aboutactivity_author">Pencipta</string>
|
||||
<string name="aboutactivity_authorsite">Laman Pencipta</string>
|
||||
<string name="aboutactivity_authorsite_summary">Buka laman pencipta</string>
|
||||
<string name="aboutactivity_authoremail">Hubungi pencipta</string>
|
||||
<string name="aboutactivity_authoremail_summary">Hantar e-mail kepada pencipta</string>
|
||||
<string name="aboutactivity_authortwitter">Twitter</string>
|
||||
<string name="aboutactivity_authortwitter_summary">Buka laman Twitter</string>
|
||||
<string name="aboutactivity_authorgoogleplus">Google Plus</string>
|
||||
<string name="aboutactivity_authorgoogleplus_summary">Buka laman Google Plus</string>
|
||||
<string name="aboutactivity_betatester">Menjadi penguji versi beta</string>
|
||||
<string name="aboutactivity_betatester_summary">Jadi sebahagian daripada komuniti untuk menerima versi beta terkini</string>
|
||||
<string name="aboutactivity_helptranslate">Menterjemahkan aplikasi</string>
|
||||
<string name="aboutactivity_helptranslate_summary">Membetulkan kesalahan atau menambah terjemahan baru</string>
|
||||
<string name="aboutactivity_readme">Read Me</string>
|
||||
<string name="aboutactivity_readme_summary">Baca rujukan</string>
|
||||
<string name="aboutactivity_faq">FAQ</string>
|
||||
<string name="aboutactivity_faq_summary">Tunjukkan FAQ aplikasi</string>
|
||||
<string name="aboutactivity_changelog">ChangeLog</string>
|
||||
<string name="aboutactivity_changelog_summary">Tunjukkan changelog aplikasi</string>
|
||||
<string name="aboutactivity_license">Syarat-syarat Penggunaan</string>
|
||||
<string name="aboutactivity_license_summary">Baca syarat-syarat Penggunaan</string>
|
||||
<string name="aboutactivity_license_accept">Terima</string>
|
||||
<string name="aboutactivity_license_refuse">Menolak</string>
|
||||
<string name="aboutactivity_privacy">Dasar privasi</string>
|
||||
<string name="aboutactivity_privacy_summary">Baca dasar privasi</string>
|
||||
<string name="aboutactivity_todo">Senarai cadangan penambahbaikan</string>
|
||||
<string name="aboutactivity_todo_summary">Baca cadangan penambahbaikan</string>
|
||||
<string name="aboutactivity_donate">Beri sumbangan</string>
|
||||
<string name="aboutactivity_donate_summary">Terima kasih kerana menyokong saya!</string>
|
||||
<string name="aboutactivity_market">Play Store</string>
|
||||
<string name="aboutactivity_market_summary">Hantar maklum balas dan menilai aplikasi!</string>
|
||||
<string name="aboutactivity_authormarket">Lebih banyak berkenaan pencipta</string>
|
||||
<string name="aboutactivity_authormarket_summary">Tunjukkan semua aplikasi pencipta!</string>
|
||||
</resources>
|
117
Turbo Editor/src/main/res/values-nl-rNL/strings.xml
Normal file
@ -0,0 +1,117 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--Generated by crowdin.net-->
|
||||
<resources>
|
||||
<string name="aggiungi_account">Nieuwe account</string>
|
||||
<string name="attiva">Actief</string>
|
||||
<string name="cancella">Verwijderen</string>
|
||||
<string name="cancellazione">Bestanden verwijderen…</string>
|
||||
<string name="caricamento">Laden…</string>
|
||||
<string name="cartella_locale_corrente">Huidige lokale map</string>
|
||||
<string name="chiave_privata">Privesleutel</string>
|
||||
<string name="chiaro">Licht</string>
|
||||
<string name="codifica">Codering</string>
|
||||
<string name="condividi">Delen</string>
|
||||
<string name="crea_cartella_locale">Nieuwe lokale map</string>
|
||||
<string name="crea_cartella_remota">Nieuwe externe map</string>
|
||||
<string name="disconneti">Loskoppelen</string>
|
||||
<string name="default_local_folder">Standaard lokale map</string>
|
||||
<string name="dove_scaricare">Waar wilt u dit bestand opslaan?</string>
|
||||
<string name="download">Downloaden</string>
|
||||
<string name="download_completato">Download voltooid</string>
|
||||
<string name="duplicate">Dupliceer</string>
|
||||
<string name="fatto">Klaar</string>
|
||||
<string name="home">Home</string>
|
||||
<string name="host">Host</string>
|
||||
<string name="info">Info</string>
|
||||
<string name="locale">Lokaal</string>
|
||||
<string name="log_in">Inloggen…</string>
|
||||
<string name="modifica">Bewerken</string>
|
||||
<string name="muovi">Verplaatsen</string>
|
||||
<string name="nascondi">Verberg</string>
|
||||
<string name="nome_app">Turbo Client</string>
|
||||
<string name="nome_app_turbo_editor">Turbo Editor</string>
|
||||
<string name="nome_utente">Gebruikersnaam</string>
|
||||
<string name="passiva">Passief</string>
|
||||
<string name="passphrase">Wachtwoord</string>
|
||||
<string name="password">Wachtwoord</string>
|
||||
<string name="password_summary">Leeg laten om bij elke sessie te vragen</string>
|
||||
<string name="porta">Poort</string>
|
||||
<string name="preferenze">Voorkeuren</string>
|
||||
<string name="remoto">Extern</string>
|
||||
<string name="riavva_per_tema">Start de applicatie opnieuw om het thema van kracht te laten worden</string>
|
||||
<string name="rinomina">Hernoemen</string>
|
||||
<string name="root">Root</string>
|
||||
<string name="salva">Opslaan</string>
|
||||
<string name="scuro">Donker</string>
|
||||
<string name="seleziona">Selecteren</string>
|
||||
<string name="seleziona_account">Selecteer een account</string>
|
||||
<string name="sicuro">Weet je dit zeker?</string>
|
||||
<string name="something_failed">Er is een fout opgetreden</string>
|
||||
<string name="skip_same_file">Sla hetzelfde bestand over</string>
|
||||
<string name="tema_app">Applicatiethema</string>
|
||||
<string name="tipo_connessione">Verbindingstype</string>
|
||||
<string name="tipo_protocollo">Protocoltype</string>
|
||||
<string name="un_altra_cartella">Andere map</string>
|
||||
<string name="use_passphrase">Gebruik een wachtwoord</string>
|
||||
<string name="upload">Uploaden</string>
|
||||
<string name="upload_completato">Uploaden voltooid</string>
|
||||
<string name="what_to_do">Wat wil je doen?</string>
|
||||
<string name="wrap_the_text">Comprimeer de tekst</string>
|
||||
<string name="menu_syntax_highlight">Gekleurde code</string>
|
||||
<string name="testo_indietro">Ongedaan maken</string>
|
||||
<string name="testo_rifai">Opnieuw uitvoeren</string>
|
||||
<string name="sync">Synchroniseer</string>
|
||||
<string name="remote_folder_to_sync">Map op afstand om te synchroniseren</string>
|
||||
<string name="local_folder_to_sync">Lokale map om te synchroniseren</string>
|
||||
<string name="vota">Beoordelen</string>
|
||||
<string name="inapp_unavailable">Kan Google Play niet bereiken</string>
|
||||
<string name="inapp_description">Ondersteun de ontwikkeling van andere geweldige features.</string>
|
||||
<string name="upgrade_premium">Upgrade naar Premium</string>
|
||||
<string name="upgrade_premium_summary">Upgrade naar Premium versie en ondersteun de ontwikkeling van Turbo Client!</string>
|
||||
<string name="download_unlocked_version">Download de premium versie</string>
|
||||
<string name="inapp_second_description">Wat is Turbo Client waard volgens jou? Bepaal jouw prijs! </string>
|
||||
<string name="inapp_first_description">Upgrade om deze feature te ontsleutelen:</string>
|
||||
<string name="inapp_item_openandeditfiles">De mogelijkheid om elk type bestand te openen of aan te passen.</string>
|
||||
<string name="inapp_item_backup_service">Backup functionaliteit om je data veilig te backuppen en te herstellen. </string>
|
||||
<string name="inapp_unlock_features">Ontgrendel de betaalde functies</string>
|
||||
<string name="inapp_seconditem_description">I vind het echt een leuke app!</string>
|
||||
<string name="inapp_thirditem_description">I hou van deze app!</string>
|
||||
<string name="backup_accounts">Accounts backuppen</string>
|
||||
<string name="restore_accounts">Accounts herstellen</string>
|
||||
<string name="share_accounts">Accounts backuppen en delen</string>
|
||||
<string name="importing_accounts">Accounts importeren…</string>
|
||||
<string name="exporting_accounts">Accounts exporteren...</string>
|
||||
<string name="backup_not_found">Geen back-ups gevonden</string>
|
||||
<string name="err_cant_open_the_file">Kan het bestand niet openen</string>
|
||||
<string name="err_temp_folder_doesnt_exist">Tijdelijke map bestaat niet</string>
|
||||
<string name="err_occured">Er is een fout opgetreden</string>
|
||||
<string name="ui_ux">UI</string>
|
||||
<string name="folder">Map</string>
|
||||
<string name="remove">Verwijder</string>
|
||||
<string name="modification_date">Verander datum</string>
|
||||
<string name="name">Naam</string>
|
||||
<string name="size">Grote</string>
|
||||
<string name="sort">Soort</string>
|
||||
<string name="open">Openen</string>
|
||||
<string name="file_modified">Het bestand %1$s is aangepast, wilt u het uploaden?</string>
|
||||
<string name="file_saved_with_success">Het bestand %1$s is met succes opgeslagen!</string>
|
||||
<string name="number_of_things_selected">%1$d geselecteerd</string>
|
||||
<string name="crea_file_remoto">Nieuw extern bestand</string>
|
||||
<string name="new_local_file">Nieuw lokaal bestand</string>
|
||||
<string name="create_new_account">Nieuwe account toevoegen</string>
|
||||
<string name="create_new_account_to_start">Maak een account aan om te beginnen.</string>
|
||||
<string name="type">Type</string>
|
||||
<string name="send_feedback">Commentaar verzenden</string>
|
||||
<string name="copy_url">URL kopiëren</string>
|
||||
<string name="cut">Knippen</string>
|
||||
<string name="paste">plakken</string>
|
||||
<string name="advanced">Geavanceerd</string>
|
||||
<string name="auto">Auto</string>
|
||||
<string name="bytes">Bytes</string>
|
||||
<string name="unit_measurement_for_file_size">Maateenheid voor bestandsgrootte</string>
|
||||
<string name="open_source_license">Open Source-licenties</string>
|
||||
<string name="open_source_license_summary">Toon open source-licenties</string>
|
||||
<string name="show_navigation_breadcrumb">Toon navigatie breadcrumb</string>
|
||||
<string name="open_a_file">Open een bestand</string>
|
||||
<string name="open_this_time_only">Alleen deze keer openen</string>
|
||||
</resources>
|
@ -0,0 +1,41 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--Generated by crowdin.net-->
|
||||
<resources>
|
||||
<string name="aboutactivity_info_category">Info</string>
|
||||
<string name="aboutactivity_app_category">Applicatie informatie</string>
|
||||
<string name="aboutactivity_miscellaneous_category">Diversen</string>
|
||||
<string name="aboutactivity_version">Versie %1$s</string>
|
||||
<string name="aboutactivity_author">Auteur</string>
|
||||
<string name="aboutactivity_authorsite">Website auteur</string>
|
||||
<string name="aboutactivity_authorsite_summary">Toon de website van de auteur</string>
|
||||
<string name="aboutactivity_authoremail">E-mailadres auteur</string>
|
||||
<string name="aboutactivity_authoremail_summary">Stuur een e-mail naar de auteur</string>
|
||||
<string name="aboutactivity_authortwitter">Twitter</string>
|
||||
<string name="aboutactivity_authortwitter_summary">Toon de Twitter pagina</string>
|
||||
<string name="aboutactivity_authorgoogleplus">Google+</string>
|
||||
<string name="aboutactivity_authorgoogleplus_summary">Toon de Google+ pagina</string>
|
||||
<string name="aboutactivity_betatester">Een betatester worden</string>
|
||||
<string name="aboutactivity_betatester_summary">Word lid van de community om beta updates te ontvangen</string>
|
||||
<string name="aboutactivity_helptranslate">Vertaal de applicatie</string>
|
||||
<string name="aboutactivity_helptranslate_summary">Verbeter de vertalingen of voeg nieuwe onderdelen toe</string>
|
||||
<string name="aboutactivity_readme">Lees mij</string>
|
||||
<string name="aboutactivity_readme_summary">Lees meer over de app</string>
|
||||
<string name="aboutactivity_faq">Veelgestelde vragen</string>
|
||||
<string name="aboutactivity_faq_summary">Toon de veelgestelde vragen</string>
|
||||
<string name="aboutactivity_changelog">Aanpassingslogboek</string>
|
||||
<string name="aboutactivity_changelog_summary">Toon het logboek</string>
|
||||
<string name="aboutactivity_license">Algemene gebruikersvoorwaarden</string>
|
||||
<string name="aboutactivity_license_summary">Lees de algemene gebruiksvoorwaarden</string>
|
||||
<string name="aboutactivity_license_accept">Accepteren</string>
|
||||
<string name="aboutactivity_license_refuse">Weigeren</string>
|
||||
<string name="aboutactivity_privacy">Privacybeleid</string>
|
||||
<string name="aboutactivity_privacy_summary">Lees het privacybeleid</string>
|
||||
<string name="aboutactivity_todo">TODO lijst</string>
|
||||
<string name="aboutactivity_todo_summary">Lees de todolijst</string>
|
||||
<string name="aboutactivity_donate">Maak een donatie</string>
|
||||
<string name="aboutactivity_donate_summary">Bedankt voor uw ondersteuning!</string>
|
||||
<string name="aboutactivity_market">Play Store</string>
|
||||
<string name="aboutactivity_market_summary">Geef je reactie en een waardering!</string>
|
||||
<string name="aboutactivity_authormarket">Meer applicaties</string>
|
||||
<string name="aboutactivity_authormarket_summary">Toon alle apps van dezelfde ontwikkelaar!</string>
|
||||
</resources>
|
117
Turbo Editor/src/main/res/values-pl-rPL/strings.xml
Normal file
@ -0,0 +1,117 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--Generated by crowdin.net-->
|
||||
<resources>
|
||||
<string name="aggiungi_account">Nowe konto</string>
|
||||
<string name="attiva">Aktywny</string>
|
||||
<string name="cancella">Usuń</string>
|
||||
<string name="cancellazione">Usuwanie plików…</string>
|
||||
<string name="caricamento">Ładuje…</string>
|
||||
<string name="cartella_locale_corrente">Obecny folder lokalny</string>
|
||||
<string name="chiave_privata">Klucz prywatny</string>
|
||||
<string name="chiaro">Jasny</string>
|
||||
<string name="codifica">Kodowanie</string>
|
||||
<string name="condividi">Udostępnij</string>
|
||||
<string name="crea_cartella_locale">Nowy folder lokalny</string>
|
||||
<string name="crea_cartella_remota">Nowy folder zdalny</string>
|
||||
<string name="disconneti">Rozłącz</string>
|
||||
<string name="default_local_folder">Domyślny folder lokalny</string>
|
||||
<string name="dove_scaricare">Gdzie pobrać?</string>
|
||||
<string name="download">Ściągnij</string>
|
||||
<string name="download_completato">Pobieranie zakończone</string>
|
||||
<string name="duplicate">Duplikuj</string>
|
||||
<string name="fatto">Zrobione</string>
|
||||
<string name="home">Folder domowy</string>
|
||||
<string name="host">Host</string>
|
||||
<string name="info">Informacje</string>
|
||||
<string name="locale">Lokalny</string>
|
||||
<string name="log_in">Loguje się…</string>
|
||||
<string name="modifica">Edytuj</string>
|
||||
<string name="muovi">Przenieś</string>
|
||||
<string name="nascondi">Ukryj</string>
|
||||
<string name="nome_app">Turbo Client</string>
|
||||
<string name="nome_app_turbo_editor">Turbo Edytor</string>
|
||||
<string name="nome_utente">Użytkownik</string>
|
||||
<string name="passiva">Pasywny</string>
|
||||
<string name="passphrase">Hasło</string>
|
||||
<string name="password">Hasło</string>
|
||||
<string name="password_summary">Pozostaw puste, aby pytać o nie podczas każdej sesji</string>
|
||||
<string name="porta">Port</string>
|
||||
<string name="preferenze">Ustawienia</string>
|
||||
<string name="remoto">Zdalny</string>
|
||||
<string name="riavva_per_tema">Aby zmienić motyw, uruchom ponownie aplikację</string>
|
||||
<string name="rinomina">Zmień nazwę</string>
|
||||
<string name="root">Root</string>
|
||||
<string name="salva">Zapisz</string>
|
||||
<string name="scuro">Ciemny</string>
|
||||
<string name="seleziona">Wybierz</string>
|
||||
<string name="seleziona_account">Wybierz konto</string>
|
||||
<string name="sicuro">Jesteś pewny?</string>
|
||||
<string name="something_failed">Coś nie powiodło się</string>
|
||||
<string name="skip_same_file">Nie transferuj tego samego pliku</string>
|
||||
<string name="tema_app">Wygląd aplikacji</string>
|
||||
<string name="tipo_connessione">Typ połączenia</string>
|
||||
<string name="tipo_protocollo">Typ protokołu</string>
|
||||
<string name="un_altra_cartella">Inny folder</string>
|
||||
<string name="use_passphrase">Użyj hasła</string>
|
||||
<string name="upload">Prześlij</string>
|
||||
<string name="upload_completato">Przesyłanie zakończone</string>
|
||||
<string name="what_to_do">Co chcesz zrobić?</string>
|
||||
<string name="wrap_the_text">Zawijanie wyrazów</string>
|
||||
<string name="menu_syntax_highlight">Syntax highlight</string>
|
||||
<string name="testo_indietro">Cofnij</string>
|
||||
<string name="testo_rifai">Powtórz</string>
|
||||
<string name="sync">Synchronizuj</string>
|
||||
<string name="remote_folder_to_sync">Synchronij folder zdalny</string>
|
||||
<string name="local_folder_to_sync">Synchronizuj folder lokalny</string>
|
||||
<string name="vota">Oceń</string>
|
||||
<string name="inapp_unavailable">Nie można połączyć się z Google Play</string>
|
||||
<string name="inapp_description">Support the development of other great features.</string>
|
||||
<string name="upgrade_premium">Zaktualizuj do wersji Premium</string>
|
||||
<string name="upgrade_premium_summary">Zaktualizuj do wersji Premium i wspieraj rozwój klienta Turbo!</string>
|
||||
<string name="download_unlocked_version">Pobierz odblokowaną wersję</string>
|
||||
<string name="inapp_second_description">Jak oceniasz Turbo Client\'a? Wystaw ocenę! </string>
|
||||
<string name="inapp_first_description">Zaktualizuj, aby odblokować te funkcje:</string>
|
||||
<string name="inapp_item_openandeditfiles">Uprawnienia do otwierania i modyfikowania dowolnego typu pliku.</string>
|
||||
<string name="inapp_item_backup_service">Backup service to backup and restore your data safely. </string>
|
||||
<string name="inapp_unlock_features">Odblokuj funkcje Premium</string>
|
||||
<string name="inapp_seconditem_description">Bardzo podoba mi się ta aplikacja!</string>
|
||||
<string name="inapp_thirditem_description">Kocham tę aplikację!</string>
|
||||
<string name="backup_accounts">Kopia zapasowa kont</string>
|
||||
<string name="restore_accounts">Przywracanie kont</string>
|
||||
<string name="share_accounts">Kopia zapasowa i udostępnianie kont</string>
|
||||
<string name="importing_accounts">Importowanie kont...</string>
|
||||
<string name="exporting_accounts">Eksportowanie kont...</string>
|
||||
<string name="backup_not_found">Nie znaleziono kopii zapasowych</string>
|
||||
<string name="err_cant_open_the_file">Nie można otworzyć pliku</string>
|
||||
<string name="err_temp_folder_doesnt_exist">Tymczasowy folder nie istnieje</string>
|
||||
<string name="err_occured">Wystąpił błąd</string>
|
||||
<string name="ui_ux">Interfejs użytkownika</string>
|
||||
<string name="folder">Folder</string>
|
||||
<string name="remove">Usuń</string>
|
||||
<string name="modification_date">Data modyfikacji</string>
|
||||
<string name="name">Nazwa</string>
|
||||
<string name="size">Rozmiar</string>
|
||||
<string name="sort">Sortuj</string>
|
||||
<string name="open">Otwórz</string>
|
||||
<string name="file_modified">The file %1$s was modified, do you want to upload it?</string>
|
||||
<string name="file_saved_with_success">The file %1$s was saved with success!</string>
|
||||
<string name="number_of_things_selected">%1$d selected</string>
|
||||
<string name="crea_file_remoto">Nowy plik zdalny</string>
|
||||
<string name="new_local_file">Nowy plik lokalny</string>
|
||||
<string name="create_new_account">Utwórz nowe konto</string>
|
||||
<string name="create_new_account_to_start">Utwórz nowe konto, aby rozpocząć.</string>
|
||||
<string name="type">Typ</string>
|
||||
<string name="send_feedback">Prześlij sugestię</string>
|
||||
<string name="copy_url">Kopiuj adres URL</string>
|
||||
<string name="cut">wytnij</string>
|
||||
<string name="paste">wklej</string>
|
||||
<string name="advanced">Zaawansowane</string>
|
||||
<string name="auto">Automatyczna</string>
|
||||
<string name="bytes">Bajty</string>
|
||||
<string name="unit_measurement_for_file_size">Jednostka miary dla rozmiaru pliku</string>
|
||||
<string name="open_source_license">Licencje Open Source</string>
|
||||
<string name="open_source_license_summary">Pokaż licencje open source</string>
|
||||
<string name="show_navigation_breadcrumb">Show navigation breadcrumb</string>
|
||||
<string name="open_a_file">Otwórz plik</string>
|
||||
<string name="open_this_time_only">Open this time only</string>
|
||||
</resources>
|
@ -0,0 +1,41 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--Generated by crowdin.net-->
|
||||
<resources>
|
||||
<string name="aboutactivity_info_category">Informacje</string>
|
||||
<string name="aboutactivity_app_category">Informacje o aplikacji</string>
|
||||
<string name="aboutactivity_miscellaneous_category">Różne</string>
|
||||
<string name="aboutactivity_version">Wersja %1$ s</string>
|
||||
<string name="aboutactivity_author">Autor</string>
|
||||
<string name="aboutactivity_authorsite">Strona autora</string>
|
||||
<string name="aboutactivity_authorsite_summary">Pokaż stronę autora</string>
|
||||
<string name="aboutactivity_authoremail">Adres mail\'owy autora</string>
|
||||
<string name="aboutactivity_authoremail_summary">Wyślij e-mail do autora</string>
|
||||
<string name="aboutactivity_authortwitter">Twitter</string>
|
||||
<string name="aboutactivity_authortwitter_summary">Pokaż stronę na twitter\'ze</string>
|
||||
<string name="aboutactivity_authorgoogleplus">Google Plus</string>
|
||||
<string name="aboutactivity_authorgoogleplus_summary">Pokaż stronę na Google Plus</string>
|
||||
<string name="aboutactivity_betatester">Zostań beta testerem</string>
|
||||
<string name="aboutactivity_betatester_summary">Zostań częścią społeczności, aby otrzymywać aktualizacje beta</string>
|
||||
<string name="aboutactivity_helptranslate">Tłumaczenie aplikacji</string>
|
||||
<string name="aboutactivity_helptranslate_summary">Popraw pewne błędy lub dodaj nowe tłumaczenie</string>
|
||||
<string name="aboutactivity_readme">Read Me</string>
|
||||
<string name="aboutactivity_readme_summary">Read the reference</string>
|
||||
<string name="aboutactivity_faq">FAQ</string>
|
||||
<string name="aboutactivity_faq_summary">Pokaż FAQ aplikacji</string>
|
||||
<string name="aboutactivity_changelog">Lista zmian</string>
|
||||
<string name="aboutactivity_changelog_summary">Pokaż listę zmian aplikacji</string>
|
||||
<string name="aboutactivity_license">Regulamin</string>
|
||||
<string name="aboutactivity_license_summary">Przeczytaj regulamin</string>
|
||||
<string name="aboutactivity_license_accept">Akceptuj</string>
|
||||
<string name="aboutactivity_license_refuse">Odmów</string>
|
||||
<string name="aboutactivity_privacy">Polityka prywatności</string>
|
||||
<string name="aboutactivity_privacy_summary">Przeczytaj o polityce prywatności</string>
|
||||
<string name="aboutactivity_todo">Lista rzeczy do zrobienia</string>
|
||||
<string name="aboutactivity_todo_summary">Przeczytaj listy rzeczy do zrobienia</string>
|
||||
<string name="aboutactivity_donate">Przekaż darowiznę</string>
|
||||
<string name="aboutactivity_donate_summary">Dziękuję za wspieranie mnie!</string>
|
||||
<string name="aboutactivity_market">Sklep Play</string>
|
||||
<string name="aboutactivity_market_summary">Wyślij opinię i Oceń go!</string>
|
||||
<string name="aboutactivity_authormarket">Sklep autora</string>
|
||||
<string name="aboutactivity_authormarket_summary">Pokaż inne aplikcje autora!</string>
|
||||
</resources>
|
23
Turbo Editor/src/main/res/values-sw600dp/dimens.xml
Normal file
@ -0,0 +1,23 @@
|
||||
<!--
|
||||
~ Copyright (C) 2013 Vlad Mihalachi
|
||||
~
|
||||
~ This file is part of Turbo Editor.
|
||||
~
|
||||
~ Turbo Editor is free software: you can redistribute it and/or modify
|
||||
~ it under the terms of the GNU General Public License as published by
|
||||
~ the Free Software Foundation, either version 3 of the License, or
|
||||
~ (at your option) any later version.
|
||||
~
|
||||
~ Turbo Editor is distributed in the hope that it will be useful,
|
||||
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
~ GNU General Public License for more details.
|
||||
~
|
||||
~ You should have received a copy of the GNU General Public License
|
||||
~ along with Turbo Editor. If not, see <http://www.gnu.org/licenses/>.
|
||||
-->
|
||||
|
||||
<resources>
|
||||
<!-- Customize dimensions originally defined in res/values/dimens.xml (such as
|
||||
screen margins) for sw600dp devices (e.g. 7" tablets) here. -->
|
||||
</resources>
|
24
Turbo Editor/src/main/res/values-sw720dp-land/dimens.xml
Normal file
@ -0,0 +1,24 @@
|
||||
<!--
|
||||
~ Copyright (C) 2013 Vlad Mihalachi
|
||||
~
|
||||
~ This file is part of Turbo Editor.
|
||||
~
|
||||
~ Turbo Editor is free software: you can redistribute it and/or modify
|
||||
~ it under the terms of the GNU General Public License as published by
|
||||
~ the Free Software Foundation, either version 3 of the License, or
|
||||
~ (at your option) any later version.
|
||||
~
|
||||
~ Turbo Editor is distributed in the hope that it will be useful,
|
||||
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
~ GNU General Public License for more details.
|
||||
~
|
||||
~ You should have received a copy of the GNU General Public License
|
||||
~ along with Turbo Editor. If not, see <http://www.gnu.org/licenses/>.
|
||||
-->
|
||||
|
||||
<resources>
|
||||
<!-- Customize dimensions originally defined in res/values/dimens.xml (such as
|
||||
screen margins) for sw720dp devices (e.g. 10" tablets) in landscape here. -->
|
||||
<dimen name="activity_horizontal_margin">128dp</dimen>
|
||||
</resources>
|
38
Turbo Editor/src/main/res/values/colors.xml
Normal file
@ -0,0 +1,38 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
~ Copyright (C) 2013 Vlad Mihalachi
|
||||
~
|
||||
~ This file is part of Turbo Editor.
|
||||
~
|
||||
~ Turbo Editor is free software: you can redistribute it and/or modify
|
||||
~ it under the terms of the GNU General Public License as published by
|
||||
~ the Free Software Foundation, either version 3 of the License, or
|
||||
~ (at your option) any later version.
|
||||
~
|
||||
~ Turbo Editor is distributed in the hope that it will be useful,
|
||||
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
~ GNU General Public License for more details.
|
||||
~
|
||||
~ You should have received a copy of the GNU General Public License
|
||||
~ along with Turbo Editor. If not, see <http://www.gnu.org/licenses/>.
|
||||
-->
|
||||
<resources>
|
||||
<!-- action bar background color -->
|
||||
<color name="actionbar_background">#111111</color>
|
||||
<!-- activity background color -->
|
||||
<color name="activity_background">#202020</color>
|
||||
<!-- activity text color -->
|
||||
<color name="activity_text_color">#fff7f7f9</color>
|
||||
<!-- navigation drawer background color -->
|
||||
<color name="navigation_drawer_background">#1d1d1d</color>
|
||||
<!-- colors used as file icons -->
|
||||
<color name="file_folder">#ffbb33</color>
|
||||
<color name="file_code">#00a569</color>
|
||||
<color name="file_html">#00a569</color>
|
||||
<color name="file_text">#717171</color>
|
||||
<color name="file_archive">#aa66cc</color>
|
||||
<color name="file_media_music">#ff4444</color>
|
||||
<color name="file_media_picture">#33b5e5</color>
|
||||
<color name="file_media_video">#ff00607d</color>
|
||||
</resources>
|
38
Turbo Editor/src/main/res/values/dimens.xml
Normal file
@ -0,0 +1,38 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
~ Copyright (C) 2013 Vlad Mihalachi
|
||||
~
|
||||
~ This file is part of Turbo Editor.
|
||||
~
|
||||
~ Turbo Editor is free software: you can redistribute it and/or modify
|
||||
~ it under the terms of the GNU General Public License as published by
|
||||
~ the Free Software Foundation, either version 3 of the License, or
|
||||
~ (at your option) any later version.
|
||||
~
|
||||
~ Turbo Editor is distributed in the hope that it will be useful,
|
||||
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
~ GNU General Public License for more details.
|
||||
~
|
||||
~ You should have received a copy of the GNU General Public License
|
||||
~ along with Turbo Editor. If not, see <http://www.gnu.org/licenses/>.
|
||||
-->
|
||||
<resources>
|
||||
<!-- Default screen margins, per the Android Design guidelines. -->
|
||||
<dimen name="activity_horizontal_margin">16dp</dimen>
|
||||
<dimen name="activity_vertical_margin">16dp</dimen>
|
||||
<dimen name="navigation_drawer_width">300dp</dimen>
|
||||
<dimen name="dialog_edittext_margin">10dp</dimen>
|
||||
<dimen name="dialog_button_padding">10dp</dimen>
|
||||
<dimen name="line_dimension">1dp</dimen>
|
||||
<dimen name="item_drawer_list_padding">16dp</dimen>
|
||||
<dimen name="item_drawer_list_height">64dp</dimen>
|
||||
<dimen name="icon_dimension">50dp</dimen>
|
||||
<dimen name="icon_padding">10dp</dimen>
|
||||
<dimen name="item_file_list_height">56dp</dimen>
|
||||
<dimen name="minimum_padding">2dp</dimen>
|
||||
<dimen name="text_size_mega_title">25sp</dimen>
|
||||
<dimen name="text_size_title">16sp</dimen>
|
||||
<dimen name="text_size_subtitle">14sp</dimen>
|
||||
<dimen name="text_size_editor">16sp</dimen>
|
||||
</resources>
|
38
Turbo Editor/src/main/res/values/ids.xml
Normal file
@ -0,0 +1,38 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
~ Copyright (C) 2013 Vlad Mihalachi
|
||||
~
|
||||
~ This file is part of Turbo Editor.
|
||||
~
|
||||
~ Turbo Editor is free software: you can redistribute it and/or modify
|
||||
~ it under the terms of the GNU General Public License as published by
|
||||
~ the Free Software Foundation, either version 3 of the License, or
|
||||
~ (at your option) any later version.
|
||||
~
|
||||
~ Turbo Editor is distributed in the hope that it will be useful,
|
||||
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
~ GNU General Public License for more details.
|
||||
~
|
||||
~ You should have received a copy of the GNU General Public License
|
||||
~ along with Turbo Editor. If not, see <http://www.gnu.org/licenses/>.
|
||||
-->
|
||||
<resources>
|
||||
<!-- menu item ids -->
|
||||
<item type="id" name="im_undo"/>
|
||||
<item type="id" name="im_redo"/>
|
||||
<item type="id" name="im_editor"/>
|
||||
<item type="id" name="im_remove"/>
|
||||
<item type="id" name="im_open"/>
|
||||
<item type="id" name="im_info"/>
|
||||
<item type="id" name="im_button"/>
|
||||
<item type="id" name="im_save"/>
|
||||
<item type="id" name="im_editor_encoding"/>
|
||||
<item type="id" name="im_wrap_text"/>
|
||||
<item type="id" name="im_syntax_highlight"/>
|
||||
<!-- layout item ids -->
|
||||
<item type="id" name="drawer_layout"/>
|
||||
<item type="id" name="fragment_editor"/>
|
||||
<item type="id" name="drawer_list"/>
|
||||
<item type="id" name="editor"/>
|
||||
</resources>
|
22
Turbo Editor/src/main/res/values/integers.xml
Normal file
@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
~ Copyright (C) 2013 Vlad Mihalachi
|
||||
~
|
||||
~ This file is part of Turbo Editor.
|
||||
~
|
||||
~ Turbo Editor is free software: you can redistribute it and/or modify
|
||||
~ it under the terms of the GNU General Public License as published by
|
||||
~ the Free Software Foundation, either version 3 of the License, or
|
||||
~ (at your option) any later version.
|
||||
~
|
||||
~ Turbo Editor is distributed in the hope that it will be useful,
|
||||
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
~ GNU General Public License for more details.
|
||||
~
|
||||
~ You should have received a copy of the GNU General Public License
|
||||
~ along with Turbo Editor. If not, see <http://www.gnu.org/licenses/>.
|
||||
-->
|
||||
<resources>
|
||||
<integer name="editor_max_file_size">4194304</integer>
|
||||
</resources>
|
117
Turbo Editor/src/main/res/values/strings.xml
Normal file
@ -0,0 +1,117 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--Generated by crowdin.net-->
|
||||
<resources>
|
||||
<string name="aggiungi_account">New account</string>
|
||||
<string name="attiva">Active</string>
|
||||
<string name="cancella">Delete</string>
|
||||
<string name="cancellazione">Deleting files…</string>
|
||||
<string name="caricamento">Loading…</string>
|
||||
<string name="cartella_locale_corrente">Current local folder</string>
|
||||
<string name="chiave_privata">Private Key</string>
|
||||
<string name="chiaro">Light</string>
|
||||
<string name="codifica">Encoding</string>
|
||||
<string name="condividi">Share</string>
|
||||
<string name="crea_cartella_locale">New local folder</string>
|
||||
<string name="crea_cartella_remota">New remote folder</string>
|
||||
<string name="disconneti">Disconnect</string>
|
||||
<string name="default_local_folder">Default local folder</string>
|
||||
<string name="dove_scaricare">Where to download?</string>
|
||||
<string name="download">Download</string>
|
||||
<string name="download_completato">Download completed</string>
|
||||
<string name="duplicate">Duplicate</string>
|
||||
<string name="fatto">Done</string>
|
||||
<string name="home">Home</string>
|
||||
<string name="host">Host</string>
|
||||
<string name="info">Info</string>
|
||||
<string name="locale">Local</string>
|
||||
<string name="log_in">Logging in…</string>
|
||||
<string name="modifica">Edit</string>
|
||||
<string name="muovi">Move</string>
|
||||
<string name="nascondi">Hide</string>
|
||||
<string name="nome_app">Turbo Client</string>
|
||||
<string name="nome_app_turbo_editor">Turbo Editor</string>
|
||||
<string name="nome_utente">Username</string>
|
||||
<string name="passiva">Passive</string>
|
||||
<string name="passphrase">Passphrase</string>
|
||||
<string name="password">Password</string>
|
||||
<string name="password_summary">Leave it empty to prompt for it every session</string>
|
||||
<string name="porta">Port</string>
|
||||
<string name="preferenze">Preferences</string>
|
||||
<string name="remoto">Remote</string>
|
||||
<string name="riavva_per_tema">To change the theme, restart the application</string>
|
||||
<string name="rinomina">Rename</string>
|
||||
<string name="root">Default remote folder</string>
|
||||
<string name="salva">Save</string>
|
||||
<string name="scuro">Dark</string>
|
||||
<string name="seleziona">Select</string>
|
||||
<string name="seleziona_account">Select an account</string>
|
||||
<string name="sicuro">Are you sure?</string>
|
||||
<string name="something_failed">Something failed</string>
|
||||
<string name="skip_same_file">Do not transfer same file</string>
|
||||
<string name="tema_app">App theme</string>
|
||||
<string name="tipo_connessione">Connection type</string>
|
||||
<string name="tipo_protocollo">Protocol type</string>
|
||||
<string name="un_altra_cartella">Another folder</string>
|
||||
<string name="use_passphrase">Use a passphrase</string>
|
||||
<string name="upload">Upload</string>
|
||||
<string name="upload_completato">Upload completed</string>
|
||||
<string name="what_to_do">What do you want todo?</string>
|
||||
<string name="wrap_the_text">Word wrap</string>
|
||||
<string name="menu_syntax_highlight">Syntax highlight</string>
|
||||
<string name="testo_indietro">Undo</string>
|
||||
<string name="testo_rifai">Redo</string>
|
||||
<string name="sync">Sync</string>
|
||||
<string name="remote_folder_to_sync">Remote folder to sync</string>
|
||||
<string name="local_folder_to_sync">Local folder to sync</string>
|
||||
<string name="vota">Rate</string>
|
||||
<string name="inapp_unavailable">Cannot contact Google Play</string>
|
||||
<string name="inapp_description">Support the development of other great features.</string>
|
||||
<string name="upgrade_premium">Upgrade to Premium</string>
|
||||
<string name="upgrade_premium_summary">Upgrade to Premium and support the development of Turbo Client!</string>
|
||||
<string name="download_unlocked_version">Download unlocked version</string>
|
||||
<string name="inapp_second_description">What is Turbo Client worth to you? Set your price! </string>
|
||||
<string name="inapp_first_description">Upgrade to unlock this features:</string>
|
||||
<string name="inapp_item_openandeditfiles">Power to open and modify any type of file.</string>
|
||||
<string name="inapp_item_backup_service">Backup service to backup and restore your data safely. </string>
|
||||
<string name="inapp_unlock_features">Unlock the Premium features</string>
|
||||
<string name="inapp_seconditem_description">I really like this app!</string>
|
||||
<string name="inapp_thirditem_description">I love this app!</string>
|
||||
<string name="backup_accounts">Backup the accounts</string>
|
||||
<string name="restore_accounts">Restore the accounts</string>
|
||||
<string name="share_accounts">Backup and share the accounts</string>
|
||||
<string name="importing_accounts">Importing the accounts…</string>
|
||||
<string name="exporting_accounts">Exporting the accounts...</string>
|
||||
<string name="backup_not_found">No backups found</string>
|
||||
<string name="err_cant_open_the_file">Cannot open the file</string>
|
||||
<string name="err_temp_folder_doesnt_exist">Temporary folder does not exist</string>
|
||||
<string name="err_occured">An error occurred</string>
|
||||
<string name="ui_ux">Ui</string>
|
||||
<string name="folder">Folder</string>
|
||||
<string name="remove">Remove</string>
|
||||
<string name="modification_date">Modification date</string>
|
||||
<string name="name">Name</string>
|
||||
<string name="size">Size</string>
|
||||
<string name="sort">Sort</string>
|
||||
<string name="open">Open</string>
|
||||
<string name="file_modified">The file %1$s was modified, do you want to upload it?</string>
|
||||
<string name="file_saved_with_success">The file %1$s was saved with success!</string>
|
||||
<string name="number_of_things_selected">%1$d selected</string>
|
||||
<string name="crea_file_remoto">New remote file</string>
|
||||
<string name="new_local_file">New local file</string>
|
||||
<string name="create_new_account">Create a new account</string>
|
||||
<string name="create_new_account_to_start">Create a new account to start.</string>
|
||||
<string name="type">Type</string>
|
||||
<string name="send_feedback">Send feedback</string>
|
||||
<string name="copy_url">Copy URL</string>
|
||||
<string name="cut">Cut</string>
|
||||
<string name="paste">paste</string>
|
||||
<string name="advanced">Advanced</string>
|
||||
<string name="auto">Auto</string>
|
||||
<string name="bytes">Bytes</string>
|
||||
<string name="unit_measurement_for_file_size">Unit of measurement for file size</string>
|
||||
<string name="open_source_license">Open Source licenses</string>
|
||||
<string name="open_source_license_summary">Show open source licenses</string>
|
||||
<string name="show_navigation_breadcrumb">Show navigation breadcrumb</string>
|
||||
<string name="open_a_file">Open a file</string>
|
||||
<string name="open_this_time_only">Open this time only</string>
|
||||
</resources>
|
41
Turbo Editor/src/main/res/values/strings_aboutactivity.xml
Normal file
@ -0,0 +1,41 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--Generated by crowdin.net-->
|
||||
<resources>
|
||||
<string name="aboutactivity_info_category">Info</string>
|
||||
<string name="aboutactivity_app_category">Application Info</string>
|
||||
<string name="aboutactivity_miscellaneous_category">Miscellaneous</string>
|
||||
<string name="aboutactivity_version">Version %1$s</string>
|
||||
<string name="aboutactivity_author">Author</string>
|
||||
<string name="aboutactivity_authorsite">Author site</string>
|
||||
<string name="aboutactivity_authorsite_summary">Show author site</string>
|
||||
<string name="aboutactivity_authoremail">Author mail</string>
|
||||
<string name="aboutactivity_authoremail_summary">Send mail to author</string>
|
||||
<string name="aboutactivity_authortwitter">Twitter</string>
|
||||
<string name="aboutactivity_authortwitter_summary">Show twitter page</string>
|
||||
<string name="aboutactivity_authorgoogleplus">Google Plus</string>
|
||||
<string name="aboutactivity_authorgoogleplus_summary">Show Google Plus page</string>
|
||||
<string name="aboutactivity_betatester">Become a beta tester</string>
|
||||
<string name="aboutactivity_betatester_summary">Be a part of the community to receive beta updates</string>
|
||||
<string name="aboutactivity_helptranslate">Translate the Application</string>
|
||||
<string name="aboutactivity_helptranslate_summary">Correct some mistakes or add a new translation</string>
|
||||
<string name="aboutactivity_readme">Read Me</string>
|
||||
<string name="aboutactivity_readme_summary">Read the reference</string>
|
||||
<string name="aboutactivity_faq">FAQ</string>
|
||||
<string name="aboutactivity_faq_summary">Show app faq</string>
|
||||
<string name="aboutactivity_changelog">ChangeLog</string>
|
||||
<string name="aboutactivity_changelog_summary">Show app changelog</string>
|
||||
<string name="aboutactivity_license">Terms of service</string>
|
||||
<string name="aboutactivity_license_summary">Read the Terms of service</string>
|
||||
<string name="aboutactivity_license_accept">Accept</string>
|
||||
<string name="aboutactivity_license_refuse">Refuse</string>
|
||||
<string name="aboutactivity_privacy">Privacy policy</string>
|
||||
<string name="aboutactivity_privacy_summary">Read the Privacy policy</string>
|
||||
<string name="aboutactivity_todo">ToDo List</string>
|
||||
<string name="aboutactivity_todo_summary">Read the todo list</string>
|
||||
<string name="aboutactivity_donate">Make a donation</string>
|
||||
<string name="aboutactivity_donate_summary">Thank you for supporting me!</string>
|
||||
<string name="aboutactivity_market">Play Store</string>
|
||||
<string name="aboutactivity_market_summary">Send feedback and rate it!</string>
|
||||
<string name="aboutactivity_authormarket">Author Store</string>
|
||||
<string name="aboutactivity_authormarket_summary">Show author applications!</string>
|
||||
</resources>
|
47
Turbo Editor/src/main/res/values/styles.xml
Normal file
@ -0,0 +1,47 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
~ Copyright (C) 2013 Vlad Mihalachi
|
||||
~
|
||||
~ This file is part of Turbo Editor.
|
||||
~
|
||||
~ Turbo Editor is free software: you can redistribute it and/or modify
|
||||
~ it under the terms of the GNU General Public License as published by
|
||||
~ the Free Software Foundation, either version 3 of the License, or
|
||||
~ (at your option) any later version.
|
||||
~
|
||||
~ Turbo Editor is distributed in the hope that it will be useful,
|
||||
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
~ GNU General Public License for more details.
|
||||
~
|
||||
~ You should have received a copy of the GNU General Public License
|
||||
~ along with Turbo Editor. If not, see <http://www.gnu.org/licenses/>.
|
||||
-->
|
||||
<resources>
|
||||
<style name="AppStyle"
|
||||
parent="android:Theme.Holo">
|
||||
<item name="android:windowBackground">@color/activity_background</item>
|
||||
<item name="android:actionBarStyle">@style/ActionBarStyle</item>
|
||||
<item name="android:textColor">@color/activity_text_color</item>
|
||||
</style>
|
||||
|
||||
<style name="ActionBarStyle"
|
||||
parent="android:Widget.Holo.Light.ActionBar.Solid.Inverse">
|
||||
<item name="android:background">@color/actionbar_background</item>
|
||||
<item name="android:backgroundStacked">@color/actionbar_background</item>
|
||||
<item name="android:backgroundSplit">@color/actionbar_background</item>
|
||||
<item name="android:titleTextStyle">@style/ActionBarStyle.Title.Inverse</item>
|
||||
<item name="android:subtitleTextStyle">@style/ActionBarStyle.Subtitle</item>
|
||||
</style>
|
||||
|
||||
<style name="ActionBarStyle.Title.Inverse"
|
||||
parent="android:TextAppearance.Holo.Widget.ActionBar.Title">
|
||||
<item name="android:textColor">@android:color/primary_text_dark_nodisable</item>
|
||||
</style>
|
||||
|
||||
<style name="ActionBarStyle.Subtitle"
|
||||
parent="android:TextAppearance.Holo.Widget.ActionBar.Subtitle">
|
||||
<item name="android:textColor">@android:color/primary_text_dark_nodisable</item>
|
||||
</style>
|
||||
|
||||
</resources>
|
100
Turbo Editor/src/main/res/xml/about.xml
Normal file
@ -0,0 +1,100 @@
|
||||
<!--
|
||||
~ Copyright (C) 2013 Vlad Mihalachi
|
||||
~
|
||||
~ This file is part of Turbo Editor.
|
||||
~
|
||||
~ Turbo Editor is free software: you can redistribute it and/or modify
|
||||
~ it under the terms of the GNU General Public License as published by
|
||||
~ the Free Software Foundation, either version 3 of the License, or
|
||||
~ (at your option) any later version.
|
||||
~
|
||||
~ Turbo Editor is distributed in the hope that it will be useful,
|
||||
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
~ GNU General Public License for more details.
|
||||
~
|
||||
~ You should have received a copy of the GNU General Public License
|
||||
~ along with Turbo Editor. If not, see <http://www.gnu.org/licenses/>.
|
||||
-->
|
||||
|
||||
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<PreferenceCategory android:title="@string/aboutactivity_info_category">
|
||||
<Preference
|
||||
android:key="aboutactivity_author"
|
||||
android:title="@string/aboutactivity_author"
|
||||
android:summary="Vlad Mihalachi" />
|
||||
<Preference
|
||||
android:key="aboutactivity_authorsite"
|
||||
android:title="@string/aboutactivity_authorsite"
|
||||
android:summary="@string/aboutactivity_authorsite_summary">
|
||||
<intent
|
||||
android:action="android.intent.action.VIEW"
|
||||
android:data="http://vmihalachi.com" />
|
||||
|
||||
</Preference>
|
||||
<Preference
|
||||
android:key="aboutactivity_authoremail"
|
||||
android:title="@string/aboutactivity_authoremail"
|
||||
android:summary="@string/aboutactivity_authoremail_summary" />
|
||||
<Preference
|
||||
android:key="aboutactivity_authorgoogleplus"
|
||||
android:title="@string/aboutactivity_authorgoogleplus"
|
||||
android:summary="@string/aboutactivity_authorgoogleplus_summary">
|
||||
<intent
|
||||
android:action="android.intent.action.VIEW"
|
||||
android:data="https://plus.google.com/u/0/116753921964371818338" />
|
||||
|
||||
</Preference>
|
||||
<Preference
|
||||
android:key="aboutactivity_authortwitter"
|
||||
android:title="@string/aboutactivity_authortwitter"
|
||||
android:summary="@string/aboutactivity_authortwitter_summary">
|
||||
<intent
|
||||
android:action="android.intent.action.VIEW"
|
||||
android:data="https://twitter.com/vmihalachi" />
|
||||
|
||||
</Preference>
|
||||
</PreferenceCategory>
|
||||
<PreferenceCategory android:title="@string/aboutactivity_app_category">
|
||||
<Preference
|
||||
android:key="aboutactivity_betatester"
|
||||
android:title="@string/aboutactivity_betatester"
|
||||
android:summary="@string/aboutactivity_betatester_summary">
|
||||
<intent
|
||||
android:action="android.intent.action.VIEW"
|
||||
android:data="https://plus.google.com/u/0/communities/111974095419108178946" />
|
||||
|
||||
</Preference>
|
||||
<Preference
|
||||
android:key="aboutactivity_helptranslate"
|
||||
android:title="@string/aboutactivity_helptranslate"
|
||||
android:summary="@string/aboutactivity_helptranslate_summary">
|
||||
<intent
|
||||
android:action="android.intent.action.VIEW"
|
||||
android:data="http://crowdin.net/project/turbo-client" />
|
||||
|
||||
</Preference>
|
||||
<Preference
|
||||
android:key="aboutactivity_changelog"
|
||||
android:title="@string/aboutactivity_changelog"
|
||||
android:summary="@string/aboutactivity_changelog_summary" />
|
||||
<Preference
|
||||
android:key="aboutactivity_faq"
|
||||
android:title="@string/aboutactivity_faq"
|
||||
android:summary="@string/aboutactivity_faq_summary">
|
||||
<intent
|
||||
android:action="android.intent.action.VIEW"
|
||||
android:data="https://github.com/vmihalachi/TurboEditor/wiki/Faq" />
|
||||
</Preference>
|
||||
<Preference
|
||||
android:key="aboutactivity_open_source_licenses"
|
||||
android:title="@string/open_source_license"
|
||||
android:summary="@string/open_source_license_summary" />
|
||||
<Preference
|
||||
android:key="aboutactivity_authormarket"
|
||||
android:title="@string/aboutactivity_authormarket"
|
||||
android:summary="@string/aboutactivity_authormarket_summary" />
|
||||
</PreferenceCategory>
|
||||
|
||||
|
||||
</PreferenceScreen>
|
1
build.gradle
Normal file
@ -0,0 +1 @@
|
||||
// Top-level build file where you can add configuration options common to all sub-projects/modules.
|
BIN
gradle/wrapper/gradle-wrapper.jar
vendored
Normal file
6
gradle/wrapper/gradle-wrapper.properties
vendored
Normal file
@ -0,0 +1,6 @@
|
||||
#Thu Sep 26 13:46:28 CEST 2013
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
distributionUrl=http\://services.gradle.org/distributions/gradle-1.7-bin.zip
|
164
gradlew
vendored
Normal file
@ -0,0 +1,164 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
##############################################################################
|
||||
##
|
||||
## Gradle start up script for UN*X
|
||||
##
|
||||
##############################################################################
|
||||
|
||||
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||
DEFAULT_JVM_OPTS=""
|
||||
|
||||
APP_NAME="Gradle"
|
||||
APP_BASE_NAME=`basename "$0"`
|
||||
|
||||
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
||||
MAX_FD="maximum"
|
||||
|
||||
warn ( ) {
|
||||
echo "$*"
|
||||
}
|
||||
|
||||
die ( ) {
|
||||
echo
|
||||
echo "$*"
|
||||
echo
|
||||
exit 1
|
||||
}
|
||||
|
||||
# OS specific support (must be 'true' or 'false').
|
||||
cygwin=false
|
||||
msys=false
|
||||
darwin=false
|
||||
case "`uname`" in
|
||||
CYGWIN* )
|
||||
cygwin=true
|
||||
;;
|
||||
Darwin* )
|
||||
darwin=true
|
||||
;;
|
||||
MINGW* )
|
||||
msys=true
|
||||
;;
|
||||
esac
|
||||
|
||||
# For Cygwin, ensure paths are in UNIX format before anything is touched.
|
||||
if $cygwin ; then
|
||||
[ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
|
||||
fi
|
||||
|
||||
# Attempt to set APP_HOME
|
||||
# Resolve links: $0 may be a link
|
||||
PRG="$0"
|
||||
# Need this for relative symlinks.
|
||||
while [ -h "$PRG" ] ; do
|
||||
ls=`ls -ld "$PRG"`
|
||||
link=`expr "$ls" : '.*-> \(.*\)$'`
|
||||
if expr "$link" : '/.*' > /dev/null; then
|
||||
PRG="$link"
|
||||
else
|
||||
PRG=`dirname "$PRG"`"/$link"
|
||||
fi
|
||||
done
|
||||
SAVED="`pwd`"
|
||||
cd "`dirname \"$PRG\"`/" >&-
|
||||
APP_HOME="`pwd -P`"
|
||||
cd "$SAVED" >&-
|
||||
|
||||
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
|
||||
|
||||
# Determine the Java command to use to start the JVM.
|
||||
if [ -n "$JAVA_HOME" ] ; then
|
||||
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
|
||||
# IBM's JDK on AIX uses strange locations for the executables
|
||||
JAVACMD="$JAVA_HOME/jre/sh/java"
|
||||
else
|
||||
JAVACMD="$JAVA_HOME/bin/java"
|
||||
fi
|
||||
if [ ! -x "$JAVACMD" ] ; then
|
||||
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
|
||||
|
||||
Please set the JAVA_HOME variable in your environment to match the
|
||||
location of your Java installation."
|
||||
fi
|
||||
else
|
||||
JAVACMD="java"
|
||||
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||
|
||||
Please set the JAVA_HOME variable in your environment to match the
|
||||
location of your Java installation."
|
||||
fi
|
||||
|
||||
# Increase the maximum file descriptors if we can.
|
||||
if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
|
||||
MAX_FD_LIMIT=`ulimit -H -n`
|
||||
if [ $? -eq 0 ] ; then
|
||||
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
|
||||
MAX_FD="$MAX_FD_LIMIT"
|
||||
fi
|
||||
ulimit -n $MAX_FD
|
||||
if [ $? -ne 0 ] ; then
|
||||
warn "Could not set maximum file descriptor limit: $MAX_FD"
|
||||
fi
|
||||
else
|
||||
warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
|
||||
fi
|
||||
fi
|
||||
|
||||
# For Darwin, add options to specify how the application appears in the dock
|
||||
if $darwin; then
|
||||
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
|
||||
fi
|
||||
|
||||
# For Cygwin, switch paths to Windows format before running java
|
||||
if $cygwin ; then
|
||||
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
|
||||
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
|
||||
|
||||
# We build the pattern for arguments to be converted via cygpath
|
||||
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
|
||||
SEP=""
|
||||
for dir in $ROOTDIRSRAW ; do
|
||||
ROOTDIRS="$ROOTDIRS$SEP$dir"
|
||||
SEP="|"
|
||||
done
|
||||
OURCYGPATTERN="(^($ROOTDIRS))"
|
||||
# Add a user-defined pattern to the cygpath arguments
|
||||
if [ "$GRADLE_CYGPATTERN" != "" ] ; then
|
||||
OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
|
||||
fi
|
||||
# Now convert the arguments - kludge to limit ourselves to /bin/sh
|
||||
i=0
|
||||
for arg in "$@" ; do
|
||||
CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
|
||||
CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
|
||||
|
||||
if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
|
||||
eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
|
||||
else
|
||||
eval `echo args$i`="\"$arg\""
|
||||
fi
|
||||
i=$((i+1))
|
||||
done
|
||||
case $i in
|
||||
(0) set -- ;;
|
||||
(1) set -- "$args0" ;;
|
||||
(2) set -- "$args0" "$args1" ;;
|
||||
(3) set -- "$args0" "$args1" "$args2" ;;
|
||||
(4) set -- "$args0" "$args1" "$args2" "$args3" ;;
|
||||
(5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
|
||||
(6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
|
||||
(7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
|
||||
(8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
|
||||
(9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
|
||||
function splitJvmOpts() {
|
||||
JVM_OPTS=("$@")
|
||||
}
|
||||
eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
|
||||
JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
|
||||
|
||||
exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
|
90
gradlew.bat
vendored
Normal file
@ -0,0 +1,90 @@
|
||||
@if "%DEBUG%" == "" @echo off
|
||||
@rem ##########################################################################
|
||||
@rem
|
||||
@rem Gradle startup script for Windows
|
||||
@rem
|
||||
@rem ##########################################################################
|
||||
|
||||
@rem Set local scope for the variables with windows NT shell
|
||||
if "%OS%"=="Windows_NT" setlocal
|
||||
|
||||
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||
set DEFAULT_JVM_OPTS=
|
||||
|
||||
set DIRNAME=%~dp0
|
||||
if "%DIRNAME%" == "" set DIRNAME=.
|
||||
set APP_BASE_NAME=%~n0
|
||||
set APP_HOME=%DIRNAME%
|
||||
|
||||
@rem Find java.exe
|
||||
if defined JAVA_HOME goto findJavaFromJavaHome
|
||||
|
||||
set JAVA_EXE=java.exe
|
||||
%JAVA_EXE% -version >NUL 2>&1
|
||||
if "%ERRORLEVEL%" == "0" goto init
|
||||
|
||||
echo.
|
||||
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||
echo.
|
||||
echo Please set the JAVA_HOME variable in your environment to match the
|
||||
echo location of your Java installation.
|
||||
|
||||
goto fail
|
||||
|
||||
:findJavaFromJavaHome
|
||||
set JAVA_HOME=%JAVA_HOME:"=%
|
||||
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
|
||||
|
||||
if exist "%JAVA_EXE%" goto init
|
||||
|
||||
echo.
|
||||
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
|
||||
echo.
|
||||
echo Please set the JAVA_HOME variable in your environment to match the
|
||||
echo location of your Java installation.
|
||||
|
||||
goto fail
|
||||
|
||||
:init
|
||||
@rem Get command-line arguments, handling Windowz variants
|
||||
|
||||
if not "%OS%" == "Windows_NT" goto win9xME_args
|
||||
if "%@eval[2+2]" == "4" goto 4NT_args
|
||||
|
||||
:win9xME_args
|
||||
@rem Slurp the command line arguments.
|
||||
set CMD_LINE_ARGS=
|
||||
set _SKIP=2
|
||||
|
||||
:win9xME_args_slurp
|
||||
if "x%~1" == "x" goto execute
|
||||
|
||||
set CMD_LINE_ARGS=%*
|
||||
goto execute
|
||||
|
||||
:4NT_args
|
||||
@rem Get arguments from the 4NT Shell from JP Software
|
||||
set CMD_LINE_ARGS=%$
|
||||
|
||||
:execute
|
||||
@rem Setup the command line
|
||||
|
||||
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
|
||||
|
||||
@rem Execute Gradle
|
||||
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
|
||||
|
||||
:end
|
||||
@rem End local scope for the variables with windows NT shell
|
||||
if "%ERRORLEVEL%"=="0" goto mainEnd
|
||||
|
||||
:fail
|
||||
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
|
||||
rem the _cmd.exe /c_ return code!
|
||||
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
|
||||
exit /b 1
|
||||
|
||||
:mainEnd
|
||||
if "%OS%"=="Windows_NT" endlocal
|
||||
|
||||
:omega
|
1
settings.gradle
Normal file
@ -0,0 +1 @@
|
||||
include ':Turbo Editor'
|