Auto Respond 0.9

I was doing some thinking yesterday about the fact that I had a lot of duplicated code. So I did some looking around as to how I could get rid of it, and have 1 instance of all of the duplicate code that I had.

I’ve said before that this is my first Android project, and it is also my first major Java project. I took a class in Java in college, but it was my first ever programming class so a lot of the information presented to me in the class didn’t really sink in.

I read up yesterday on static variables and static methods, and I used that to get rid of A LOT of duplicate code in my app. Streamlining this code seems to have made navigation a little smoother from one screen to the next.

While doing this, I also changed a few things. My settings menu was starting to get cluttered, and is just going to get even more cluttered as time goes on, so I separated it into multiple menus. There is now “Do Not Respond List”, “Dock Options”, and “Phone Options”, and a couple loose end options that remain on the main settings screen.

I also implemented an option in my SMS to GPlus app to have the permanent notification be optional. I added this into Auto Respond as an option in the settings menu. (Which is actually what led to all of the code re-arranging and consolidation.) This option is on by default, but can easily be turned off.

As I was doing this, I also realized that if Auto Respond is enabled and you reboot or turn your phone off, it may not be re-enabled on boot. That is no longer the case. Also, the dock listener may not have been active on boot in previous versions. Which means that when you dock your phone, Auto Respond wouldn’t automatically turn on unless you had opened the Auto Respond app after the phone turned on. That service is now started on boot, if the dock options are enabled.

And lastly, TapForTap (the new ad network that I am using in the free version) just updated their SDK and changed the way their service works. I included the new SDK in the new version of Auto Respond Free. Part of this change is that the ads from TapForTap are now single ads, instead of putting 2 apps in 1 banner sized ad. You should, however, see a mix of ads from TapForTap and ads from admob.

I noticed when I initially implemented TapForTap that the ads didn’t display on devices running anything prior to Android 4.0. I’m hoping that this is fixed with the new SDK but I haven’t tested it on my Droid 2, which is the only device I own which has anything prior to 4.0. (and unfortunately, the ads don’t seem to show AT ALL on emulated devices. Even with 4.0 or 4.1) If it’s not working properly, I guess those of you running 2.2 or 2.3.x can enjoy ad free Auto Respond for a while until I get the ads fixed.

Full change log for version 0.9:

• Start services and show notification (if enabled) on reboot
• Re-arranged settings menu
• Made permanent notification optional
• Cleaned up A LOT of unnecessary code (Seems to have improved performance as well)
(Free Version Only)
• integrated updated TapForTap SDK

Both the free and paid versions 0.9 are live in the Google Play Store right now.

Free:
https://play.google.com/store/apps/details?id=com.havens1515.autorespondfree

Paid:
https://play.google.com/store/apps/details?id=com.havens1515.autorespond

That was quick

I’ve developed my first version of my SMS (Twitter) to G+ app. It works as I need it to work, and at the beginning of November. all of my #EFOTD tweets will be automatically texted to me, then forwarded to G+.  I also added functionality (for myself, it can be optional if I release it as a public app) that all tweets tagged #GPlus will be forwarded too.

Thanks to the great people at IFTTT, I can now send my tweets to my phone, then auto forward them to G+.

SMS to Google Plus

I’m going to begin working on an app that will forward SMS messages to Google+. I’m doing this so that I can update G+ from Twitter, by incorporating it with a recipe on IFTTT. (Trust me, it works. It took me a LONG time to devise a working way to do this, since IFTTT got rid of Twitter triggers and G+ doesn’t have an API yet.)

The app will look for a specific username, and specific hashtag(s) in texts received from IFTTT. If the text begins with “username: ” and includes the hashtag in the SMS somewhere, it will cut off the leading username and forward the SMS to Google+.

In order to do all of this, the way that I plan to use it, you will need an IFTTT account, and you will need SMS status updates turn on within Google+. To enable SMS status updates on Google+, you need a phone number from the US or India. If you are not in either of those countries, there are ways around it using Google Voice and a proxy within the US or India (Google search it if you are interested.)

This app has been inspired by a personal need for such functionality. Initially, I am going to be developing the app solely for my use. I need something to be working properly by the beginning of November, so the first version will ONLY work with my username and the specific hashtag that I need to be forwarded to Google+.

If people show interest in this app  (via comments or +1 on this blog entry, sending me e-mails, tweets, however you want to display interest) I will work on making a public version that is able to be personalized for your username and multiple personalized hashtag triggers. But step 1 is to get a working version for myself written and usable by Nov 1.

Let me know if you’re interested!

Auto Respond Free "Derps" fixed

I had a few small errors in the free version of Auto Respond. Not sure what even made them come to mind, but they did.

  1. The menu is supposed to have a “Buy” link (which takes you to the market to purchase the full version) in the free version, and a “Donate” link (which takes you to paypal to donate to me) in the full version. In my last update, I accidentally made them both “Donate”. This has been returned to normal.
  2. In both versions of the app the “Feedback” page, which shows with each update, linked to the market page for the full version of the app. This now correctly links to the free version if you are running the free version, and the paid version if you are running the paid version.
Neither of these really affect functionality of the app, but I do want them pointing the user to the correct places. I’m sure nobody is going to want to donate when they still have ads in the app, and I definitely want feedback to appear on the correct app. If you haven’t done so already, please go pick up the latest version if you are running the free version. (The paid version was not updated. There were no issues in the paid version.)

Auto Respond 0.8

I just released a new version of Auto Respond. The scheduler is NOT working yet, but I figured that I had done enough work on other things to make it worth releasing a new version.

Change Log:

  • Default message is now editable
  • “About” screen is now “Help”
  • Added feedback page
  • Auto Respond toggle is now color coded
  • Initial setup for scheduler (doesn’t work yet)
  • Made layouts look more consistent

Free Version Only:

  • Moved ads 
Check it out on the Google Play Store
Free: 
paid: (No ads – $.99)
https://play.google.com/store/apps/details?id=com.havens1515.autorespond

It’s available now, so if you already have it, go get your update. If you don’t already have it, go download it!

Still going strong…

Just wanted to let you guys know I haven’t fallen off the face of the earth. I’m still working, but my medicine is making things tough. Not only do I not have as much energy as normal, but it’s kinda hard to think straight sometimes. (Yeah, this stuff really throws you for a loop.)

OK onto the news: this schedule thing is tough. I knew it was going to be, and it has proven that my initial thoughts were correct. There’s a lot of variables, a lot of information, and a lot of different ways to possibly organize all of that data. But I’m getting close. Also, it’s something I’ve never really done before, so I’m learning as I go. I’m the kind of person though, that I don’t release something until it’s done right and I’m completely satisfied with it. My dad always said “If you’re going to do something, do it right the first time.”

The good part about that, is that when I finally release the next version, you can assume that there will be no issues, and it will work 100% as expected. The bad part is that it will take a bit longer, because I’m always looking into new and better ways to do things and constantly testing.

That being said, here’s the new stuff I’ve got for you:

  1. All of the pieces of the screen that I showed you last time are working now
  2. I’ve created a once-per-update screen that asks users to rate my app or report issues
    1. This is very important to me and other developers. It helps get our apps seen, and helps us as developers improve our apps.
    2. If you have any suggestions, issues, anything else, please let me know via email before giving my app a bad rating.
  3. I’ve changed/improved some of the existing layouts. 
    1. I’ve learned some new techniques as I go, and have put them to use to make things more consistent throughout the app.
Right now there is very little left to do for the scheduler:
  1. save the information somewhere so that I can display your existing schedules
  2. create the schedule itself 
  3. Allow the schedules to be edited, deleted, and enabled/disable once they are created

I’ve already created the piece that reacts once the schedule is triggered, so even that is done.

Here are some screenshots of my recent work
NOTE: I have noticed (here in this screenshot and previously) that the empty space in the “Days of the Week” dialog is larger than the empty space in the “Months” dialog. I just fixed that, so they will look more consistent in the final version.

Progress

OK, I have made some small progress this week (most of which was today.)

I fixed the issues listed in the previous post: The time/date now updates every minute, and it no longer switches tabs on orientation change. I still haven’t looked into how to switch tabs with a swipe, but that’s more of a feature than an issue. (I am planning on adding that before releasing the next version though. As long as it doesn’t prove to be too much of a pain.)

I’ve designed a basic setup for the schedule creator. It doesn’t do anything yet, but the layout is there. This is probably what the “final” version will look like. I say “final” in quotes because I have more plans for it, but those plans will likely not happen until future versions. This is what the initial version will likely look like though.

I’ve also made some other small changes/enhancements throughout different parts of the app. Today I went through and did away with a lot of duplicate layouts, and optimized some small code bits as well. Since this is my first Android app, I’m still learning the best way to do some things. The more I program, the more I realize that some of my initial code was not the best that it could be, so I’ve re-looked at some of that old code and optimized it. Hopefully that will result in a smaller .apk file, and possibly a smoother running app.

In case you haven’t noticed, I’m constantly changing the look and the ROM on my phone, so the navigation bar (among other things) is always changing in my screenshots. I point this out because I have a permanent menu button in the nav bar in this shot. That will not be there if you are running stock. (Or if you are running a device with hardware keys instead of software keys.)

Auto Respond – Scheduled response times

I’m working on a pretty beefy scheduler for Auto Respond, which.right now is still in the early stages. I’ve got the basic layout pretty much setup, and I’m working on starting work on the scheduler itself.

I’ve changed the layout of the main app screen. It is now a tabbed screen. The first tab is the Auto Respond tab, which includes the layout that you are used to seeing when you open the app, and the second tab is the scheduler. When I start work on a timer, there will be a third tab for that.

A few small issues that I have noticed, that I have not even attempted to tackle yet:
1) The date and time on the scheduler screen do not update dynamically. That means that if it is 1:00 right now, it will still display 1:00 when it turns to 1:01. I will work on fixing this, it is not priority #1 though.
2) When you change orientation of the device, you return to the first tab. Again, this is something I will work on later.
3) It doesn’t switch tabs on swipe, only when the tab is clicked (I’ll have to research how to do this)

Here is a preview look at what the screen will look like:

Obviously, once you hit that “New Schedule” button, it will take you to a new screen to create a new schedule. The goal is to then create a list of schedules underneath that “New Schedule” button, and have that list long-clickable so that they can also be edited and deleted. (Now that I think about it, I should probably make them toggle-able as well.)

I have not yet completed any of that, what you see in the screenshot is as far as I am right now.

Another goal is to make the schedules able to be based on time, day of the week, day of the month, and even month. So you can setup an auto response that is active from 10:00-12:00 every Tuesday in February and March. Or you can setup an auto response to be active from 9:00-1:00 every Monday. And you will be able to attach a specific message to this scheduled response. This message will be able to be entered at the time of creation of the schedule, you’ll be able to select a preset message, or you can enter your currently active Auto Respond message.

Again, these are just goals, and I may not be able to do all of these things (especially in the first iteration of the feature.)

The screenshot above is from my Galaxy Nexus, but I have tested this on my Droid 2 as well, and it looks nice on both devices.

Coin Database Program

Another project that I work on occasionally is a program to database my coin/money collection. I have a rather extensive collection of coins and bills from around the world (mostly from here in the US, but some are from other areas.)

One of the things I have wanted to do for a while (since I was about 10) is create a digital catalog of my collection. I’ve tried doing it with the Microsoft Office suite, and none of the programs seem to do quite what I want to do. The closest was Access, but Access is a mess and not at all user friendly, so I gave up on that.

I decided I wanted to make my own program to organize my collection. I have created a UI for it, I have talked to another collector and thought about all the things we would need to include for each item, I have created a way to auto-fill the drop-down boxes from an .ini file, I have started work on a method to display a picture of the coin/bill selected and the location of the mint mark on the item, and I have a lot of ideas of how I want things to look and work.

My main road block right now is storing the data. I’m not quite sure how I want to organize the data, how I want to store it, or save it (and restore it.) I think I need to talk to someone who knows a little more about data structures, databases, and/or data storage techniques.

Here’s a quick peak at what the program looks like:

If you think you could help me with the data structure aspect of it, or know of someone who could help me with it, let me know. It would be much appreciated.