Skip to content

mustafaneguiborg/tagAR

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 

Repository files navigation

/**
 *  
 *tagAR is a tagging application developed for the Android Platform
 *Copyright (C) 2012  Mustafa Neguib, MN Tech Solutions
 *  
 *This file is part of tagAR.
 *
 *tagAR is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 *the Free Software Foundation, either version 3 of the License, or
 *(at your option) any later version.
 *
 *This program is distributed in the hope that it will be useful,
 *but WITHOUT ANY WARRANTY; without even the implied warranty of
 *MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *GNU General Public License for more details.
 *
 *You should have received a copy of the GNU General Public License
 *along with this program.  If not, see <http://www.gnu.org/licenses/>.
 * 
 *You can contact the developer/company at the following:
 *
 *Phone: 00923224138957
 *Website: www.mntechsolutions.net, http://tagar.mntechsolutions.net
 *Email: support@mntechsolutions.net , mustafaneguib@mntechsolutions.net
 *
 *
 */
 
 
Please note: There are two branches, master and development. The master branch contains production ready code, while the development branch contains code which is currently under development and may not be stable at the current time.
 
Current Version of Project Code: 2.1

To all open source developers out there. We need your help in further developing and improving this application.
We have published this appplication on to Google Play and you can download it for free from the following link 

https://play.google.com/store/apps/details?id=com.tagAR


This application has been tested on the following devices:

Samsung Galaxy Ace GT-S5830 running Android 2.2.1

We need your help in testing this app on the other Android powered devices as well and tell us if it works on them.
We also need your help in developing fixes if you find any, and to return them to us so that we can incorporate them into the project.
Mean while we will also be working on improving this app, by adding new features and fixing bugs if we find any.

This is version 0.3 of the application. We will be using the following versioning:
The major(before the period) is incremented when a new feature is introduced into the app. 
The minor(after the period) is incremented when a bug is fixed in the app.

This app contains two parts, a client part(Android code), and the server part (PHP code). The Android part is the code that we run as an apk file, 
while the server part has been hosted on our server.

A history of changes starting from Version 0.0 till Version 0.4

We have made some changes and fixed some bugs from version 0.0 and 0.1.

Changes From Version 0.0 to Version 0.1

As expected some of the mobile devices, such as HTC Wildfire S did not show the textures built by OpenGL ES in Screen6.java activity.
I also tested the app on Galaxy S and that infact only showed white objects, but no textures. To fix this i decided to replace the OpenGL ES
graphics with Canvas graphics, and drawables. Now showing these graphics should not cause a problem as i am now using the standard techniques
and Canvas graphics are supported on all of the graphics as far as i know. Due to this the code base has significantly been reduced in size.
I have removed the package com.OpenGLModelObjectLoader all together as that package was responsible for drawing OpenGL ES models. In place of the package
i have included an inner public class CustomView which extends the View class in the com.Screens.Screen6.java class.
Now this new CustomView draws the graphics onto the screen. However, at the moment i am only assuming that this new technique will hopefully work on all of the
mobile devices, but i will not be certain until i test this app on all of the mobile devices. So at the moment there is no guarantee that this will work on all of
the mobile devices, but theoretically this should work on all of the mobile devices.

Another change that has been possible due to using of Canvas graphics is that i can now show text on top of the tags. This text 
is the part of the comment that the user enters when adding a tag.
		

Changes From Version 0.1 to Version 0.2

In this version i have made some minor changes only.
Firstly, i have fixed the screen orientation for all of the screens (activities in the com.Screens package) to landscape. This
was to allow for easier data input.
Furthermore, i have made a small change in the logic for displaying the tags. In version 0.1 i was getting the tags whose difference 
between the direction value and the current value of the direction given by the accelerometer was between -10 and 10. I have increased
this window to -20 and 20. Now the tags will be displayed for a loner period of time.

Lastly, in the server code (being run on the web server) i have decreased the distanc radius to 5 km, that is tags which are within 5 km from
the retrieved geo-location data will be shown, rather than 10 km as before. The number of tags retrieved is still 10. 	

The code that will be hosted on github.com will always be of the latest version. For example at the moment the code that is online is of version 0.2.

Finally we are working on setting up and writing tutorials on the project in the wiki, so check out the wiki section regularly for latest content.


Changes From Version 0.2 to Version 0.3

In this version i have made some major fixes to the tagging screen. 

Firstly, i have catered the  app to be run on different screen sizes (Our inital testing has given us positive results, but this 
testing has been done on Samsung Galaxy Ace GT-S5830 and also on the Android Emulator (of different screen sizes), but we still
need to test this on other mobile devices.

Secondly, we have tried to make the selecting of the tags more accurate, and have tested it on the above mentioned, but then 
we will not be sure until we test it on actual mobile devices.

Finally, we have catered a scenario where the app could be put in the background when the Home button is pressed, while the location 
data was being retrieved from the providers. To solve this we have decided to stop listening for updates as soon as we get the location
updates. This also allows us to save the battery and prevents the system to constantly ask for updates.    
	
Changes FromVersion 0.3 to Version 0.4

Firstly, in Screen5.java the app was crashing if the gps and wireless providers are not enabled when the activity runs the 
onPause method before being redirected to the settings screen to turn on the gps and wireless providers.

Secondly, the tags are being shown about 50 units to the right of the last tag. This is to cater tags that overlap each other.
		 
Thirdly, i have made the touching (selecting) of tags more robust, where only those tags which are being shown on the screen will be selected. 
Before this fix even those tags (not being shown on the screen) were being selected and their data being shown in the modal which were close by to the tags being
shown on the screen. By introducing this fix now only the tags that are shown to the screen are being selected when touched.

Finally, i have added some more information in the About screen (Screen7.java).

Changes From Version 0.4 to Version 1.0

The version has jumped from Version 0.4 to Version 1.0 is because in this update we are releasing a new feature.
Please the wiki at https://github.com/mustafaneguib/tagAR/wiki for more information about the versioning being followed.

Firstly, we know that the login facility was a pain to use. Having to login again and again when ever you exited the application
you had to enter your email and password again. we know that it is a pain, because we ourselves didn't like that, but we have 
developed a feature which will make your login worries fade away. We are proud to introduce the much needed new "remember my login 
details" as we like to call it. In this feature the user will only have to login for the first time (we can not guess what your login
details are for the first time, though that may not entirely be impossible... :P ) and then if the login is successful we store those
login details encrypted in the internal memory of the mobile device and make it private so that no other unwelcome app can gain access to
the login details. The next time you will login the system will check if such details exist and will show your list of emails (yes, we are 
storing a list of emails so that you can login easily via different accounts if you have and not just one). All you have to is to touch one of
the emails being shown once, and you will be redirected to the login page with the login details already entered (see didn't i tell you how awesome and
easy it was going to be to login into tagAR now :D ).

Secondly, a minor change is that we have renamed the Exit option in Screen5.java to Exit(Logout) so that the users know that they will be
logging out when they select this option. 

Finally, in order to support this feature we have added some support code which connect with Screen3.java so that we can pass the required
data to Screen3.java. We have mentioned in the code which are new additions and changes.
	
Changes From Version 1.0 to Version 2.0

New features have been introduced and some have been improved.
Firstly, we have improved the tagging feature. In the earlier versions the user had to actually
hold up the mobile device in the direction of the tag to be posted while typing the comment in 
order to get the tag in the intended direction. Now we are saving the value of the direction before hand when 
the tagIT button is clicked. More information regarding this has been added in the code (Screen6.java).

Secondly, we are now storing the accuracy of the tag in the database and showing it in the description of the tag, as after use of the app, we have found out
that the location provider does not give 100% accuracy due to a number of different factors which we will not discuss.
So the tag the user may post may not be accurate, so we are showing what the accuracy of the tag is.

Thirdly, the new feature being introduced in Version 2.0 is the ability to post pictures of the location being tagged. The user 
will have the option of taking pictures at the time the tagit button is pressed and the image will be uploaded to the server. When the 
tag will be retrieved from the server, so will the image be, and will be display as a small thumbnail in the tag's modal, and
upon touching the image a bigger version of the image will be shown in a new modal. We are keeping the images to be of 80% quality than the original
and the images size is 350 by 350 pixels. To enable the choice, we are using shared preferences to store the setting, and the setting can be changed
in the Settings option which can be found on the Menu Screen. This setting will be enabled by default.

Lastly, we have developed a new Menu Screen, with graphical icons instead of the boring list. These images have been made by
us and we have used ImageView to place them in.


Changes From Version 2.0 to Version 2.1

A major bug was discovered and fixed in this version of the app. The bug was that if the user decided not to allow the
downloading and uploading of images associated with the tags, then the app should the please wait modal indefinitely until
the user himself cancelled by pressing the back button. This problem did not occur if the user decided to allow the app
to download and upload images.

Another change made was that, the app downloaded and uploaded the images by default. I had disabled this feature by default.
The user can enable this feature in the Settings Page.

Some changes have been made to the server code as well to reflect the change and backward compatibility has been provided to
allow the apps of older version to function properly.
	
	
	

About

tagAR is an augmented reality tagging application developed for the Android Operating System, and has been released under the Open Source license GNU GPL Version 3.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published