Main.java
/*
* Copyright © 2012 Nokia Corporation. All rights reserved.
* Nokia and Nokia Connecting People are registered trademarks of Nokia Corporation.
* Oracle and Java are trademarks or registered trademarks of Oracle and/or its
* affiliates. Other product and company names mentioned herein may be trademarks
* or trade names of their respective owners.
* See LICENSE.TXT for license information.
*/
package com.nokia.example.drumkit;
import com.nokia.example.drumkit.views.Drumkit;
import com.nokia.example.drumkit.helpers.ImageLoader;
import com.nokia.example.drumkit.views.Splash;
import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Alert;
import javax.microedition.lcdui.AlertType;
import javax.microedition.midlet.*;
/**
* The main MIDlet
*/
public class Main
extends MIDlet
implements CommandListener {
private static Main self;
private Display display;
private Drumkit view;
private Splash splash;
private Command exit;
/**
* Get a singleton instance of the Main MIDlet
*/
public static Main getInstance() {
return self;
}
/**
* Handle application start events
*/
public void startApp() {
self = this;
exit = new Command("Exit", Command.EXIT, 1);
if (display == null) {
display = Display.getDisplay(this);
splash = new Splash();
view = new Drumkit();
display.setCurrent(splash);
}
}
/**
* Handle application pause events
*/
public void pauseApp() {
}
/**
* Handle application destroy events
*/
public void destroyApp(boolean unconditional) {
SoundManager.cleanUp();
}
/**
* Switch to drumkit view
*/
public void viewKit() {
display.setCurrent(view);
}
/**
* Display alert in silent mode.
*/
public void sampleAlert() {
Image note = ImageLoader.loadImage("/note.png");
Alert alert = new Alert("Unable to load samples.",
"Sounds might not be enabled with your current Profile. Try changing "
+ "the Profile to General and restart the application..",
note, AlertType.WARNING);
alert.addCommand(exit);
alert.setCommandListener(this);
display.setCurrent(alert, view);
}
/**
* Handle command actions
*/
public void commandAction(Command command, Displayable displayable) {
if (command == exit) {
exit();
}
}
/**
* Exit the application
*/
public void exit() {
destroyApp(true);
notifyDestroyed();
}
public static boolean isS60Phone() {
String platform = System.getProperty("microedition.platform");
if (platform == null) {
platform = "";
}
if (platform.indexOf("sw_platform=S60") > 0) {
return true;
}
if (platform.indexOf("/S60_") > 0) {
return true;
}
try {
Class.forName("com.symbian.gcf.NativeInputStream");
return true;
}
catch (ClassNotFoundException e) {
}
return false;
}
}