Thursday, June 16, 2011

Going for the kill - get the app onto the market

Ok, here's the problem. It's summer, the weather is gorgeous, and I don't have fixed schedule. My knees are feeling ok and I've just discovered a better way to hit a forehand. It's easily hot enough to be a beach day and wouldn't that be a thing for me.

So, what's the problem? The problem is earning money. We all need to do it, and if I let myself get distracted by the summer, I'll never start earning any income on the is app. Then, it's back to the corporate rat race and goodbye freedom!

What's left to do?

1) More manual testing
2) Run greasemonkey
3) Set up a separate program for each jlpt level
4) Fix the bug on no or null input on settings
5) Make the install automatically download the first 100 sound files for levels 4 and 5
6) Set up the logic to only display the "Get Audio" button on levels 4 and 5
7) Set up how to pay on levels 4 and 5
8) Put in app purchasing at all levels to get the after the first 500 words
9) Launch web site
10) Emails to reviewers
11) Run through the bug list
12) Go through the code and insert comments
13) SRS????
14) Fix the goofy yellow highlight button.
15) Make a better "next level" display
16) Trigger an automatic download of audio for levels 4 and 5.

Ok. So, let's tackle the low hanging fruit. We'll check the input for null or zero length

Done. It was an expediency vs. generality implementation:

/**
* @param appState
* @param r_id
*
* This function also checks for null and empty string
* if 0. So, it doesn't work if 0 is a valid number.
*
*/
private int getEnteredValueAsInt(int r_id) {
EditText num = (EditText) SettingsActivity.this
.findViewById(r_id);
String str = num.getText().toString();

if ((null == str) || (str.length() == 0)) {
return 0;

}

return Integer.parseInt(str);
}
Ok, got it. Now, the next step is the goofy yellow highlight.

No, to red. lightwood #E9C2A6?

No, too purple.

Ok, it works fine if I just give it a transparency.

It's 12:35. I just got a free brownie at Panera.

Ok, next item. The separate level. I already have a setting for this. All it really is is removing the input field, which I never needed in the first place. Duh.

I'm giving it a tag of BeforeRemoveSettings.

I'm having trouble getting the level int from settings.

Why can't I do this? Don't I do it to get the title? How do I get a string? Oh, a lot of them are defined in layout.

How about the tanos? That's a string.

No, I've hardcoded that.

Duh, here it is: String string = getString(R.string.hello);

Ok, here's where we're at now:

/**
* Todo - move this to init
*
* @param appState
*/
private void setupJlptLevelDisplay() {

mJlptLevel = (TextView) findViewById(R.id.level);

AppState appState = (AppState) getApplication();

String temp = getString(R.string.level);

appState.jlptLevel = Integer.parseInt(temp);

mJlptLevel.setText(appState.jlptLevel);
}


Still npe! It's crashing on this line:

mJlptLevel = (TextView) findViewById(R.id.level);

Why was it working before? I shouldn't have mucked with this.

Let's revert.

Arg. Ok, I need to revert SettingsActivity.

Argh..

First make a copy.

Ok. It's working again. How about I just disable level?

mLevel.setEnabled(false);

This is actually good. It will maybe create a request for all levels - which would just be a setting.

So, why don't I worry about that later. It's 2:15! I thought this would take 5 minutes.

One last thing I need to do - move the cursor to the next one.

Let's try quizStartNum.setSelected(true).

Nothing. How about this:

quizStartNum.setSelection(0);

Here we go:


quizStartNum.setFocusable(true);
quizStartNum.requestFocus();


Ah, ok. It's finally "done". It's 2:34!

I'm taking a break.

No comments:

Post a Comment