diff --git a/OsmAnd/res/layout-port/menu.xml b/OsmAnd/res/layout-port/menu.xml
new file mode 100644
index 0000000000..a290e64d39
--- /dev/null
+++ b/OsmAnd/res/layout-port/menu.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/OsmAnd/res/layout/menu.xml b/OsmAnd/res/layout/menu.xml
index c1cfcc719c..9314de4f92 100644
--- a/OsmAnd/res/layout/menu.xml
+++ b/OsmAnd/res/layout/menu.xml
@@ -3,21 +3,21 @@
-
-
+
-
+
+
-
-
-
+
-
diff --git a/OsmAnd/src/com/osmand/ResourceManager.java b/OsmAnd/src/com/osmand/ResourceManager.java
index cccd266aeb..0d1902c063 100644
--- a/OsmAnd/src/com/osmand/ResourceManager.java
+++ b/OsmAnd/src/com/osmand/ResourceManager.java
@@ -14,6 +14,7 @@ import org.apache.commons.logging.Log;
import org.apache.tools.bzip2.CBZip2InputStream;
import org.xml.sax.SAXException;
+import android.app.ProgressDialog;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Environment;
@@ -191,7 +192,7 @@ public class ResourceManager {
// POI INDEX //
- public void indexingPoi(){
+ public void indexingPoi(ProgressDialog dlg){
if (poiIndex == null) {
File file = new File(Environment.getExternalStorageDirectory(), POI_PATH);
poiIndex = new DataTileManager();
@@ -201,6 +202,9 @@ public class ResourceManager {
if (log.isDebugEnabled()) {
log.debug("Starting index POI " + f.getAbsolutePath());
}
+ if(dlg != null){
+ dlg.setMessage("Indexing poi " + f.getName());
+ }
boolean zipped = f.getName().endsWith(".bz2");
InputStream stream = null;
try {
@@ -240,7 +244,7 @@ public class ResourceManager {
public DataTileManager getPoiIndex() {
if(poiIndex == null){
- indexingPoi();
+ indexingPoi(null);
}
return poiIndex;
}
diff --git a/OsmAnd/src/com/osmand/activities/MainMenuActivity.java b/OsmAnd/src/com/osmand/activities/MainMenuActivity.java
index 7543f5fbe7..968772a042 100644
--- a/OsmAnd/src/com/osmand/activities/MainMenuActivity.java
+++ b/OsmAnd/src/com/osmand/activities/MainMenuActivity.java
@@ -1,28 +1,22 @@
package com.osmand.activities;
-import java.util.concurrent.Callable;
-
import android.app.Activity;
+import android.app.ProgressDialog;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.view.View.OnClickListener;
import android.widget.Button;
-import android.widget.ProgressBar;
import com.osmand.R;
import com.osmand.ResourceManager;
-import com.osmand.services.LongRunningActionCallback;
-import com.osmand.services.LongRunningActionDispatcher;
-public class MainMenuActivity extends Activity implements
- LongRunningActionCallback {
+public class MainMenuActivity extends Activity {
private Button showMap;
private Button exitButton;
private Button settingsButton;
- private ProgressBar loadProgress;
@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -30,15 +24,12 @@ public class MainMenuActivity extends Activity implements
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.menu);
-
-
showMap = (Button) findViewById(R.id.MapButton);
showMap.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
- final Intent mapIndent = new Intent(MainMenuActivity.this,
- MapActivity.class);
+ final Intent mapIndent = new Intent(MainMenuActivity.this, MapActivity.class);
startActivityForResult(mapIndent, 0);
}
@@ -47,8 +38,7 @@ public class MainMenuActivity extends Activity implements
settingsButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
- final Intent settings = new Intent(MainMenuActivity.this,
- SettingsActivity.class);
+ final Intent settings = new Intent(MainMenuActivity.this, SettingsActivity.class);
startActivity(settings);
}
});
@@ -60,30 +50,20 @@ public class MainMenuActivity extends Activity implements
}
});
- loadProgress = (ProgressBar) findViewById(R.id.LoadProgressBar);
- loadProgress.setHorizontalScrollBarEnabled(true);
-
-// startLongRunningOperation();
-
- }
-
- private LongRunningActionDispatcher dispatcher;
-
- @SuppressWarnings("unchecked")
- private void startLongRunningOperation() {
- this.dispatcher = new LongRunningActionDispatcher(this, this);
- dispatcher.startLongRunningAction(new Callable() {
- public Void call() throws Exception {
- ResourceManager.getResourceManager().indexingPoi();
- return null;
+ final ProgressDialog dlg = ProgressDialog.show(this, "Loading data", "Reading indices...");
+ new Thread(){
+ @Override
+ public void run() {
+ try {
+ dlg.setMessage("Indexing poi...");
+ ResourceManager.getResourceManager().indexingPoi(dlg);
+ } finally {
+ dlg.dismiss();
+ }
}
- }, "Dialog Title", "Dialog message");
- }
-
- @Override
- public void onLongRunningActionFinished(Exception error) {
- // TODO Auto-generated method stub
+ }.start();
}
+
}
diff --git a/OsmAnd/src/com/osmand/services/LongRunningActionCallback.java b/OsmAnd/src/com/osmand/services/LongRunningActionCallback.java
deleted file mode 100644
index 71e5a38268..0000000000
--- a/OsmAnd/src/com/osmand/services/LongRunningActionCallback.java
+++ /dev/null
@@ -1,5 +0,0 @@
-package com.osmand.services;
-
-public interface LongRunningActionCallback {
- void onLongRunningActionFinished(Exception error);
-}
diff --git a/OsmAnd/src/com/osmand/services/LongRunningActionDispatcher.java b/OsmAnd/src/com/osmand/services/LongRunningActionDispatcher.java
deleted file mode 100644
index c64790b878..0000000000
--- a/OsmAnd/src/com/osmand/services/LongRunningActionDispatcher.java
+++ /dev/null
@@ -1,61 +0,0 @@
-package com.osmand.services;
-
-import java.util.concurrent.Callable;
-
-import android.app.ProgressDialog;
-import android.content.Context;
-import android.os.Handler;
-
-public class LongRunningActionDispatcher {
-
- private Context context;
-
- private LongRunningActionCallback callback;
-
- private ProgressDialog progressDialog;
-
- private Handler finishedHandler = new Handler();
-
- public LongRunningActionDispatcher(Context context,
-
- LongRunningActionCallback callback) {
- this.context = context;
- this.callback = callback;
- }
-
- @SuppressWarnings("unchecked")
- public void startLongRunningAction(final Callable callable,
-
- String progressDialogTitle, String progressDialogMessage) {
-
- progressDialog = ProgressDialog.show(context, progressDialogTitle,
- progressDialogMessage, true, false);
-
- new Thread(new Runnable() {
-
- public void run() {
- Exception error = null;
- try {
- callable.call();
- } catch (Exception e) {
- error = e;
- }
-
- final Exception finalError = error;
- finishedHandler.post(new Runnable() {
- public void run() {
- onLongRunningActionFinished(finalError);
- }
- });
- }
-
- }).start();
-
- }
-
- private void onLongRunningActionFinished(Exception error) {
- progressDialog.dismiss();
- callback.onLongRunningActionFinished(error);
- }
-
-}