@@ -0,0 +1,8 @@ | |||
.gradle | |||
local.properties | |||
.idea/workspace.xml | |||
.idea/libraries | |||
.DS_Store | |||
build/ | |||
app/build | |||
*.apk |
@@ -0,0 +1 @@ | |||
teknik-share |
@@ -0,0 +1,22 @@ | |||
<?xml version="1.0" encoding="UTF-8"?> | |||
<project version="4"> | |||
<component name="CompilerConfiguration"> | |||
<resourceExtensions /> | |||
<wildcardResourcePatterns> | |||
<entry name="!?*.java" /> | |||
<entry name="!?*.form" /> | |||
<entry name="!?*.class" /> | |||
<entry name="!?*.groovy" /> | |||
<entry name="!?*.scala" /> | |||
<entry name="!?*.flex" /> | |||
<entry name="!?*.kt" /> | |||
<entry name="!?*.clj" /> | |||
<entry name="!?*.aj" /> | |||
</wildcardResourcePatterns> | |||
<annotationProcessing> | |||
<profile default="true" name="Default" enabled="false"> | |||
<processorPath useClasspath="true" /> | |||
</profile> | |||
</annotationProcessing> | |||
</component> | |||
</project> |
@@ -0,0 +1,3 @@ | |||
<component name="CopyrightManager"> | |||
<settings default="" /> | |||
</component> |
@@ -0,0 +1,19 @@ | |||
<?xml version="1.0" encoding="UTF-8"?> | |||
<project version="4"> | |||
<component name="GradleSettings"> | |||
<option name="linkedExternalProjectsSettings"> | |||
<GradleProjectSettings> | |||
<option name="distributionType" value="LOCAL" /> | |||
<option name="externalProjectPath" value="$PROJECT_DIR$" /> | |||
<option name="gradleHome" value="C:\Program Files\Android\Android Studio\gradle\gradle-2.2.1" /> | |||
<option name="gradleJvm" value="1.7" /> | |||
<option name="modules"> | |||
<set> | |||
<option value="$PROJECT_DIR$" /> | |||
<option value="$PROJECT_DIR$/app" /> | |||
</set> | |||
</option> | |||
</GradleProjectSettings> | |||
</option> | |||
</component> | |||
</project> |
@@ -0,0 +1,22 @@ | |||
<?xml version="1.0" encoding="UTF-8"?> | |||
<project version="4"> | |||
<component name="EntryPointsManager"> | |||
<entry_points version="2.0" /> | |||
</component> | |||
<component name="ProjectLevelVcsManager" settingsEditedManually="false"> | |||
<OptionsSetting value="true" id="Add" /> | |||
<OptionsSetting value="true" id="Remove" /> | |||
<OptionsSetting value="true" id="Checkout" /> | |||
<OptionsSetting value="true" id="Update" /> | |||
<OptionsSetting value="true" id="Status" /> | |||
<OptionsSetting value="true" id="Edit" /> | |||
<ConfirmationsSetting value="0" id="Add" /> | |||
<ConfirmationsSetting value="0" id="Remove" /> | |||
</component> | |||
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" default="true" assert-keyword="true" jdk-15="true" project-jdk-name="1.7" project-jdk-type="JavaSDK"> | |||
<output url="file://$PROJECT_DIR$/build/classes" /> | |||
</component> | |||
<component name="ProjectType"> | |||
<option name="id" value="Android" /> | |||
</component> | |||
</project> |
@@ -0,0 +1,9 @@ | |||
<?xml version="1.0" encoding="UTF-8"?> | |||
<project version="4"> | |||
<component name="ProjectModuleManager"> | |||
<modules> | |||
<module fileurl="file://$PROJECT_DIR$/app/app.iml" filepath="$PROJECT_DIR$/app/app.iml" /> | |||
<module fileurl="file://$PROJECT_DIR$/teknik-share.iml" filepath="$PROJECT_DIR$/teknik-share.iml" /> | |||
</modules> | |||
</component> | |||
</project> |
@@ -0,0 +1,6 @@ | |||
<?xml version="1.0" encoding="UTF-8"?> | |||
<project version="4"> | |||
<component name="VcsDirectoryMappings"> | |||
<mapping directory="" vcs="" /> | |||
</component> | |||
</project> |
@@ -0,0 +1,339 @@ | |||
GNU GENERAL PUBLIC LICENSE | |||
Version 2, June 1991 | |||
Copyright (C) 1989, 1991 Free Software Foundation, Inc., <http://fsf.org/> | |||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | |||
Everyone is permitted to copy and distribute verbatim copies | |||
of this license document, but changing it is not allowed. | |||
Preamble | |||
The licenses for most software are designed to take away your | |||
freedom to share and change it. By contrast, the GNU General Public | |||
License is intended to guarantee your freedom to share and change free | |||
software--to make sure the software is free for all its users. This | |||
General Public License applies to most of the Free Software | |||
Foundation's software and to any other program whose authors commit to | |||
using it. (Some other Free Software Foundation software is covered by | |||
the GNU Lesser General Public License instead.) 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 | |||
this service 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 make restrictions that forbid | |||
anyone to deny you these rights or to ask you to surrender the rights. | |||
These restrictions translate to certain responsibilities for you if you | |||
distribute copies of the software, or if you modify it. | |||
For example, if you distribute copies of such a program, whether | |||
gratis or for a fee, you must give the recipients all the rights that | |||
you have. 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. | |||
We protect your rights with two steps: (1) copyright the software, and | |||
(2) offer you this license which gives you legal permission to copy, | |||
distribute and/or modify the software. | |||
Also, for each author's protection and ours, we want to make certain | |||
that everyone understands that there is no warranty for this free | |||
software. If the software is modified by someone else and passed on, we | |||
want its recipients to know that what they have is not the original, so | |||
that any problems introduced by others will not reflect on the original | |||
authors' reputations. | |||
Finally, any free program is threatened constantly by software | |||
patents. We wish to avoid the danger that redistributors of a free | |||
program will individually obtain patent licenses, in effect making the | |||
program proprietary. To prevent this, we have made it clear that any | |||
patent must be licensed for everyone's free use or not licensed at all. | |||
The precise terms and conditions for copying, distribution and | |||
modification follow. | |||
GNU GENERAL PUBLIC LICENSE | |||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION | |||
0. This License applies to any program or other work which contains | |||
a notice placed by the copyright holder saying it may be distributed | |||
under the terms of this General Public License. The "Program", below, | |||
refers to any such program or work, and a "work based on the Program" | |||
means either the Program or any derivative work under copyright law: | |||
that is to say, a work containing the Program or a portion of it, | |||
either verbatim or with modifications and/or translated into another | |||
language. (Hereinafter, translation is included without limitation in | |||
the term "modification".) Each licensee is addressed as "you". | |||
Activities other than copying, distribution and modification are not | |||
covered by this License; they are outside its scope. The act of | |||
running the Program is not restricted, and the output from the Program | |||
is covered only if its contents constitute a work based on the | |||
Program (independent of having been made by running the Program). | |||
Whether that is true depends on what the Program does. | |||
1. You may copy and distribute 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 and disclaimer of warranty; keep intact all the | |||
notices that refer to this License and to the absence of any warranty; | |||
and give any other recipients of the Program a copy of this License | |||
along with the Program. | |||
You may charge a fee for the physical act of transferring a copy, and | |||
you may at your option offer warranty protection in exchange for a fee. | |||
2. You may modify your copy or copies of the Program or any portion | |||
of it, thus forming a work based on the Program, and copy and | |||
distribute such modifications or work under the terms of Section 1 | |||
above, provided that you also meet all of these conditions: | |||
a) You must cause the modified files to carry prominent notices | |||
stating that you changed the files and the date of any change. | |||
b) You must cause any work that you distribute or publish, that in | |||
whole or in part contains or is derived from the Program or any | |||
part thereof, to be licensed as a whole at no charge to all third | |||
parties under the terms of this License. | |||
c) If the modified program normally reads commands interactively | |||
when run, you must cause it, when started running for such | |||
interactive use in the most ordinary way, to print or display an | |||
announcement including an appropriate copyright notice and a | |||
notice that there is no warranty (or else, saying that you provide | |||
a warranty) and that users may redistribute the program under | |||
these conditions, and telling the user how to view a copy of this | |||
License. (Exception: if the Program itself is interactive but | |||
does not normally print such an announcement, your work based on | |||
the Program is not required to print an announcement.) | |||
These requirements apply to the modified work as a whole. If | |||
identifiable sections of that work are not derived from the Program, | |||
and can be reasonably considered independent and separate works in | |||
themselves, then this License, and its terms, do not apply to those | |||
sections when you distribute them as separate works. But when you | |||
distribute the same sections as part of a whole which is a work based | |||
on the Program, the distribution of the whole must be on the terms of | |||
this License, whose permissions for other licensees extend to the | |||
entire whole, and thus to each and every part regardless of who wrote it. | |||
Thus, it is not the intent of this section to claim rights or contest | |||
your rights to work written entirely by you; rather, the intent is to | |||
exercise the right to control the distribution of derivative or | |||
collective works based on the Program. | |||
In addition, mere aggregation of another work not based on the Program | |||
with the Program (or with a work based on the Program) on a volume of | |||
a storage or distribution medium does not bring the other work under | |||
the scope of this License. | |||
3. You may copy and distribute the Program (or a work based on it, | |||
under Section 2) in object code or executable form under the terms of | |||
Sections 1 and 2 above provided that you also do one of the following: | |||
a) Accompany it with the complete corresponding machine-readable | |||
source code, which must be distributed under the terms of Sections | |||
1 and 2 above on a medium customarily used for software interchange; or, | |||
b) Accompany it with a written offer, valid for at least three | |||
years, to give any third party, for a charge no more than your | |||
cost of physically performing source distribution, a complete | |||
machine-readable copy of the corresponding source code, to be | |||
distributed under the terms of Sections 1 and 2 above on a medium | |||
customarily used for software interchange; or, | |||
c) Accompany it with the information you received as to the offer | |||
to distribute corresponding source code. (This alternative is | |||
allowed only for noncommercial distribution and only if you | |||
received the program in object code or executable form with such | |||
an offer, in accord with Subsection b above.) | |||
The source code for a work means the preferred form of the work for | |||
making modifications to it. For an executable work, complete source | |||
code means all the source code for all modules it contains, plus any | |||
associated interface definition files, plus the scripts used to | |||
control compilation and installation of the executable. However, as a | |||
special exception, the source code distributed need not include | |||
anything that is normally distributed (in either source or binary | |||
form) with the major components (compiler, kernel, and so on) of the | |||
operating system on which the executable runs, unless that component | |||
itself accompanies the executable. | |||
If distribution of executable or object code is made by offering | |||
access to copy from a designated place, then offering equivalent | |||
access to copy the source code from the same place counts as | |||
distribution of the source code, even though third parties are not | |||
compelled to copy the source along with the object code. | |||
4. You may not copy, modify, sublicense, or distribute the Program | |||
except as expressly provided under this License. Any attempt | |||
otherwise to copy, modify, sublicense or distribute the Program is | |||
void, and will automatically terminate your rights under this License. | |||
However, parties who have received copies, or rights, from you under | |||
this License will not have their licenses terminated so long as such | |||
parties remain in full compliance. | |||
5. You are not required to accept this License, since you have not | |||
signed it. However, nothing else grants you permission to modify or | |||
distribute the Program or its derivative works. These actions are | |||
prohibited by law if you do not accept this License. Therefore, by | |||
modifying or distributing the Program (or any work based on the | |||
Program), you indicate your acceptance of this License to do so, and | |||
all its terms and conditions for copying, distributing or modifying | |||
the Program or works based on it. | |||
6. Each time you redistribute the Program (or any work based on the | |||
Program), the recipient automatically receives a license from the | |||
original licensor to copy, distribute or modify the Program subject to | |||
these terms and conditions. You may not impose any further | |||
restrictions on the recipients' exercise of the rights granted herein. | |||
You are not responsible for enforcing compliance by third parties to | |||
this License. | |||
7. If, as a consequence of a court judgment or allegation of patent | |||
infringement or for any other reason (not limited to patent issues), | |||
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 | |||
distribute so as to satisfy simultaneously your obligations under this | |||
License and any other pertinent obligations, then as a consequence you | |||
may not distribute the Program at all. For example, if a patent | |||
license would not permit royalty-free redistribution of the Program by | |||
all those who receive copies directly or indirectly through you, then | |||
the only way you could satisfy both it and this License would be to | |||
refrain entirely from distribution of the Program. | |||
If any portion of this section is held invalid or unenforceable under | |||
any particular circumstance, the balance of the section is intended to | |||
apply and the section as a whole is intended to apply in other | |||
circumstances. | |||
It is not the purpose of this section to induce you to infringe any | |||
patents or other property right claims or to contest validity of any | |||
such claims; this section has the sole purpose of protecting the | |||
integrity of the free software distribution system, which is | |||
implemented by public license practices. Many people have made | |||
generous contributions to the wide range of software distributed | |||
through that system in reliance on consistent application of that | |||
system; it is up to the author/donor to decide if he or she is willing | |||
to distribute software through any other system and a licensee cannot | |||
impose that choice. | |||
This section is intended to make thoroughly clear what is believed to | |||
be a consequence of the rest of this License. | |||
8. If the distribution and/or use of the Program is restricted in | |||
certain countries either by patents or by copyrighted interfaces, the | |||
original copyright holder who places the Program under this License | |||
may add an explicit geographical distribution limitation excluding | |||
those countries, so that distribution is permitted only in or among | |||
countries not thus excluded. In such case, this License incorporates | |||
the limitation as if written in the body of this License. | |||
9. The Free Software Foundation may publish revised and/or new versions | |||
of the 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 a version number of this License which applies to it and "any | |||
later version", you have the option of following the terms and conditions | |||
either of that version or of any later version published by the Free | |||
Software Foundation. If the Program does not specify a version number of | |||
this License, you may choose any version ever published by the Free Software | |||
Foundation. | |||
10. If you wish to incorporate parts of the Program into other free | |||
programs whose distribution conditions are different, write to the author | |||
to ask for permission. For software which is copyrighted by the Free | |||
Software Foundation, write to the Free Software Foundation; we sometimes | |||
make exceptions for this. Our decision will be guided by the two goals | |||
of preserving the free status of all derivatives of our free software and | |||
of promoting the sharing and reuse of software generally. | |||
NO WARRANTY | |||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, 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. | |||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING | |||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR | |||
REDISTRIBUTE 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. | |||
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 | |||
convey the exclusion of warranty; and each file should have at least | |||
the "copyright" line and a pointer to where the full notice is found. | |||
{description} | |||
Copyright (C) {year} {fullname} | |||
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 2 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, write to the Free Software Foundation, Inc., | |||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. | |||
Also add information on how to contact you by electronic and paper mail. | |||
If the program is interactive, make it output a short notice like this | |||
when it starts in an interactive mode: | |||
Gnomovision version 69, Copyright (C) year name of author | |||
Gnomovision 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, the commands you use may | |||
be called something other than `show w' and `show c'; they could even be | |||
mouse-clicks or menu items--whatever suits your program. | |||
You should also get your employer (if you work as a programmer) or your | |||
school, if any, to sign a "copyright disclaimer" for the program, if | |||
necessary. Here is a sample; alter the names: | |||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program | |||
`Gnomovision' (which makes passes at compilers) written by James Hacker. | |||
{signature of Ty Coon}, 1 April 1989 | |||
Ty Coon, President of Vice | |||
This 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. |
@@ -0,0 +1,7 @@ | |||
# Teknikshare | |||
Fork of https://github.com/Nyubis/Pomfshare | |||
*A simple Android client for [teknik.io](https://u.teknik.io)* | |||
 | |||
Teknikshare uses Android's built-in sharing menu to easily upload files to [Teknik](u.teknik.io), file hosting subdomain. |
@@ -0,0 +1,92 @@ | |||
<?xml version="1.0" encoding="UTF-8"?> | |||
<module external.linked.project.id=":app" external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$/.." external.system.id="GRADLE" external.system.module.group="teknik-share" external.system.module.version="unspecified" type="JAVA_MODULE" version="4"> | |||
<component name="FacetManager"> | |||
<facet type="android-gradle" name="Android-Gradle"> | |||
<configuration> | |||
<option name="GRADLE_PROJECT_PATH" value=":app" /> | |||
</configuration> | |||
</facet> | |||
<facet type="android" name="Android"> | |||
<configuration> | |||
<option name="SELECTED_BUILD_VARIANT" value="debug" /> | |||
<option name="SELECTED_TEST_ARTIFACT" value="_android_test_" /> | |||
<option name="ASSEMBLE_TASK_NAME" value="assembleDebug" /> | |||
<option name="COMPILE_JAVA_TASK_NAME" value="compileDebugSources" /> | |||
<option name="SOURCE_GEN_TASK_NAME" value="generateDebugSources" /> | |||
<option name="ASSEMBLE_TEST_TASK_NAME" value="assembleDebugAndroidTest" /> | |||
<option name="COMPILE_JAVA_TEST_TASK_NAME" value="compileDebugAndroidTestSources" /> | |||
<option name="TEST_SOURCE_GEN_TASK_NAME" value="generateDebugAndroidTestSources" /> | |||
<option name="ALLOW_USER_CONFIGURATION" value="false" /> | |||
<option name="MANIFEST_FILE_RELATIVE_PATH" value="/src/main/AndroidManifest.xml" /> | |||
<option name="RES_FOLDER_RELATIVE_PATH" value="/src/main/res" /> | |||
<option name="RES_FOLDERS_RELATIVE_PATH" value="file://$MODULE_DIR$/src/main/res" /> | |||
<option name="ASSETS_FOLDER_RELATIVE_PATH" value="/src/main/assets" /> | |||
</configuration> | |||
</facet> | |||
</component> | |||
<component name="NewModuleRootManager" inherit-compiler-output="false"> | |||
<output url="file://$MODULE_DIR$/build/intermediates/classes/debug" /> | |||
<output-test url="file://$MODULE_DIR$/build/intermediates/classes/androidTest/debug" /> | |||
<exclude-output /> | |||
<content url="file://$MODULE_DIR$"> | |||
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/r/debug" isTestSource="false" generated="true" /> | |||
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/aidl/debug" isTestSource="false" generated="true" /> | |||
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/debug" isTestSource="false" generated="true" /> | |||
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/rs/debug" isTestSource="false" generated="true" /> | |||
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/debug" type="java-resource" /> | |||
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/generated/debug" type="java-resource" /> | |||
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/r/androidTest/debug" isTestSource="true" generated="true" /> | |||
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/aidl/androidTest/debug" isTestSource="true" generated="true" /> | |||
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/androidTest/debug" isTestSource="true" generated="true" /> | |||
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/rs/androidTest/debug" isTestSource="true" generated="true" /> | |||
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/androidTest/debug" type="java-test-resource" /> | |||
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/generated/androidTest/debug" type="java-test-resource" /> | |||
<sourceFolder url="file://$MODULE_DIR$/src/debug/res" type="java-resource" /> | |||
<sourceFolder url="file://$MODULE_DIR$/src/debug/resources" type="java-resource" /> | |||
<sourceFolder url="file://$MODULE_DIR$/src/debug/assets" type="java-resource" /> | |||
<sourceFolder url="file://$MODULE_DIR$/src/debug/aidl" isTestSource="false" /> | |||
<sourceFolder url="file://$MODULE_DIR$/src/debug/java" isTestSource="false" /> | |||
<sourceFolder url="file://$MODULE_DIR$/src/debug/jni" isTestSource="false" /> | |||
<sourceFolder url="file://$MODULE_DIR$/src/debug/rs" isTestSource="false" /> | |||
<sourceFolder url="file://$MODULE_DIR$/src/main/res" type="java-resource" /> | |||
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" /> | |||
<sourceFolder url="file://$MODULE_DIR$/src/main/assets" type="java-resource" /> | |||
<sourceFolder url="file://$MODULE_DIR$/src/main/aidl" isTestSource="false" /> | |||
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" /> | |||
<sourceFolder url="file://$MODULE_DIR$/src/main/jni" isTestSource="false" /> | |||
<sourceFolder url="file://$MODULE_DIR$/src/main/rs" isTestSource="false" /> | |||
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/res" type="java-test-resource" /> | |||
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/resources" type="java-test-resource" /> | |||
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/assets" type="java-test-resource" /> | |||
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/aidl" isTestSource="true" /> | |||
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/java" isTestSource="true" /> | |||
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/jni" isTestSource="true" /> | |||
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/rs" isTestSource="true" /> | |||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/assets" /> | |||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/bundles" /> | |||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/classes" /> | |||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/coverage-instrumented-classes" /> | |||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/dependency-cache" /> | |||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/dex" /> | |||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/dex-cache" /> | |||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental" /> | |||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/jacoco" /> | |||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/javaResources" /> | |||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/libs" /> | |||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/lint" /> | |||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/manifests" /> | |||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/ndk" /> | |||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/pre-dexed" /> | |||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/proguard" /> | |||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/res" /> | |||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/rs" /> | |||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/symbols" /> | |||
<excludeFolder url="file://$MODULE_DIR$/build/outputs" /> | |||
<excludeFolder url="file://$MODULE_DIR$/build/tmp" /> | |||
</content> | |||
<orderEntry type="jdk" jdkName="Android API 22 Platform" jdkType="Android SDK" /> | |||
<orderEntry type="sourceFolder" forTests="false" /> | |||
<orderEntry type="library" exported="" name="support-annotations-21.0.3" level="project" /> | |||
<orderEntry type="library" exported="" name="support-v4-21.0.3" level="project" /> | |||
</component> | |||
</module> |
@@ -0,0 +1,23 @@ | |||
apply plugin: 'com.android.application' | |||
android { | |||
compileSdkVersion 22 | |||
buildToolsVersion '22.0.1' | |||
defaultConfig { | |||
applicationId 'technocracy.arashi.teknik' | |||
minSdkVersion 19 | |||
targetSdkVersion 22 | |||
} | |||
buildTypes { | |||
release { | |||
minifyEnabled true | |||
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' | |||
} | |||
} | |||
productFlavors { | |||
} | |||
} | |||
dependencies { | |||
compile 'com.android.support:support-v4:21.0.3' | |||
} |
@@ -0,0 +1,29 @@ | |||
<?xml version="1.0" encoding="utf-8"?> | |||
<manifest xmlns:android="http://schemas.android.com/apk/res/android" | |||
package="technocracy.arashi.teknik" | |||
android:versionCode="1" | |||
android:versionName="1.0" > | |||
<uses-sdk | |||
android:minSdkVersion="8" | |||
android:targetSdkVersion="19" /> | |||
<uses-permission android:name="android.permission.INTERNET" /> | |||
<application | |||
android:allowBackup="true" | |||
android:icon="@drawable/ic_launcher" | |||
android:label="@string/app_name" | |||
android:theme="@style/AppTheme" > | |||
<activity | |||
android:name="technocracy.arashi.teknik.MainActivity" | |||
android:label="@string/app_name" > | |||
<intent-filter> | |||
<action android:name="android.intent.action.SEND" /> | |||
<category android:name="android.intent.category.DEFAULT" /> | |||
<data android:mimeType="image/*" /> | |||
</intent-filter> | |||
</activity> | |||
</application> | |||
</manifest> |
@@ -0,0 +1,112 @@ | |||
package technocracy.arashi.teknik; | |||
import java.io.FileNotFoundException; | |||
import org.json.JSONObject; | |||
import org.json.JSONException; | |||
import org.json.JSONArray; | |||
import android.annotation.TargetApi; | |||
import android.app.Activity; | |||
import android.content.ClipData; | |||
import android.content.ClipboardManager; | |||
import android.content.ContentResolver; | |||
import android.content.Context; | |||
import android.content.Intent; | |||
import android.graphics.Bitmap; | |||
import android.graphics.BitmapFactory; | |||
import android.net.Uri; | |||
import android.os.Build; | |||
import android.os.Bundle; | |||
import android.os.ParcelFileDescriptor; | |||
import android.util.Log; | |||
import android.view.Menu; | |||
import android.view.MenuItem; | |||
import android.widget.EditText; | |||
import android.widget.ImageView; | |||
import android.widget.Toast; | |||
public class MainActivity extends Activity { | |||
private final String tag = "ayy lmao"; | |||
private String result; | |||
@Override | |||
protected void onCreate(Bundle savedInstanceState) { | |||
super.onCreate(savedInstanceState); | |||
setContentView(R.layout.activity_main); | |||
Intent intent = getIntent(); | |||
Uri imageUri = (Uri) intent.getParcelableExtra(Intent.EXTRA_STREAM); | |||
ContentResolver cr = getContentResolver(); | |||
if (imageUri != null) { | |||
Log.d(tag, imageUri.toString()); | |||
ImageView view = (ImageView)findViewById(R.id.sharedImageView); | |||
Bitmap bmp = BitmapFactory.decodeFile(imageUri.toString()); | |||
Log.d(tag, cr.getType(imageUri)); | |||
Log.d(tag, imageUri.getLastPathSegment()); | |||
view.setImageBitmap(bmp); | |||
view.setImageURI(imageUri); | |||
ParcelFileDescriptor inputPFD = null; | |||
try { | |||
inputPFD = cr.openFileDescriptor(imageUri, "r"); | |||
} catch (FileNotFoundException e) { | |||
Log.e(tag, e.getMessage()); | |||
Toast toast = Toast.makeText(getApplicationContext(), "Unable to read file.", Toast.LENGTH_SHORT); | |||
toast.show(); | |||
} | |||
new Uploader(this, inputPFD, Uploader.Service.TEST).execute(imageUri.getLastPathSegment(), cr.getType(imageUri)); | |||
} | |||
} | |||
public void finishUpload(String resultUrl) { | |||
EditText output = (EditText) findViewById(R.id.outputField); | |||
String url = "no"; | |||
try { | |||
//Parse the JSON response from Teknik | |||
JSONArray primary = new JSONArray(resultUrl); | |||
JSONObject secondary = primary.getJSONObject(0); | |||
JSONObject third = secondary.getJSONObject("results"); | |||
JSONObject fourth = third.getJSONObject("file"); | |||
url = fourth.getString("url"); | |||
result = url; | |||
output.setText(result); | |||
} catch(JSONException e){ | |||
e.printStackTrace(); | |||
} | |||
} | |||
@Override | |||
public boolean onOptionsItemSelected(MenuItem item) { | |||
// Handle item selection | |||
switch (item.getItemId()) { | |||
case R.id.action_copy: | |||
copyToClipboard(); | |||
return true; | |||
default: | |||
return super.onOptionsItemSelected(item); | |||
} | |||
} | |||
@TargetApi(Build.VERSION_CODES.HONEYCOMB) | |||
private void copyToClipboard() { | |||
if (result == null) | |||
return; | |||
ClipboardManager clipboard = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE); | |||
ClipData clip = ClipData.newPlainText("Teknik URL:", result); | |||
clipboard.setPrimaryClip(clip); | |||
Toast toast = Toast.makeText(getApplicationContext(), "Copied to clipboard!", Toast.LENGTH_SHORT); | |||
toast.show(); | |||
} | |||
@Override | |||
public boolean onCreateOptionsMenu(Menu menu) { | |||
// Inflate the menu; this adds items to the action bar if it is present. | |||
getMenuInflater().inflate(R.menu.main, menu); | |||
return true; | |||
} | |||
} |
@@ -0,0 +1,114 @@ | |||
package technocracy.arashi.teknik; | |||
import java.io.DataOutputStream; | |||
import java.io.FileInputStream; | |||
import java.io.IOException; | |||
import java.net.HttpURLConnection; | |||
import java.net.URL; | |||
import java.util.Scanner; | |||
import android.os.AsyncTask; | |||
import android.os.ParcelFileDescriptor; | |||
import android.util.Log; | |||
import android.webkit.MimeTypeMap; | |||
public class Uploader extends AsyncTask<String, Integer, String>{ | |||
private final String teknikurl = "https://api.teknik.io/upload/post"; | |||
private final String testurl = "https://api.teknik.io/upload/post"; | |||
private final String boundary = "*****"; | |||
private final int maxBufferSize = 104857600; | |||
private final String tag = "ayy lmao"; | |||
private ParcelFileDescriptor file; | |||
private MainActivity source; | |||
private Service service; | |||
public enum Service { TEKNIK, TEST} | |||
public Uploader(MainActivity sender, ParcelFileDescriptor pfd, Service service) { | |||
this.source = sender; | |||
this.file = pfd; | |||
this.service = service; | |||
} | |||
@Override | |||
protected String doInBackground(String... params) { | |||
String filename = params[0]; | |||
String contentType = params[1]; | |||
String extension = MimeTypeMap.getSingleton().getExtensionFromMimeType(contentType); | |||
String uploadurl = (service == Service.TEKNIK) ? teknikurl : testurl; | |||
String fieldName = (service == Service.TEKNIK) ? "files[]" : "file"; | |||
String result = null; | |||
try { | |||
HttpURLConnection conn = (HttpURLConnection) new URL(uploadurl).openConnection(); | |||
conn.setDoInput(true); | |||
conn.setDoOutput(true); | |||
conn.setUseCaches(false); | |||
conn.setRequestMethod("POST"); | |||
conn.setRequestProperty("Connection", "Keep-Alive"); | |||
conn.setRequestProperty("Content-Type", "multipart/form-data;boundary="+boundary); | |||
DataOutputStream out = new DataOutputStream(conn.getOutputStream()); | |||
out.writeBytes("--" + boundary + "\r\n"); | |||
out.writeBytes(String.format("Content-Disposition: form-data; name=\"%s\";filename=\"%s.%s\"\r\nContent-type: %s\r\n", | |||
fieldName, filename, extension, contentType)); | |||
out.writeBytes("\r\n"); | |||
Log.d(tag, filename + "." + extension); | |||
FileInputStream fileInputStream = new FileInputStream(file.getFileDescriptor()); | |||
int bytesAvailable = fileInputStream.available(); | |||
int bufferSize = Math.min(bytesAvailable, maxBufferSize); | |||
byte[] buffer = new byte[bufferSize]; | |||
Log.d(tag, "Pre-read file " + fileInputStream); | |||
// Read file | |||
int bytesRead = fileInputStream.read(buffer, 0, bufferSize); | |||
while (bytesRead > 0) | |||
{ | |||
out.write(buffer, 0, bytesRead); | |||
bytesRead = fileInputStream.read(buffer, 0, bufferSize); | |||
} | |||
Log.d(tag, "Post-read file"); | |||
out.writeBytes("\r\n"); | |||
out.writeBytes("--" + boundary + "--\r\n"); | |||
// Responses from the server (code and message) | |||
int responseCode = conn.getResponseCode(); | |||
String responseMessage = conn.getResponseMessage(); | |||
Scanner reader = new Scanner(conn.getInputStream()); | |||
result = reader.nextLine(); | |||
Log.d(tag, String.format("%d: %s", responseCode, responseMessage)); | |||
Log.d(tag, result); | |||
fileInputStream.close(); | |||
reader.close(); | |||
out.flush(); | |||
out.close(); | |||
} catch(IOException e) { | |||
Log.e(tag, e.getMessage()); | |||
return String.format("Upload failed, check your internet connection (%s)", e.getMessage()); | |||
} | |||
return result; | |||
} | |||
@Override | |||
protected void onPostExecute(String result) { | |||
source.finishUpload(result); | |||
} | |||
} |
@@ -0,0 +1,40 @@ | |||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" | |||
xmlns:tools="http://schemas.android.com/tools" | |||
android:layout_width="match_parent" | |||
android:layout_height="match_parent" | |||
android:paddingBottom="@dimen/activity_vertical_margin" | |||
android:paddingLeft="@dimen/activity_horizontal_margin" | |||
android:paddingRight="@dimen/activity_horizontal_margin" | |||
android:paddingTop="@dimen/activity_vertical_margin" | |||
tools:context=".MainActivity" | |||
android:orientation="vertical"> | |||
<ScrollView | |||
android:layout_width="fill_parent" | |||
android:layout_height="0dp" | |||
android:layout_weight="1"> | |||
<LinearLayout | |||
android:orientation="horizontal" | |||
android:layout_width="match_parent" | |||
android:layout_height="wrap_content" | |||
android:gravity="center"> | |||
<ImageView | |||
android:id="@+id/sharedImageView" | |||
android:layout_width="wrap_content" | |||
android:layout_height="wrap_content" | |||
android:src="@drawable/ic_launcher" | |||
android:contentDescription="@string/imgdesc" /> | |||
</LinearLayout> | |||
</ScrollView> | |||
<EditText | |||
android:id="@+id/outputField" | |||
android:inputType="text" | |||
android:layout_width="match_parent" | |||
android:layout_height="wrap_content" | |||
android:text="@string/loading"/> | |||
</LinearLayout> |
@@ -0,0 +1,9 @@ | |||
<menu xmlns:android="http://schemas.android.com/apk/res/android" > | |||
<item | |||
android:id="@+id/action_copy" | |||
android:orderInCategory="100" | |||
android:showAsAction="ifRoom" | |||
android:title="@string/action_copy"/> | |||
</menu> |
@@ -0,0 +1,8 @@ | |||
<resources> | |||
<!-- | |||
Customize dimensions originally defined in res/values/dimens.xml (such as | |||
screen margins) for sw600dp devices (e.g. 7" tablets) here. | |||
--> | |||
</resources> |
@@ -0,0 +1,9 @@ | |||
<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> |
@@ -0,0 +1,11 @@ | |||
<resources> | |||
<!-- | |||
Base application theme for API 11+. This theme completely replaces | |||
AppBaseTheme from res/values/styles.xml on API 11+ devices. | |||
--> | |||
<style name="AppBaseTheme" parent="android:Theme.Holo.Light"> | |||
<!-- API 11 theme customizations can go here. --> | |||
</style> | |||
</resources> |
@@ -0,0 +1,12 @@ | |||
<resources> | |||
<!-- | |||
Base application theme for API 14+. This theme completely replaces | |||
AppBaseTheme from BOTH res/values/styles.xml and | |||
res/values-v11/styles.xml on API 14+ devices. | |||
--> | |||
<style name="AppBaseTheme" parent="android:Theme.Holo.Light.DarkActionBar"> | |||
<!-- API 14 theme customizations can go here. --> | |||
</style> | |||
</resources> |
@@ -0,0 +1,7 @@ | |||
<resources> | |||
<!-- Default screen margins, per the Android Design guidelines. --> | |||
<dimen name="activity_horizontal_margin">16dp</dimen> | |||
<dimen name="activity_vertical_margin">16dp</dimen> | |||
</resources> |
@@ -0,0 +1,11 @@ | |||
<?xml version="1.0" encoding="utf-8"?> | |||
<resources> | |||
<string name="app_name">Teknik</string> | |||
<string name="action_settings">Settings</string> | |||
<string name="action_copy">Copy</string> | |||
<string name="hello_world">Hello world!</string> | |||
<string name="loading">Uploading…</string> | |||
<string name="imgdesc">The uploaded image</string> | |||
</resources> |
@@ -0,0 +1,20 @@ | |||
<resources> | |||
<!-- | |||
Base application theme, dependent on API level. This theme is replaced | |||
by AppBaseTheme from res/values-vXX/styles.xml on newer devices. | |||
--> | |||
<style name="AppBaseTheme" parent="android:Theme.Light"> | |||
<!-- | |||
Theme customizations available in newer API levels can go in | |||
res/values-vXX/styles.xml, while customizations related to | |||
backward-compatibility can go here. | |||
--> | |||
</style> | |||
<!-- Application theme. --> | |||
<style name="AppTheme" parent="AppBaseTheme"> | |||
<!-- All customizations that are NOT specific to a particular API-level can go here. --> | |||
</style> | |||
</resources> |
@@ -0,0 +1,15 @@ | |||
// Top-level build file where you can add configuration options common to all sub-projects/modules. | |||
buildscript { | |||
repositories { | |||
jcenter() | |||
} | |||
dependencies { | |||
classpath 'com.android.tools.build:gradle:1.1.0' | |||
} | |||
} | |||
allprojects { | |||
repositories { | |||
jcenter() | |||
} | |||
} |
@@ -0,0 +1,6 @@ | |||
#Wed Apr 10 15:27:10 PDT 2013 | |||
distributionBase=GRADLE_USER_HOME | |||
distributionPath=wrapper/dists | |||
zipStoreBase=GRADLE_USER_HOME | |||
zipStorePath=wrapper/dists | |||
distributionUrl=https\://services.gradle.org/distributions/gradle-2.2.1-all.zip |
@@ -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 "$@" |
@@ -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 |
@@ -0,0 +1,50 @@ | |||
ECLIPSE ANDROID PROJECT IMPORT SUMMARY | |||
====================================== | |||
Ignored Files: | |||
-------------- | |||
The following files were *not* copied into the new Gradle project; you | |||
should evaluate whether these are still needed in your project and if | |||
so manually move them: | |||
* .gitignore | |||
* README.md | |||
* ic_launcher-web.png | |||
* proguard-project.txt | |||
Replaced Jars with Dependencies: | |||
-------------------------------- | |||
The importer recognized the following .jar files as third party | |||
libraries and replaced them with Gradle dependencies instead. This has | |||
the advantage that more explicit version information is known, and the | |||
libraries can be updated automatically. However, it is possible that | |||
the .jar file in your project was of an older version than the | |||
dependency we picked, which could render the project not compileable. | |||
You can disable the jar replacement in the import wizard and try again: | |||
android-support-v4.jar => com.android.support:support-v4:19.1.0 | |||
Moved Files: | |||
------------ | |||
Android Gradle projects use a different directory structure than ADT | |||
Eclipse projects. Here's how the projects were restructured: | |||
* AndroidManifest.xml => app\src\main\AndroidManifest.xml | |||
* assets\ => app\src\main\assets\ | |||
* res\ => app\src\main\res\ | |||
* src\ => app\src\main\java\ | |||
Next Steps: | |||
----------- | |||
You can now build the project. The Gradle project needs network | |||
connectivity to download dependencies. | |||
Bugs: | |||
----- | |||
If for some reason your project does not build, and you determine that | |||
it is due to a bug or limitation of the Eclipse to Gradle importer, | |||
please file a bug at http://b.android.com with category | |||
Component-Tools. | |||
(This import summary is for your information only, and can be deleted | |||
after import once you are satisfied with the results.) |
@@ -0,0 +1 @@ | |||
include ':app' |
@@ -0,0 +1,19 @@ | |||
<?xml version="1.0" encoding="UTF-8"?> | |||
<module external.linked.project.id="teknik-share" external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$" external.system.id="GRADLE" external.system.module.group="" external.system.module.version="unspecified" type="JAVA_MODULE" version="4"> | |||
<component name="FacetManager"> | |||
<facet type="java-gradle" name="Java-Gradle"> | |||
<configuration> | |||
<option name="BUILD_FOLDER_PATH" value="$MODULE_DIR$/build" /> | |||
<option name="BUILDABLE" value="false" /> | |||
</configuration> | |||
</facet> | |||
</component> | |||
<component name="NewModuleRootManager" inherit-compiler-output="true"> | |||
<exclude-output /> | |||
<content url="file://$MODULE_DIR$"> | |||
<excludeFolder url="file://$MODULE_DIR$/.gradle" /> | |||
</content> | |||
<orderEntry type="inheritedJdk" /> | |||
<orderEntry type="sourceFolder" forTests="false" /> | |||
</component> | |||
</module> |