Category Archives: Android

App Idea

I was going to pitch a new app idea to you guys, but as I was writing I realized I could actually just build it into Auto Respond instead.

I said last post that this app would be useless if both “Respond to texts” and “Respond to calls” were disabled…. but that’s not entirely true. I also have an option to “Silence Ringer”. If both respond options are turned off, Auto Respond could act like a “Quiet Hours” app.

After realizing this, I have decided that I AM going to allow the user to turn off both response settings, but only if the silence option is active. Basically, at least one of the 3 of those options (respond to texts, respond to calls, or silence ringer) has to be enabled… and if none of them are, THEN the app would be useless.

I am also going to add some new things to schedules also… you will be able to set each individual schedule to use the default app ringer options (set in the app settings), make no changes to the ringer, or silence/vibrate the ringer. Also, for each schedule I am going to add the options for responding to texts/calls. These will likely have the same kind of choices… use the app default setting, enabled, or disabled.
For new and existing schedules, these will default to “Use app default”, since that’s what they are doing now.

This will make it so that you can actually create a schedule for quiet hours. Don’t want to be disturbed when you’re sleeping? Simple, set up a schedule for when you normally sleep and set it to  silence the ringer when it’s enabled. Don’t sleep at the same time every night/day? Set up a generic schedule with the “silence ringer” option enabled, keep the schedule disabled, and use the manual “start” and “stop” buttons when you go to sleep and wake up.

As a note – I have not written ANY of the code to actually do this yet… it’s just an idea right now. But it shouldn’t be difficult to implement. If it’s easy enough, I may actually have it included in my next update.

Request for Auto Respond

Someone today posted a review with a request that responding to text messages become optional, like responding to phone calls is. I have actually been thinking about doing this for quite some time, and will spend a bit of time making it a reality soon.

I plan on changing around the settings screens a bit, to make it so that the two options are actually on the same page. I want to do this so that you cannot disable BOTH options at the same time. The app is useless if both options are disabled.

If you aren’t following me on Twitter (I’ve actually posted more about it on FB than anything, but w/e) you might not know that I’ve been sick for a few days. I didn’t go to work today, and I actually slept almost all day. I’m feeling much better after a day off, (and MUCH sleep) and I’m hoping to be back to 100% soon. If I do get better I plan on doing some programming this weekend. Unfortunately, this is a busy weekend. I’m going to a hockey game tomorrow night and, because of the playoffs, football is on both Saturday and Sunday this weekend. So I may not spend as much time as a usual weekend session, but this option addition is a simple thing that I should be able to push out in no time. (Sorry, I enjoy my football.)

I still have some other things to finish, like adding analytics to the paid version, but when they are all completed I’ll release an update. Hopefully that update will come this weekend or early next week.

If you have requests, PLEASE let me know. I’d prefer it not be in a review, because I may not see those immediately (or ever, if a lot of people end up leaving reviews simultaneously.) You can leave requests here in my blog or contact me on Twitter, Google+, or by email. My Twitter, Google+ and Email address are all available in the app description on Google Play, and are also in the app under the “Credits” screen in the menu.

One last thing:
All of the reviews that I HAVE received, on both versions, have been 5 stars. THANK YOU for that! I am trying to keep everyone happy (including myself) and sometimes that’s not an easy thing to do. But you guys seem to appreciate the work that I’ve put into this app, and I’m thankful for that. Keep the reviews coming!! 🙂

As always, any requests or issues, please let me know and I will look into it!

What I’ve been working on

As I’ve said before, I’m a casual programmer, and therefore take breaks occasionally. The past week or 2 have been one of those breaks.

Most of my time recently has been on getting my Nexus 10, replacing my N10, rooting my N10… I think you see the trend. (And the holidays just passed, so there was some extra time with family/friends in there too.)

I have done a SMALL amount of programming in that time… I played with Google Analytics a bit to see some of the things that can be done there. So far I have only built it into the free version, but will likely be copying that work into the paid version before I release the next update (and adding to it, since there are parts of the app that are not accessible in the free version.)

With analytics I am collecting the following:

  • Screen views
    • What screens the user views, how many times each screen is viewed, and how much time is spent on each screen
    • This includes basic screens as well as settings screens
  • Clicks
    • How many times each button is clicked
    • How many times list items are clicked
      • List items include your list of preset messages, do-no-respond list contacts, and in the paid versions, schedules.
      • This does not send any information about what information is IN the list item, just the fact that you clicked it, and what type of list item it was (a message, a schedule, etc.)
    • How many times list items are long-clicked
      • See above item
    • How many times list items are edited/deleted from the long-click menu
      • See above item
Things that have not been built in, but likely will be before I release an update:
  • Settings
    • What settings are being changed, and how the settings are being used
  • How often the response message is changed
    • Again, no information about what the message contains will be sent, only the fact that the message has been changed
Things that are NOT collected as part of this process:
  • Any kind of identifying information
    • Things like age, gender, name, account names, passwords, etc. will NOT be collected from analytics, or in any other manner, and never will be.
“Personal” information that IS collected:
  • Location
    • When I was doing my testing Google Analytics was able to tell me what town I was in, probably based on IP address.
    • This is NOT an exact location. I can NOT see that you are using my app in McDonald’s on Main Street in New Orleans (I don’t know if such a thing even exists, it was just a collection of random places) I can only see that the app is being used in New Orleans.
    • I most likely will not do anything with this information, aside from possibly seeing which countries use that app the most.
Just an FYI – this is information that probably 90% of apps out there are collecting, so I am not doing anything that other developers aren’t already doing. The only thing that I’m doing different is that I’m being 100% straight up about the information that I will be collecting. No fine print, it’s all right here in a public blog in an easy to read bullet list.
I have also found an easy way to exclude my own devices from this collection. I don’t care how I interact with the app…. I KNOW how I interact with the app… what I want to know is how my USERS interact with the app, and what features/settings they use the most.
I will use this information to improve the features that are used most often.

Also on the list of changes I have made:

  • changed some more “Cancel” buttons into “OK” buttons
    • I kept some as “Cancel” when it made sense
  • Added a “Share App” option to the menu
    • This will open a share dialog, where you can share a link to the app in the Play Store via any installed app that receives a share intent (Facebook, Twitter, Messaging, email, etc.)
I have not really been working on any new features, just small improvements. The next new feature that I will work on (when I decide to start working on new stuff again) is the ability to send personalized responses to specific individuals. I talked about this in one of my previous posts. It’s the ONLY feature request that I’ve received from users, and I’ve had multiple people ask for it.
Personally, I’d like to get a widget working first. But nobody seems too worried about that right now except me, so I’ll put that on the back burner. (Plus I’ve tried a couple times already, and been unsuccessful with it.)
As usual: Any requests, comments, concerns, etc…. you know where to find me. I’d especially like to get some feedback on what you think of the analytic information I’m going to collect. So if you have anything to say about it, feel free to leave a comment.

Nexus 10 Replacement – An underdog story

In case you don’t want to read all of this, I’ll start with the bottom line: honesty is NOT always the best policy.

As most of you know from my previous post(s), I purchased a Nexus 10 from Walmart on Christmas eve. It was the normal $499.99, same as the Play Store would charge. I was having fun with it, playing Grand Theft Auto Vice City, looking at what ROMs are available, etc.

A few days after buying it, I walked in the door to my apartment with the tablet in hand, bent over to take my shoes off, and the tablet slipped out of my hand. The screen basically shattered. The tablet fell maybe 2 feet, but the problem is that it landed on its side then crashed face down onto a hard floor.

I didn’t do anything immediately, figured I’d take care of it in a few days…. fast forward “a few days”. This past Friday, I wasn’t feeling well. Called into work, called the doctor, made an appointment, and figured “while I’m out, might as well take my tablet back to Walmart and get a replacement.” I was sadly mistaken with that assumption.

Went to the doc, did some tests, found nothing. she said I probably had a virus that starts with a sore throat and ends with a cold, since that’s what’s been going around. OK cool, not totally sick, just not feeling well. Went to Walmart.

Walked into Walmart, told them what happened, it wasn’t the store I had originally purchased it from and I didn’t have the receipt, they claimed it was out of the 15 day return period, so they told me to go through the manufacturer.

When I get home, I go onto the play store to call Google. They say they don’t fix N10s, Samsung does. They gave me a number to call Samsung. Their tech support says, we don’t do replacements. Let me transfer you. He transfers me.
“This department only handles phones. Let me transfer you to tablets.”
“Oh, this is carrier tablets, let me transfer you to wifi tablets.”
“We don’t support the Nexus, Google does, let me transfer you.”
“That’s a Samsung device, they handle that.”
…I think you see about how this went.

I did this for 2 hours until I got “OK, let me make a repair ticket for you. You will be charged for this repair, because it’s a non-warranty repair.”
I said “That’s fine, I just want it fixed. I’ll pay if I need to.”
“OK, the ticket is created, here’s the ticket number, let me transfer you. Give them your ticket number when they answer and they’ll go from there. *transfer*
*give ticket number* “Oh, this is a wifi tablet, this is the carrier tablet department”…. guess what comes next…. “Let me transfer you.”
*transfer*
*robotic voice* “Please wait.” *15 second pause* “Please wait” *few more seconds* *click*

Now I’m beyond upset. Walmart won’t help, Google won’t help, Samsung won’t help.
Back to Walmart. They say go to the store I got it from, they may be able to do something. On the way to the other store, I realized the receipt is in the bag… which happens to be in my back seat.

I then go into Walmart #2, tell them what happened, show them the receipt, we realize it’s only been 11 days, not 15… they’re about to exchange it! Until they realize the charger is not in the box. I say “We can just pull the charger out of the other box and you can send me home without a charger”
“I have to check with my manager before I do that”
A bunch of arguing between me and managers… turns out they won’t replace it because it’s “neglect” and their return policy won’t cover that. I offer to buy the replacement plan that they offer. (That nobody offered me with my original purchase, but had been mentioned at this point)
“I’ll even buy it on THIS tablet, do the exchange, and buy it again on THE NEW tablet. That’s $90 in your pocket to do an exchange.” ($45 per plan)
Come to find out, the replacement policy doesn’t cover neglect for items over $150. It’s only an extension of the manufacturer’s warranty, and doesn’t even take effect until AFTER the end of the manufacturer’s warranty. So basically, it’s useless to me.

Went home, bothered Samsung and their support team on Twitter, they asked me for a ticket number, I gave it to them.

ADDENDUM: another customer at Walmart told me to take it to another Walmart and claim that I received it broken, so I went home, flashed a factory image and relocked the bootloader. So if I do make that claim, it appears as if I had never even turned on the tablet.

Saturday – I reached out to Samsung Support via Twitter again, they say “That ticket was closed. Your warranty does not cover physical damage but you can call 1-888-987-4357 to discuss repair options.” Awesome. Did some more back and forth with them and got nowhere.

Called the number, told the guy I want to speak with a supervisor. Told him I am willing to pay for a repair, I just want this issue taken care of. Of course, there is no supervisor available, so I’m stuck. Eventually the guy tells me about their repair place, gives me their number, tells me how to get Google to work with me (he tried contacting Google multiple times, but their phone number continually hangs up after the “Please wait”) and he was actually more helpful than anyone else up to this point.

Call it quits for the day.

Sunday morning – (This is where the honesty part comes in)
Went up to Walmart #3. Took the tablet to Customer Service, told them “I opened the box, and it was cracked like this.” roughly 5 minutes later, walk out with a gift card (WOO HOO! About time!)

Went back to Walmart #2 (original place of purchase) use gift card to get the last N10 in stock.

(I’m sure there’s a few small and semi-important details that I left out, but that’s the majority of the story.)

Lessons learned:

  1. Buying a Nexus device from anywhere other than the play store seems to be a bad idea. Nobody wants to support it. (If I had a Google Play order number I could have done the replacement on-line from the Play Store.)
  2. Samsung support does not know what they are talking about, and enjoys tossing people around their phone support like a hot potato
  3. If you’re going to buy a Nexus 10, buy a case. (I have one on the way from Amazon.)
  4. Walmart’s “replacement plan” is useless on items over $150
  5. And most importantly – honesty is NOT always the best policy. A return policy is the best policy. (I tried being honest and it got me nowhere.)
ADDENDUM: For the record, I will refuse to buy another Samsung product in the future, and will no longer be pushing for others to purchase ANY Samsung device. The lack of customer service that they provided was staggering, and I would not wish that experience upon anyone.
Prior to this experience, I was the main reason that friends and family purchased items such as the SGS3 (my brother, his girlfriend AND a college friend all bought this on my recommendation) and the Nexus 10 (my mom bought one because of my recommendation) and I’m sure there are other examples. Samsung has lost a powerful ally in this battle, and have turned me into a powerful enemy.

Don’t buy a Nexus 10

Just don’t do it. I dropped mine, cracked the screen and have now spent over 2 hours on the phone trying to get the right department to repair/replace the thing.

I first went to Walmart where I bought it. They wouldn’t replace it because it’s been 15 days, and their return policy is 14. Then called Google, but they wouldn’t help me because I bought it at Walmart, not on the Play Store. Then I called Samsung… about 10 times. Transfer, promise to get it taken care of, transfer, promise, transfer, promise, transfer, promise, over and over again.

I have NEVER been this upset about trying to get a product replaced IN MY LIFE. I have LITERALLY lost count of how many people I have spoken to on the phone between Google and Samsung. (I lost count somewhere around 10.)

It has been FIFTEEN DAYS! I should be able to quickly get a replacement for this, or at least quickly get approved for one if there are no replacements immediately available.

Sorry Samsung, I LOVE my Galaxy Nexus, I LOVED my Nexus 10 (for the 10 days or so before the screen cracked) but I will NEVER buy another device from you after this Customer Service fiasco.

UPDATE:
A couple things:
1) Walmart ALMOST replaced it for me, after going there 4 times and realizing somewhere in there that it had only been 11 days, not 15. But in the end they decided not to because I caused the damage.
2) I reached out to Samsung support on Twitter, and THEY responded so maybe they will do something. We’ll see.

At this point I’ll be glad to even PAY to have it repaired, but Samsung pushed me around so much… I ALMOST got a service ticket to pay to get it fixed, but not quite.

Still developing…

Auto Respond 1.2.7.1 – ICS crash fix

Sorry guys, there was a function that I thought was introduced in 4.0, and apparently it was introduced in 4.1…. long story short, if you’re running Android 4.0.x then Auto Respond 1.2.7 may crash on opening. (Android 2.x should be fine, 4.1.x and 4.2.x should also be fine)

1.2.7.1 fixes this, I accurately changed the cutoff for that function’s usage from 4.0 to 4.1.

1.2.7.1 was JUST published, so it may be a while before it is live. If you haven’t updated to 1.2.7 yet, you may want to wait until 1.2.7.1 is live on Google’s servers. Sorry for the mixup :-\

Auto Respond 1.2.7

Auto Respond 1.2.7 has been published, and should be available right now on the Play Store. The only difference is the tutorial.

Let me know what you think about the tutorial, and if there is anything that needs to be changed/fixed. (I saw a few small issues, but the things I noticed were small aesthetic issues, not performance issues)

Auto Respond Tutorial

The last couple days I have been working on a tutorial for Auto Respond. This tutorial will display the first time Auto Respond is opened, then will not show again. It is an overlay on top of the main screen.

There is also a new option in the settings menu to force the tutorial to show again. But even when that is turned on the tutorial will show once, then it will not show again unless you again enter the settings and turn on that option.

I have tested the tutorial on Android 4.2 and 2.3, and it seems to work well on both.  The only thing I have not done yet is built it into the free version, which includes ads. I may have to find a way to wait until after the tutorial ends to load the ads. This may be easy, I just haven’t tried yet.
Here is a screenshot of the first part of the tutorial:
As you can see here, the tutorial disables the entire interface, except the OK button at the bottom, and highlights the specific piece that it is referring to. This shows the user EXACTLY how and where to interact with the app, and how the app works.
I hope to release this update later today. The sooner the better, because it will help new users understand how to use the app.

Auto Respond 1.2.6 and beyond

I just published Auto Respond 1.2.6.

Not a whole lot of changes in this version, but I think they are important changes:

  • Finished standardizing the look and feel throughout the app
    • Settings screens now have “OK” and/or “Cancel” buttons in them
Also, I went out and got myself a Nexus 10 on Christmas eve (for those of you who are wondering,  I found it at Walmart. Same prices as on the Play Store.)
I know it’s not really an app for tablets, but I have confirmed that Auto Respond DOES open properly, turns on properly, etc. on a tablet. I know there are apps out there that allow you to send and receive SMS messages on a tablet (such as DeskSMS) but I have not yet tested it with such apps. I’m not sure if the app actually PERFORMS properly on a tablet with such apps, but I have confirmed that it at least opens and it looks OK on a tablet. (No FC’s or glaring bugs that I found. The new settings look caused some FC’s on the tablet, but I fixed them.)
I do plan on making sure that it is compatible with apps such as DeskSMS at some point, and giving it a tablet UI, but I’m not sure exactly when that will happen. (I’m sure not too many people will be using this app with a tablet, so it’s not on the top of my to-do list… unless some of you let me know that you will actually use that functionality.)
As I’ve said before – this is my first Android App, so I’m kind of learning as I go. With the tablet implementation it will be another learning experience.
I did get a request over the weekend, so I will be thinking about how to implement that. The request is the ability to send a specific response to specific contacts, or contacts that follow a certain pattern. (In the case of the individual request, anything that contains @theRequestedDomain.com) I have received similar requests in the past, so this is something I am going to make a priority.
I’m not exactly sure how to implement this, or how to properly test it, but I have some ideas to get me started.
As usual, I just published this release. It may be an hour or 2 before it’s live on Google’s servers. And if you find any bugs or feature requests, let me know.
Lastly, I hope everyone had a safe and enjoyable holiday, no matter what you celebrate. I hope you all got the gifts you were hoping for, and I wish you all the best in the upcoming new year!

More Polishing

I just spent a few minutes polishing up my layouts.

  1. layouts which have a list view in them (such as the “Preset Messages” screen) previously have no separator between the list view and the button(s) at the bottom of the screen (On Android 4.0+, no separator is needed on 2.x). This was because the way that I had it set up, that separator would end up on top of one of the list items if the list was long enough. I found a way to fix that, so now ALL buttons on the bottom of the screen have separators.
  2. I found an easy way to add Cancel and OK buttons to my settings screens. Unfortunately, this is not a simple add the buttons to the view and I’m done. I need to now go through all of the settings screens and make the cancel button return the settings to their previous values. This is not hard, it is just time consuming. (And considering I don’t have a whole lot of time to program this weekend, it won’t be done immediately… likely early to mid next week.)
  3. I added a Cancel button to the bottom of both the Credits and the Help screens.
  4. I added a separator above the buttons on the purchase dialog, when clicking on “New Schedule” in the free version of the app. (Again on Android 4.0+)
  5. The “Do Not Respond” contact picker screen looks exactly like the “Preset Messages” screen. The Sort button is not enabled right now, as I have not worked on sorting the list of contacts yet. I’ll probably work on that early next week as well. (Unfortunately, sorting is not my strong point. But now that I have schedules sorting properly, I should be able to reuse the same code, with some minor changes, for the contact list.)
I think that’s about it. I’m pretty sure that all of the changes I’ve made so far are purely aesthetic, so I won’t be releasing an update today. When I finish the functionality of the buttons at the bottom of the settings screens, I will release the update which includes all of the above mentioned enhancements. 
Once this update is released, navigation throughout the app will be VERY consistent. At the bottom of each screen will be a Cancel and/or OK button, which will take you back to a previous screen, and any actions above those buttons will take you forward to a new screen.
The only screen which will not have such buttons is the main screen, with the tabbed view. This is for 2 reasons:
  1. The scheduler screen is already cramped, and adding more buttons will only make it worse
  2. This means that the user has to hit the Back or Home button on their phone to exit the app.This is consistent with the Android design guidelines, and I think is more intuitive for the user.