From ce99357050ff97c8750440a8dd0130bc4ec2466b Mon Sep 17 00:00:00 2001 From: Agnibho Mondal Date: Fri, 29 Jan 2016 03:07:36 +0530 Subject: [PATCH 1/1] Initial commit --- INSTALL.txt | 15 + LICENSE.txt | 674 ++++++++++++++++++ README.txt | 69 ++ SolarCompass.iml | 19 + build.gradle | 23 + gradle.properties | 18 + gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 53637 bytes gradle/wrapper/gradle-wrapper.properties | 6 + gradlew | 160 +++++ gradlew.bat | 90 +++ local.properties | 10 + settings.gradle | 1 + solarcompass/.gitignore | 1 + solarcompass/build.gradle | 27 + solarcompass/proguard-rules.pro | 17 + solarcompass/solarcompass.iml | 94 +++ .../android/solarcompass/ApplicationTest.java | 13 + solarcompass/src/main/AndroidManifest.xml | 40 ++ solarcompass/src/main/ic_launcher-web.png | Bin 0 -> 30975 bytes .../android/solarcompass/CompassLogic.java | 97 +++ .../android/solarcompass/HelpActivity.java | 43 ++ .../solarcompass/LocationActivity.java | 88 +++ .../android/solarcompass/LocationData.java | 54 ++ .../android/solarcompass/MainActivity.java | 232 ++++++ .../src/main/res/drawable/compass.png | Bin 0 -> 37061 bytes .../src/main/res/drawable/suncircle.png | Bin 0 -> 86825 bytes .../src/main/res/layout/activity_help.xml | 26 + .../src/main/res/layout/activity_location.xml | 26 + .../src/main/res/layout/activity_main.xml | 74 ++ .../src/main/res/layout/content_help.xml | 25 + .../src/main/res/layout/content_location.xml | 73 ++ .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 2338 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 1489 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 3105 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 5006 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 7215 bytes .../src/main/res/values-v21/styles.xml | 9 + .../src/main/res/values-w820dp/dimens.xml | 6 + solarcompass/src/main/res/values/colors.xml | 6 + solarcompass/src/main/res/values/dimens.xml | 6 + solarcompass/src/main/res/values/strings.xml | 22 + solarcompass/src/main/res/values/styles.xml | 20 + .../android/solarcompass/ExampleUnitTest.java | 15 + 43 files changed, 2099 insertions(+) create mode 100755 INSTALL.txt create mode 100755 LICENSE.txt create mode 100755 README.txt create mode 100755 SolarCompass.iml create mode 100755 build.gradle create mode 100755 gradle.properties create mode 100755 gradle/wrapper/gradle-wrapper.jar create mode 100755 gradle/wrapper/gradle-wrapper.properties create mode 100755 gradlew create mode 100755 gradlew.bat create mode 100755 local.properties create mode 100755 settings.gradle create mode 100755 solarcompass/.gitignore create mode 100755 solarcompass/build.gradle create mode 100755 solarcompass/proguard-rules.pro create mode 100755 solarcompass/solarcompass.iml create mode 100755 solarcompass/src/androidTest/java/com/agnibho/android/solarcompass/ApplicationTest.java create mode 100755 solarcompass/src/main/AndroidManifest.xml create mode 100755 solarcompass/src/main/ic_launcher-web.png create mode 100755 solarcompass/src/main/java/com/agnibho/android/solarcompass/CompassLogic.java create mode 100755 solarcompass/src/main/java/com/agnibho/android/solarcompass/HelpActivity.java create mode 100755 solarcompass/src/main/java/com/agnibho/android/solarcompass/LocationActivity.java create mode 100755 solarcompass/src/main/java/com/agnibho/android/solarcompass/LocationData.java create mode 100755 solarcompass/src/main/java/com/agnibho/android/solarcompass/MainActivity.java create mode 100755 solarcompass/src/main/res/drawable/compass.png create mode 100755 solarcompass/src/main/res/drawable/suncircle.png create mode 100755 solarcompass/src/main/res/layout/activity_help.xml create mode 100755 solarcompass/src/main/res/layout/activity_location.xml create mode 100755 solarcompass/src/main/res/layout/activity_main.xml create mode 100755 solarcompass/src/main/res/layout/content_help.xml create mode 100755 solarcompass/src/main/res/layout/content_location.xml create mode 100755 solarcompass/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100755 solarcompass/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100755 solarcompass/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100755 solarcompass/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100755 solarcompass/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100755 solarcompass/src/main/res/values-v21/styles.xml create mode 100755 solarcompass/src/main/res/values-w820dp/dimens.xml create mode 100755 solarcompass/src/main/res/values/colors.xml create mode 100755 solarcompass/src/main/res/values/dimens.xml create mode 100755 solarcompass/src/main/res/values/strings.xml create mode 100755 solarcompass/src/main/res/values/styles.xml create mode 100755 solarcompass/src/test/java/com/agnibho/android/solarcompass/ExampleUnitTest.java diff --git a/INSTALL.txt b/INSTALL.txt new file mode 100755 index 0000000..89231ae --- /dev/null +++ b/INSTALL.txt @@ -0,0 +1,15 @@ + Installation instructions for Solar Compass + =========================================== + +Install binary distribution +--------------------------- + +You can download the APK file directly from +http://code.agnibho.com/solarcompass and install it on your device. + +Build from source code +---------------------- + +The source code is available at +https://github.com/agnibho/solarcompass. You can download the source +code and build the package yourself. diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100755 index 0000000..94a9ed0 --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + 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 + + 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. + + + Copyright (C) + + 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 . + +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: + + Copyright (C) + 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 +. + + 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 +. diff --git a/README.txt b/README.txt new file mode 100755 index 0000000..b9599d7 --- /dev/null +++ b/README.txt @@ -0,0 +1,69 @@ + Solar Compass + ============= + +What is Solar Compass? +------------------- + +Solar Compass is an Android application for finding directions using +the position of the sun in the sky. + +Downloading +----------- + +Latest release of Solar Compass can be downloaded from +http://code.agnibho.com/solarcompass/ + +The source code is available at https://github.com/agnibho/solarcompass/ + +Installation +------------ + +Please see the file named INSTALL.txt for installation instructions. + +Usage +----- + +Start the app and place your device horizontally. Now touch the sun +icon on the screen and rotate it towards the position of the sun in +the sky. The compass will automatically rotate to point the directions +once you release the sun icon. + +Tips: +To properly find the direction of the sun place your finger vertically +on a horizontal surface. The direction of the shadow will be the exact +opposite direction of the sun. + +The left upper corner of the screen contains your location +information. You can touch the button by its side to enter a location +manually. + +The right upper corner contains the help button. Clicking it will open +a help screen detailing the usage instructions. + +Licensing +--------- + +Copyright (c) 2016 Agnibho Mondal +All rights reserved + +This file is part of Solar Compass. + +Solar Compass 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. + +Solar Compass 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 Solar Compass. If not, see . + +Contacts +-------- + +Agnibho Mondal +mondal@agnibho.com +www.agnibho.com diff --git a/SolarCompass.iml b/SolarCompass.iml new file mode 100755 index 0000000..4fc4067 --- /dev/null +++ b/SolarCompass.iml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/build.gradle b/build.gradle new file mode 100755 index 0000000..a1f101c --- /dev/null +++ b/build.gradle @@ -0,0 +1,23 @@ +// 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.5.0' + + // NOTE: Do not place your application dependencies here; they belong + // in the individual module build.gradle files + } +} + +allprojects { + repositories { + jcenter() + } +} + +task clean(type: Delete) { + delete rootProject.buildDir +} diff --git a/gradle.properties b/gradle.properties new file mode 100755 index 0000000..9b6ae2a --- /dev/null +++ b/gradle.properties @@ -0,0 +1,18 @@ +# Project-wide Gradle settings. + +# IDE (e.g. Android Studio) users: +# Gradle settings configured through the IDE *will override* +# any settings specified in this file. + +# For more details on how to configure your build environment visit +# http://www.gradle.org/docs/current/userguide/build_environment.html + +# Specifies the JVM arguments used for the daemon process. +# The setting is particularly useful for tweaking memory settings. +# Default value: -Xmx10248m -XX:MaxPermSize=256m +# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 + +# When configured, Gradle will run in incubating parallel mode. +# This option should only be used with decoupled projects. More details, visit +# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects +# org.gradle.parallel=true \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100755 index 0000000000000000000000000000000000000000..05ef575b0cd0173fc735f2857ce4bd594ce4f6bd GIT binary patch literal 53637 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 t9m@SZ!E*7&jsr?!t7TL-WYI4eM@gAug8 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 \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +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"` + JAVACMD=`cygpath --unix "$JAVACMD"` + + # 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 "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100755 index 0000000..aec9973 --- /dev/null +++ b/gradlew.bat @@ -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 diff --git a/local.properties b/local.properties new file mode 100755 index 0000000..461a10f --- /dev/null +++ b/local.properties @@ -0,0 +1,10 @@ +## This file is automatically generated by Android Studio. +# Do not modify this file -- YOUR CHANGES WILL BE ERASED! +# +# This file should *NOT* be checked into Version Control Systems, +# as it contains information specific to your local configuration. +# +# Location of the SDK. This is only used by Gradle. +# For customization when using a Version Control System, please read the +# header note. +sdk.dir=C\:\\Users\\jim\\AppData\\Local\\Android\\sdk \ No newline at end of file diff --git a/settings.gradle b/settings.gradle new file mode 100755 index 0000000..c0b9f20 --- /dev/null +++ b/settings.gradle @@ -0,0 +1 @@ +include ':solarcompass' diff --git a/solarcompass/.gitignore b/solarcompass/.gitignore new file mode 100755 index 0000000..3543521 --- /dev/null +++ b/solarcompass/.gitignore @@ -0,0 +1 @@ +/build diff --git a/solarcompass/build.gradle b/solarcompass/build.gradle new file mode 100755 index 0000000..22e162e --- /dev/null +++ b/solarcompass/build.gradle @@ -0,0 +1,27 @@ +apply plugin: 'com.android.application' + +android { + compileSdkVersion 23 + buildToolsVersion "23.0.2" + + defaultConfig { + applicationId "com.agnibho.android.solarcompass" + minSdkVersion 15 + targetSdkVersion 23 + versionCode 1 + versionName "1.0" + } + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + } +} + +dependencies { + compile fileTree(dir: 'libs', include: ['*.jar']) + testCompile 'junit:junit:4.12' + compile 'com.android.support:appcompat-v7:23.1.1' + compile 'com.android.support:design:23.1.1' +} diff --git a/solarcompass/proguard-rules.pro b/solarcompass/proguard-rules.pro new file mode 100755 index 0000000..c6a5408 --- /dev/null +++ b/solarcompass/proguard-rules.pro @@ -0,0 +1,17 @@ +# Add project specific ProGuard rules here. +# By default, the flags in this file are appended to flags specified +# in C:\Users\jim\AppData\Local\Android\sdk/tools/proguard/proguard-android.txt +# You can edit the include path and order by changing the proguardFiles +# directive in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# Add any project specific keep options here: + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} diff --git a/solarcompass/solarcompass.iml b/solarcompass/solarcompass.iml new file mode 100755 index 0000000..fd40a57 --- /dev/null +++ b/solarcompass/solarcompass.iml @@ -0,0 +1,94 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/solarcompass/src/androidTest/java/com/agnibho/android/solarcompass/ApplicationTest.java b/solarcompass/src/androidTest/java/com/agnibho/android/solarcompass/ApplicationTest.java new file mode 100755 index 0000000..a5e56a3 --- /dev/null +++ b/solarcompass/src/androidTest/java/com/agnibho/android/solarcompass/ApplicationTest.java @@ -0,0 +1,13 @@ +package com.agnibho.android.solarcompass; + +import android.app.Application; +import android.test.ApplicationTestCase; + +/** + * Testing Fundamentals + */ +public class ApplicationTest extends ApplicationTestCase { + public ApplicationTest() { + super(Application.class); + } +} \ No newline at end of file diff --git a/solarcompass/src/main/AndroidManifest.xml b/solarcompass/src/main/AndroidManifest.xml new file mode 100755 index 0000000..9858fab --- /dev/null +++ b/solarcompass/src/main/AndroidManifest.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/solarcompass/src/main/ic_launcher-web.png b/solarcompass/src/main/ic_launcher-web.png new file mode 100755 index 0000000000000000000000000000000000000000..ade8fe00ed1719cc2fc63d73bcd9974ca09e8653 GIT binary patch literal 30975 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. + **********************************************************************/ + +package com.agnibho.android.solarcompass; + +import java.util.Calendar; +import java.util.TimeZone; + +public class CompassLogic { + + /* + Find Compass Angle + Unit - Degrees + */ + public static double getAngle(){ + return Math.toDegrees(getAzimuthAngle()); + } + + /* + Declination Angle + Unit - Degrees + */ + private static double getDeclinationAngle(){ + int dayNum= Calendar.getInstance().get(Calendar.DAY_OF_YEAR); + return 23.45*Math.sin(Math.toRadians(360.0/365.0*(284.0+dayNum))); + } + + /* + Hour Angle + Unit - Degrees + */ + private static double getHourAngle(){ + Calendar cal=Calendar.getInstance(); + cal.setTimeZone(TimeZone.getTimeZone("UTC")); + double utc=(double)cal.get(Calendar.HOUR_OF_DAY)+(double)cal.get(Calendar.MINUTE)/60; + double timeDiff=LocationData.getInstance().getLongitude()/15; + double hour=(utc+timeDiff)%24.0; + return (12-hour)*15; + } + + /* + Altitude Angle + Unit - Radians + */ + private static double getAltitudeAngle(){ + double latitude=Math.toRadians(LocationData.getInstance().getLatitude()); + double declination=Math.toRadians(getDeclinationAngle()); + double hourAngle=Math.toRadians(getHourAngle()); + double sinAlt=Math.cos(latitude)*Math.cos(declination)*Math.cos(hourAngle)+Math.sin(latitude)*Math.sin(declination); + return Math.asin(sinAlt); + } + + /* + Azimuth Angle + Unit - Radians + */ + private static double getAzimuthAngle(){ + double latitude=Math.toRadians(LocationData.getInstance().getLatitude()); + double declination=Math.toRadians(getDeclinationAngle()); + double altitude=getAltitudeAngle(); + double cosAz=(Math.sin(altitude)*Math.sin(latitude)-Math.sin(declination))/(Math.cos(altitude)*Math.cos(latitude)); + double azimuth=Math.acos(cosAz); + if(getHourAngle()<0){ + if(azimuth>0){ + azimuth=-azimuth; + } + } + else{ + if(azimuth<0){ + azimuth=-azimuth; + } + } + return azimuth; + } +} diff --git a/solarcompass/src/main/java/com/agnibho/android/solarcompass/HelpActivity.java b/solarcompass/src/main/java/com/agnibho/android/solarcompass/HelpActivity.java new file mode 100755 index 0000000..c1796c4 --- /dev/null +++ b/solarcompass/src/main/java/com/agnibho/android/solarcompass/HelpActivity.java @@ -0,0 +1,43 @@ +/********************************************************************** + * Title: Solar Compass + * Description: Android app for finding directions using the sun + * Author: Agnibho Mondal + * Website: http://code.agnibho.com/solarcompass + ********************************************************************** + Copyright (c) 2016 Agnibho Mondal + All rights reserved + ********************************************************************** + This file is part of Solar Compass. + + Solar Compass 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. + + Solar Compass 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 Solar Compass. If not, see . + **********************************************************************/ + +package com.agnibho.android.solarcompass; + +import android.os.Bundle; +import android.support.v7.app.AppCompatActivity; +import android.support.v7.widget.Toolbar; + +public class HelpActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_help); + Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); + setSupportActionBar(toolbar); + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + } + +} diff --git a/solarcompass/src/main/java/com/agnibho/android/solarcompass/LocationActivity.java b/solarcompass/src/main/java/com/agnibho/android/solarcompass/LocationActivity.java new file mode 100755 index 0000000..a712d03 --- /dev/null +++ b/solarcompass/src/main/java/com/agnibho/android/solarcompass/LocationActivity.java @@ -0,0 +1,88 @@ +/********************************************************************** + * Title: Solar Compass + * Description: Android app for finding directions using the sun + * Author: Agnibho Mondal + * Website: http://code.agnibho.com/solarcompass + ********************************************************************** + Copyright (c) 2016 Agnibho Mondal + All rights reserved + ********************************************************************** + This file is part of Solar Compass. + + Solar Compass 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. + + Solar Compass 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 Solar Compass. If not, see . + **********************************************************************/ + +package com.agnibho.android.solarcompass; + +import android.os.Bundle; +import android.support.v7.app.AppCompatActivity; +import android.support.v7.widget.Toolbar; +import android.view.View; +import android.widget.Button; +import android.widget.TextView; +import android.widget.Toast; + +public class LocationActivity extends AppCompatActivity { + LocationData location= LocationData.getInstance(); + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_location); + Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); + setSupportActionBar(toolbar); + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + + /** + * Latitude + */ + final TextView latText=(TextView)findViewById(R.id.editText); + if(location.isAvailable()) { + latText.setText(Double.toString(location.getLatitude())); + } + /** + * Longitude + */ + final TextView lonText=(TextView)findViewById(R.id.editText2); + if(location.isAvailable()) { + lonText.setText(Double.toString(location.getLongitude())); + } + /** + * Button + */ + Button setBtn=(Button)findViewById(R.id.button); + setBtn.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + double lt = Double.parseDouble(latText.getText().toString()); + double ln = Double.parseDouble(lonText.getText().toString()); + if (lt >= -90 && lt <= 90){ + if (ln >= -180 && ln <= 180){ + location.setCoordinate(lt, ln); + finish(); + } + else{ + Toast.makeText(getApplicationContext(), "Invalid longitude", Toast.LENGTH_LONG).show(); + lonText.setText(""); + lonText.requestFocus(); + } + } else { + Toast.makeText(getApplicationContext(), "Invalid longitude", Toast.LENGTH_LONG).show(); + latText.setText(""); + latText.requestFocus(); + } + } + }); + } +} diff --git a/solarcompass/src/main/java/com/agnibho/android/solarcompass/LocationData.java b/solarcompass/src/main/java/com/agnibho/android/solarcompass/LocationData.java new file mode 100755 index 0000000..95099b6 --- /dev/null +++ b/solarcompass/src/main/java/com/agnibho/android/solarcompass/LocationData.java @@ -0,0 +1,54 @@ +/********************************************************************** + * Title: Solar Compass + * Description: Android app for finding directions using the sun + * Author: Agnibho Mondal + * Website: http://code.agnibho.com/solarcompass + ********************************************************************** + Copyright (c) 2016 Agnibho Mondal + All rights reserved + ********************************************************************** + This file is part of Solar Compass. + + Solar Compass 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. + + Solar Compass 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 Solar Compass. If not, see . + **********************************************************************/ + +package com.agnibho.android.solarcompass; + +public class LocationData { + private static LocationData ourInstance = new LocationData(); + + public static LocationData getInstance() { + return ourInstance; + } + + private LocationData() { + } + + private double latitude; + private double longitude; + private boolean available=false; + + protected void setCoordinate(double lat, double lon){ + latitude=lat; + longitude=lon; + available=true; + } + protected double getLatitude(){ + return latitude; + } + protected double getLongitude(){ + return longitude; + } + protected boolean isAvailable() { return available; } +} diff --git a/solarcompass/src/main/java/com/agnibho/android/solarcompass/MainActivity.java b/solarcompass/src/main/java/com/agnibho/android/solarcompass/MainActivity.java new file mode 100755 index 0000000..4fd0581 --- /dev/null +++ b/solarcompass/src/main/java/com/agnibho/android/solarcompass/MainActivity.java @@ -0,0 +1,232 @@ +/********************************************************************** + * Title: Solar Compass + * Description: Android app for finding directions using the sun + * Author: Agnibho Mondal + * Website: http://code.agnibho.com/solarcompass + ********************************************************************** + Copyright (c) 2016 Agnibho Mondal + All rights reserved + ********************************************************************** + This file is part of Solar Compass. + + Solar Compass 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. + + Solar Compass 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 Solar Compass. If not, see . + **********************************************************************/ + +package com.agnibho.android.solarcompass; + +import android.app.Activity; +import android.app.AlertDialog; +import android.content.ClipData; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.location.Location; +import android.location.LocationManager; +import android.os.Build; +import android.os.Bundle; +import android.view.DragEvent; +import android.view.MotionEvent; +import android.view.View; +import android.view.ViewTreeObserver; +import android.view.animation.LinearInterpolator; +import android.view.animation.RotateAnimation; +import android.widget.ImageButton; +import android.widget.ImageView; +import android.widget.TextView; +import android.widget.Toast; + +import java.util.Calendar; + +public class MainActivity extends Activity { + + private LocationData locationData=LocationData.getInstance(); + private float[] center=new float[2]; + private float currCompass=0; + + private TextView displayLoc; + private ImageButton locBtn; + private ImageButton helpBtn; + private ImageView dial; + private ImageView compass; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + if(Calendar.getInstance().get(Calendar.HOUR_OF_DAY)<6 || Calendar.getInstance().get(Calendar.HOUR_OF_DAY)>18){ + nightAlert(); + } + + displayLoc=(TextView)findViewById(R.id.textView4); + + gpsLocation(); + if(locationData.isAvailable()) { + displayLocation(); + } + else{ + startActivity(new Intent(MainActivity.this, LocationActivity.class)); + } + + /** + * LocationData Button + */ + locBtn = (ImageButton)findViewById(R.id.imageButton); + locBtn.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + startActivity(new Intent(MainActivity.this, LocationActivity.class)); + } + }); + + /** + * Help Button + */ + helpBtn = (ImageButton)findViewById(R.id.imageButton2); + helpBtn.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + startActivity(new Intent(MainActivity.this, HelpActivity.class)); + } + }); + + /** + * Dialer + */ + dial=(ImageView)findViewById(R.id.imageView); + dial.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { + @Override + public void onGlobalLayout(){ + center[0]=dial.getPivotX(); + center[1]=dial.getPivotY(); + setDirection(); + if (Build.VERSION.SDK_INT>=16){ + dial.getViewTreeObserver().removeOnGlobalLayoutListener(this); + } + else { + dial.getViewTreeObserver().removeGlobalOnLayoutListener(this); + } + } + }); + dial.setOnTouchListener(new View.OnTouchListener() { + @Override + public boolean onTouch(View v, MotionEvent event) { + if (event.getAction() == MotionEvent.ACTION_DOWN) { + ClipData data = ClipData.newPlainText("", ""); + View.DragShadowBuilder shadow = new View.DragShadowBuilder(); + dial.startDrag(data, shadow, dial, 0); + return true; + } else { + return false; + } + } + }); + dial.setOnDragListener(new View.OnDragListener() { + @Override + public boolean onDrag(View v, DragEvent event) { + if (event.getAction() == DragEvent.ACTION_DRAG_LOCATION) { + dial.setRotation((float) getAngle(event.getX(), event.getY())); + } + else if(event.getAction()==DragEvent.ACTION_DROP){ + setDirection(); + } + return true; + } + }); + + /** + * Compass + */ + compass=(ImageView)findViewById(R.id.imageView2); + } + + @Override + protected void onResume(){ + super.onResume(); + displayLocation(); + } + + private double getAngle(float x, float y) { + double angle; + x=x-center[0]; + y=center[1]-y; + angle=Math.toDegrees(Math.atan2(x,y)); + angle=dial.getRotation()+angle; + return angle; + } + + private void gpsLocation(){ + LocationManager locationManager=(LocationManager)getSystemService(Context.LOCATION_SERVICE); + try { + Location loc = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); + if(loc==null){ + loc=locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER); + } + locationData.setCoordinate(loc.getLatitude(), loc.getLongitude()); + } + catch (SecurityException e){ + Toast.makeText(getApplicationContext(), "GPS Permission denied.", Toast.LENGTH_LONG).show(); + } + catch (Exception e){ + Toast.makeText(getApplicationContext(), "GPS location unavailable.", Toast.LENGTH_LONG).show(); + } + } + + private void displayLocation(){ + String s=""; + if(locationData.getLatitude()>=0){ + s=s+String.format("%.2f", Math.abs(locationData.getLatitude()))+"\u00B0 N \n"; + } + else{ + s=s+String.format("%.2f", Math.abs(locationData.getLatitude()))+"\u00B0 S \n"; + } + if(locationData.getLongitude()>=0){ + s=s+String.format("%.2f", Math.abs(locationData.getLongitude()))+"\u00B0 E"; + } + else{ + s=s+String.format("%.2f", Math.abs(locationData.getLongitude()))+"\u00B0 W"; + } + displayLoc.setText(s); + } + + private void setDirection(){ + float direction=(float)CompassLogic.getAngle(); + direction=direction+(dial.getRotation()%360); + if(Math.abs(direction-currCompass)>180){ + direction=(direction-360)%360; + } + RotateAnimation anim = new RotateAnimation(currCompass, direction, compass.getPivotX(), compass.getPivotY()); + anim.setInterpolator(new LinearInterpolator()); + anim.setDuration(500); + anim.setFillAfter(true); + compass.startAnimation(anim); + currCompass=direction; + } + + private void nightAlert(){ + new AlertDialog.Builder(this) + .setTitle("Warning!") + .setMessage("Solar Compass only works during the day.\n" + + "(6 AM to 6 PM)\n" + + "Because it depends on the location of the sun in the sky to find directions.") + .setNeutralButton(android.R.string.ok, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + + } + }) + .setIcon(android.R.drawable.ic_dialog_alert) + .show(); + } +} diff --git a/solarcompass/src/main/res/drawable/compass.png b/solarcompass/src/main/res/drawable/compass.png new file mode 100755 index 0000000000000000000000000000000000000000..cc660a1fb43fc6dea670ece7d0a72125b82dfe33 GIT binary patch literal 37061 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

hcgmY+C8wJ%gZ_2|gF(v2cL?1| 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 D|up?^zKPcm^$R4 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°s$4)w5oSSxnim_$J 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 literal 0 HcmV?d00001 diff --git a/solarcompass/src/main/res/layout/activity_help.xml b/solarcompass/src/main/res/layout/activity_help.xml new file mode 100755 index 0000000..455e7d7 --- /dev/null +++ b/solarcompass/src/main/res/layout/activity_help.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + diff --git a/solarcompass/src/main/res/layout/activity_location.xml b/solarcompass/src/main/res/layout/activity_location.xml new file mode 100755 index 0000000..15f8606 --- /dev/null +++ b/solarcompass/src/main/res/layout/activity_location.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + diff --git a/solarcompass/src/main/res/layout/activity_main.xml b/solarcompass/src/main/res/layout/activity_main.xml new file mode 100755 index 0000000..d637e11 --- /dev/null +++ b/solarcompass/src/main/res/layout/activity_main.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/solarcompass/src/main/res/layout/content_help.xml b/solarcompass/src/main/res/layout/content_help.xml new file mode 100755 index 0000000..3194b66 --- /dev/null +++ b/solarcompass/src/main/res/layout/content_help.xml @@ -0,0 +1,25 @@ + + + + + diff --git a/solarcompass/src/main/res/layout/content_location.xml b/solarcompass/src/main/res/layout/content_location.xml new file mode 100755 index 0000000..2b97909 --- /dev/null +++ b/solarcompass/src/main/res/layout/content_location.xml @@ -0,0 +1,73 @@ + + + + + + + + + + + + + +