pickPictureSize() supports specified target sizes for the Pick activity, so you could also record the preferred width and height (and not just their product)  and use them in pickPictureSize().  That might help support different form factors of devices, I suppose.  But it might be more work than you want to do here now.  Just an idea maybe for the future.