summaryrefslogtreecommitdiff
path: root/android
diff options
context:
space:
mode:
Diffstat (limited to 'android')
-rw-r--r--android/src/org/rockbox/RockboxActivity.java36
1 files changed, 19 insertions, 17 deletions
diff --git a/android/src/org/rockbox/RockboxActivity.java b/android/src/org/rockbox/RockboxActivity.java
index f5c658871f..b9a8c54204 100644
--- a/android/src/org/rockbox/RockboxActivity.java
+++ b/android/src/org/rockbox/RockboxActivity.java
@@ -37,7 +37,6 @@ import android.widget.Toast;
37 37
38public class RockboxActivity extends Activity 38public class RockboxActivity extends Activity
39{ 39{
40 private ProgressDialog loadingdialog;
41 private RockboxService rbservice; 40 private RockboxService rbservice;
42 41
43 /** Called when the activity is first created. */ 42 /** Called when the activity is first created. */
@@ -49,38 +48,41 @@ public class RockboxActivity extends Activity
49 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 48 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
50 WindowManager.LayoutParams.FLAG_FULLSCREEN); 49 WindowManager.LayoutParams.FLAG_FULLSCREEN);
51 50
52 /* Do not try starting the service if it's already running */
53 if (isRockboxRunning())
54 return;
55
56 /* prepare a please wait dialog in case we need
57 * to wait for unzipping libmisc.so
58 */
59 loadingdialog = new ProgressDialog(this);
60 loadingdialog.setMessage("Rockbox is loading. Please wait...");
61 loadingdialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
62 loadingdialog.setIndeterminate(true);
63 loadingdialog.setCancelable(false);
64 loadingdialog.show();
65
66 Intent intent = new Intent(this, RockboxService.class); 51 Intent intent = new Intent(this, RockboxService.class);
67 intent.putExtra("callback", new ResultReceiver(new Handler(getMainLooper())) { 52 intent.putExtra("callback", new ResultReceiver(new Handler(getMainLooper())) {
53 private ProgressDialog loadingdialog;
54
55 private void createProgressDialog()
56 {
57 loadingdialog = new ProgressDialog(RockboxActivity.this);
58 loadingdialog.setMessage("Rockbox is loading. Please wait...");
59 loadingdialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
60 loadingdialog.setIndeterminate(true);
61 loadingdialog.setCancelable(false);
62 loadingdialog.show();
63 }
64
68 @Override 65 @Override
69 protected void onReceiveResult(final int resultCode, final Bundle resultData) 66 protected void onReceiveResult(final int resultCode, final Bundle resultData)
70 { 67 {
71 switch (resultCode) { 68 switch (resultCode) {
72 case RockboxService.RESULT_LIB_LOADED: 69 case RockboxService.RESULT_LIB_LOADED:
73 rbservice = RockboxService.get_instance(); 70 rbservice = RockboxService.get_instance();
74 loadingdialog.setIndeterminate(true); 71 if (loadingdialog != null)
72 loadingdialog.setIndeterminate(true);
75 break; 73 break;
76 case RockboxService.RESULT_LIB_LOAD_PROGRESS: 74 case RockboxService.RESULT_LIB_LOAD_PROGRESS:
75 if (loadingdialog == null)
76 createProgressDialog();
77
77 loadingdialog.setIndeterminate(false); 78 loadingdialog.setIndeterminate(false);
78 loadingdialog.setMax(resultData.getInt("max", 100)); 79 loadingdialog.setMax(resultData.getInt("max", 100));
79 loadingdialog.setProgress(resultData.getInt("value", 0)); 80 loadingdialog.setProgress(resultData.getInt("value", 0));
80 break; 81 break;
81 case RockboxService.RESULT_FB_INITIALIZED: 82 case RockboxService.RESULT_FB_INITIALIZED:
82 attachFramebuffer(); 83 attachFramebuffer();
83 loadingdialog.dismiss(); 84 if (loadingdialog != null)
85 loadingdialog.dismiss();
84 break; 86 break;
85 case RockboxService.RESULT_ERROR_OCCURED: 87 case RockboxService.RESULT_ERROR_OCCURED:
86 Toast.makeText(RockboxActivity.this, resultData.getString("error"), Toast.LENGTH_LONG); 88 Toast.makeText(RockboxActivity.this, resultData.getString("error"), Toast.LENGTH_LONG);