Text

Abby

Made this for my wife.  Description on deviantART:

For my wife. :)

This is our cat Abby. She absolutely loves this weird rubber ball we got her. Nine times out of ten, if we can’t find it anywhere, it’s under the couch. When we fish the ball out from under there, Abby FLIPS out in excitement. Seriously, I’ve never seen a cat do this. It’s like when a dog starts barking in excitement when you are going to take it for a walk, except replace those barks with meows, and you’ve got Abby. On top of that, she actually plays fetch with the thing. You throw it, and she brings it right back and drops it by your feet. This further proves our theory that Abby is actually a dog in disguise.

Created with an Inkscape .48 prerelease build.

(Click the thumbnail to see a bigger version)

Photoset

    Sweet!  A new DSI: Miami release (a big one, too)!  I spent some time on this one…  So what’s new in 1.5?  Well, as you can see in the screenshots, there is an online database now.  Any user can submit their own quotes, and the community will vote on them.  Try it out!

    Honestly, I don’t know why I’m spending so much time on what is essentially a useless app.  :P  More than anything, I’m doing this for educational reasons.  Also, I have made it my goal to polish each of my creations as much as possible.  No matter what my apps do, I at least want them to feel solid.  

    Send any feedback to mavispufordapps  at  gmail dot com.  I’d love to hear from you.

    As always, search for “dsi” in the Android Market or scan this QR code: 

Text

Android Widget Orientation Changes

I just thought I would talk a bit about how I solved an annoying problem with my DSI: Miami widget since I had a really hard time finding a solution online. The problem would show up every time the home screen would change orientations (from portrait to landscape and vice versa).  If there was an orientation change, the widget would freeze and the button/text box wouldn’t respond anymore.  This drove me nuts!  I finally solve the stupid problem today.  This is what was happening:

-I have an IntentService class called UpdateService which basically throws a PendingIntent out there to listen for the button press.  Here’s the code that is in it’s buildUpdate method:

        private RemoteViews buildUpdate(Context context) {
            RemoteViews updateViews = new RemoteViews(context.getPackageName(), R.layout.widget_message);

            Intent i = new Intent(this, DSIMiamiWidget.class);
            i.setAction(REFRESH_QUOTE);
            PendingIntent pi = PendingIntent.getBroadcast(context, 0, i, 0);
            updateViews.setOnClickPendingIntent(R.id.WidgetButton, pi);
                   
            return (updateViews);
        }

-This code was fine, actually.  It worked great when the home screen stayed in the orientation in which the widget was born.

-The problem was when the button was pressed, it called a changeText() method which updated the text box, requiring me to do a new RemoteViews update. Here’s the gist of the code:

     public void changeText(Context context)
     {
        RemoteViews updateViews = new RemoteViews(context.getPackageName(), R.layout.widget_message);
//         int textSize;
        
         if (!randomQuotes.isEmpty())
             updateViews.setTextViewText(R.id.WidgetTextView, randomQuotes.get(0));
         else
         {
             if (quotes == null)
                 this.quotes = context.getResources().getStringArray(R.array.quotes);
             convertArrayToList();
             randomizeQuotes();
             updateViews.setTextViewText(R.id.WidgetTextView, randomQuotes.get(0));
         }
        
         randomQuotes.remove(0);
        
        ComponentName thisWidget = new ComponentName(context, DSIMiamiWidget.class);
        AppWidgetManager manager = AppWidgetManager.getInstance(context);
        manager.updateAppWidget(thisWidget, updateViews);
     }

-Well, I didn’t realize that I had to REDO all the PendingIntent stuff after doing that, too.  So, I threw this in right before “ComponentName thisWidget = new ComponentName…” at the bottom:

        Intent i = new Intent(context, this.getClass());
        i.setAction(REFRESH_QUOTE);
        PendingIntent pi = PendingIntent.getBroadcast(context, 0, i, 0);
        updateViews.setOnClickPendingIntent(R.id.WidgetButton, pi);

TADAAAAAAAAAA.  That was a pain…

Text

This is totally soccer.

Photo
DSI: Miami is now at version 1.3!  I updated the graphics a bit, changed the icon, and added widgets by request.  I’m surprised by all the positive feedback I’m getting.  Thanks for all the support everyone!
Search for “dsi” in the Android Market or scan this QR code:

DSI: Miami is now at version 1.3!  I updated the graphics a bit, changed the icon, and added widgets by request.  I’m surprised by all the positive feedback I’m getting.  Thanks for all the support everyone!

Search for “dsi” in the Android Market or scan this QR code: