aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFelix Palmer <felix.palmer@metaswitch.com>2011-12-08 22:00:38 -0800
committerFelix Palmer <felix.palmer@metaswitch.com>2011-12-08 22:00:38 -0800
commitd6e0e8fd21056fabb7a68e79337a9b919d9ccb1f (patch)
treed86c301e17e1019112cbe3e50692080caae3a8a3
parent5ecda63ade42269ca6b4a114db0c81b2c5146659 (diff)
downloadandroid_external_android-visualizer-d6e0e8fd21056fabb7a68e79337a9b919d9ccb1f.tar.gz
android_external_android-visualizer-d6e0e8fd21056fabb7a68e79337a9b919d9ccb1f.tar.bz2
android_external_android-visualizer-d6e0e8fd21056fabb7a68e79337a9b919d9ccb1f.zip
Fixed some Acitvity life-cycle bugs
-rw-r--r--src/com/pheelicks/app/MainActivity.java90
1 files changed, 41 insertions, 49 deletions
diff --git a/src/com/pheelicks/app/MainActivity.java b/src/com/pheelicks/app/MainActivity.java
index 65e9eae..8ace206 100644
--- a/src/com/pheelicks/app/MainActivity.java
+++ b/src/com/pheelicks/app/MainActivity.java
@@ -6,6 +6,8 @@
*/
package com.pheelicks.app;
+import java.io.IOException;
+
import android.app.Activity;
import android.graphics.Color;
import android.graphics.Paint;
@@ -20,8 +22,7 @@ import com.pheelicks.visualizer.renderer.CircleRenderer;
import com.pheelicks.visualizer.renderer.LineRenderer;
/**
- * Basic demo to show how to use VisualizerView
- *
+ * Demo to show how to use VisualizerView
*/
public class MainActivity extends Activity {
private MediaPlayer mPlayer;
@@ -32,15 +33,37 @@ public class MainActivity extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
+ }
+
+ @Override
+ protected void onResume()
+ {
+ super.onResume();
init();
}
+ @Override
+ protected void onPause()
+ {
+ cleanUp();
+ super.onPause();
+ }
+
+ @Override
+ protected void onDestroy()
+ {
+ cleanUp();
+ super.onDestroy();
+ }
+
private void init()
{
mPlayer = MediaPlayer.create(this, R.raw.test);
mPlayer.setLooping(true);
mPlayer.start();
+ // We need to link the visualizer view to the media player so that
+ // it displays something
mVisualizerView = (VisualizerView) findViewById(R.id.visualizerView);
mVisualizerView.link(mPlayer);
@@ -48,6 +71,17 @@ public class MainActivity extends Activity {
addLineRenderer();
}
+ private void cleanUp()
+ {
+ if (mPlayer != null)
+ {
+ mVisualizerView.release();
+ mPlayer.release();
+ mPlayer = null;
+ }
+ }
+
+ // Methods for adding renderers to visualizer
private void addBarGraphRenderers()
{
Paint paint = new Paint();
@@ -90,56 +124,14 @@ public class MainActivity extends Activity {
mVisualizerView.addRenderer(lineRenderer);
}
- // Cleanup
- private void cleanUp()
- {
- if (mPlayer != null)
- {
- mVisualizerView.release();
- mPlayer.release();
- mPlayer = null;
- }
- }
-
- @Override
- protected void onResume()
- {
- super.onResume();
- if(mPlayer == null)
- {
- init();
- }
- else
- {
- mPlayer.start();
- }
- }
-
- @Override
- protected void onPause()
+ // Actions for buttons defined in xml
+ public void startPressed(View view) throws IllegalStateException, IOException
{
- if (isFinishing())
+ if(mPlayer.isPlaying())
{
- cleanUp();
+ return;
}
- else
- {
- mPlayer.pause();
- }
-
- super.onPause();
- }
-
- @Override
- protected void onDestroy()
- {
- cleanUp();
- super.onDestroy();
- }
-
- // Actions for buttons defined in xml
- public void startPressed(View view)
- {
+ mPlayer.prepare();
mPlayer.start();
}