How to Add Menu Items in BlackBerry API 3.6+
package br.eti.fernandoribeiro.sample.ui;
import net.rim.device.api.i18n.ResourceBundle;
import net.rim.device.api.ui.MenuItem;
import net.rim.device.api.ui.UiApplication;
import net.rim.device.api.ui.container.MainScreen;
import net.rim.device.api.ui.component.Menu;
import br.eti.fernandoribeiro.sample.util.SampleResource;
public final class SampleScreen extends MainScreen { // Or other subclass of Screen
private static final ResourceBundle BUNDLE = ResourceBundle.getBundle(SampleResource.BUNDLE_ID, SampleResource.BUNDLE_NAME);
protected void makeMenu(final Menu menu, final int instance) {
if (Menu.INSTANCE_DEFAULT == instance) { // Or Menu.INSTANCE_CONTEXT or Menu.INSTANCE_CONTEXT_SELECTION
final MenuItem miItem = new MenuItem(BUNDLE.getString(SampleResource.MENUITEM_TEST), 0, 0) {
public void run() {
...
}
};
add(miItem);
add(MenuItem.separator(1));
final MenuItem miItem2 = new MenuItem(BUNDLE.getString(SampleResource.MENUITEM_TEST), 2, 0) {
public void run() {
...
}
};
add(miItem2);
}
}
}
How to Request Application Permissions in BlackBerry API 4.2.1
package br.eti.fernandoribeiro.sample.ui;
import net.rim.device.api.applicationcontrol.ApplicationPermissions;
import net.rim.device.api.applicationcontrol.ApplicationPermissionsManager;
import net.rim.device.api.ui.UiApplication;
public final class SampleApplication extends UiApplication {
public static void main(final String[] args) {
final ApplicationPermissionsManager manager = ApplicationPermissionsManager.getInstance();
final ApplicationPermissions permissions = manager.getApplicationPermissions();
boolean ready = ApplicationPermissions.VALUE_ALLOW == permissions.getPermission(ApplicationPermissions.PERMISSION_SERVER_NETWORK); // Or another permission
if (!ready) {
permissions.addPermission(ApplicationPermissions.PERMISSION_SERVER_NETWORK);
ready = manager.invokePermissionsRequest(permissions);
}
if (ready) {
/* Do something that requires the permission */
} else {
System.exit(0);
}
final UiApplication app = new SampleApplication();
app.enterEventDispatcher();
}
}
How to Add Application Indicators in BlackBerry API 4.6+
package br.eti.fernandoribeiro.sample.ui;
import net.rim.blackberry.api.messagelist.ApplicationIcon;
import net.rim.blackberry.api.messagelist.ApplicationIndicatorRegistry;
import net.rim.device.api.i18n.ResourceBundle;
import net.rim.device.api.system.EncodedImage;
import net.rim.device.api.ui.UiApplication;
import br.eti.fernandoribeiro.sample.util.Resource;
public final class SampleApplication extends UiApplication {
private static final ResourceBundle BUNDLE = ResourceBundle.getBundle(SampleResource.BUNDLE_ID, SampleResource.BUNDLE_NAME);
public static void main(final String[] args) {
final ApplicationIndicatorRegistry registry = ApplicationIndicatorRegistry.getInstance();
registry.register(new ApplicationIcon(EncodedImage.getEncodedImageResource(BUNDLE.getString(SampleResource.RESOURCE_INDICADOR))), false, false);
...
}
}
How to Add Entries to the Options Screen in BlackBerry API 3.6+
1) Create an OptionsProvider.
package br.eti.fernandoribeiro.sample.options;
import net.rim.blackberry.api.options.OptionsProvider;
import net.rim.device.api.i18n.ResourceBundle;
import net.rim.device.api.ui.container.MainScreen;
import br.eti.fernandoribeiro.sample.model.Config;
import br.eti.fernandoribeiro.sample.util.SampleResource;
public final class SampleOptionsProvider implements OptionsProvider {
private static final ResourceBundle BUNDLE = ResourceBundle.getBundle(SampleResource.BUNDLE_ID, SampleResource.BUNDLE_NAME);
private Config config; // Recommended
public String getTitle() {
return BUNDLE.getString(SampleResource.APPLICATION_TITLE); // Recommended
}
public void populateMainScreen(final MainScreen mainScreen) {
...
}
public void save() {
...
}
}
http://c2.com/cgi/wiki?ValueObject
2) Register it with the OptionsManager.
package br.eti.fernandoribeiro.sample.ui;
import net.rim.blackberry.api.options.OptionsManager;
import net.rim.device.api.ui.UiApplication;
import br.eti.fernandoribeiro.sample.options.SampleOptionsProvider;
public final class SampleApplication extends UiApplication {
public static void main(final String[] args) {
OptionsManager.registerOptionsProvider(new SampleOptionsProvider());
}
}
More About the iPhone Antenna Issue
Last Friday, Apple finally held a conference about it.
RIM responded that customers don’t need to use a case for their BlackBerry smartphone to maintain proper connectivity (ouch!), and Nokia responded that we prioritize antenna performance over physical design if they are ever in conflict (ouch! again).
They are going to spend over US$ 200 million dollars in cases.
Again, Hitler reacted promptly.
I agree with Dan Lyons (a.k.a Fake Steve Jobs), who said that by refusing to acknowledge the problem, Jobs just reinforced the image of Apple as a company that is in deep denial and unable to admit a mistake—a company that has for so long been able to bend reality to suit its needs that it now has lost touch with reality itself.
http://fernandoribeiro.eti.br/2010/07/03/iphone-4-antenna-issue/

