diff --git a/OsmAnd/res/values/strings.xml b/OsmAnd/res/values/strings.xml
index a9f4a63ec5..75dc86852c 100644
--- a/OsmAnd/res/values/strings.xml
+++ b/OsmAnd/res/values/strings.xml
@@ -480,6 +480,7 @@ Destination point is widely used to measure distance and to straight forward nav
#FF9030
#d7d7d7
#000000
+#00000000
Search
#FFFFFF
#FF0000
diff --git a/OsmAnd/res/values/styles.xml b/OsmAnd/res/values/styles.xml
new file mode 100644
index 0000000000..330191c0e6
--- /dev/null
+++ b/OsmAnd/res/values/styles.xml
@@ -0,0 +1,10 @@
+
+
+
+
diff --git a/OsmAnd/src/net/osmand/plus/activities/MainMenuActivity.java b/OsmAnd/src/net/osmand/plus/activities/MainMenuActivity.java
index 8fea1ccf99..464253941a 100644
--- a/OsmAnd/src/net/osmand/plus/activities/MainMenuActivity.java
+++ b/OsmAnd/src/net/osmand/plus/activities/MainMenuActivity.java
@@ -40,13 +40,9 @@ public class MainMenuActivity extends Activity {
private static final String TIPS_SHOW = "TIPS_SHOW"; //$NON-NLS-1$
private static final String EXCEPTION_FILE_SIZE = ResourceManager.APP_DIR + "exception.log"; //$NON-NLS-1$
- private View showMap;
- private View settingsButton;
- private View searchButton;
- private View favouritesButton;
- private View closeButton;
-
private static final String CONTRIBUTION_VERSION_FLAG = "CONTRIBUTION_VERSION_FLAG";
+
+ public static final int APP_EXIT_CODE = 4;
public void checkPreviousRunsForExceptions(boolean firstTime) {
@@ -95,7 +91,15 @@ public class MainMenuActivity extends Activity {
}
}
- public Animation getAnimation(int left, int top){
+ @Override
+ protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+ super.onActivityResult(requestCode, resultCode, data);
+ if(resultCode == APP_EXIT_CODE){
+ finish();
+ }
+ }
+
+ public static Animation getAnimation(int left, int top){
Animation anim = new TranslateAnimation(TranslateAnimation.RELATIVE_TO_SELF, left,
TranslateAnimation.RELATIVE_TO_SELF, 0, TranslateAnimation.RELATIVE_TO_SELF, top, TranslateAnimation.RELATIVE_TO_SELF, 0);
anim.setDuration(700);
@@ -103,33 +107,28 @@ public class MainMenuActivity extends Activity {
return anim;
}
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
-
- requestWindowFeature(Window.FEATURE_NO_TITLE);
- setContentView(R.layout.menu);
- View head = (View) findViewById(R.id.Headliner);
+ public static void onCreateMainMenu(Window window, final Activity activity){
+ View head = (View) window.findViewById(R.id.Headliner);
head.startAnimation(getAnimation(0, -1));
- View leftview = (View) findViewById(R.id.MapButton);
+ View leftview = (View) window.findViewById(R.id.MapButton);
leftview.startAnimation(getAnimation(-1, 0));
- leftview = (View) findViewById(R.id.FavoritesButton);
+ leftview = (View) window.findViewById(R.id.FavoritesButton);
leftview.startAnimation(getAnimation(-1, 0));
- View rightview = (View) findViewById(R.id.SettingsButton);
+ View rightview = (View) window.findViewById(R.id.SettingsButton);
rightview.startAnimation(getAnimation(1, 0));
- rightview = (View) findViewById(R.id.SearchButton);
+ rightview = (View) window.findViewById(R.id.SearchButton);
rightview.startAnimation(getAnimation(1, 0));
String textVersion = Version.APP_VERSION + " " + Version.APP_DESCRIPTION;
- final TextView textVersionView = (TextView) findViewById(R.id.TextVersion);
+ final TextView textVersionView = (TextView) window.findViewById(R.id.TextVersion);
textVersionView.setText(textVersion);
- SharedPreferences prefs = getApplicationContext().getSharedPreferences("net.osmand.settings", MODE_WORLD_READABLE);
+ SharedPreferences prefs = activity.getApplicationContext().getSharedPreferences("net.osmand.settings", MODE_WORLD_READABLE);
// only one commit should be with contribution version flag
// prefs.edit().putBoolean(CONTRIBUTION_VERSION_FLAG, true).commit();
- final TextView appName = (TextView) findViewById(R.id.AppName);
+ final TextView appName = (TextView) window.findViewById(R.id.AppName);
if (prefs.contains(CONTRIBUTION_VERSION_FLAG)) {
appName.setText("OsmAnd!");
SpannableString content = new SpannableString(textVersion);
@@ -137,8 +136,8 @@ public class MainMenuActivity extends Activity {
@Override
public void onClick(View widget) {
- final Intent mapIndent = new Intent(MainMenuActivity.this, ContributionVersionActivity.class);
- startActivityForResult(mapIndent, 0);
+ final Intent mapIndent = new Intent(activity, ContributionVersionActivity.class);
+ activity.startActivityForResult(mapIndent, 0);
}
}, 0, content.length(), 0);
textVersionView.setText(content);
@@ -149,61 +148,73 @@ public class MainMenuActivity extends Activity {
@Override
public void onClick(View widget) {
- TipsAndTricksActivity activity = new TipsAndTricksActivity(MainMenuActivity.this);
- Dialog dlg = activity.getDialogToShowTips(false);
+ TipsAndTricksActivity tactivity = new TipsAndTricksActivity(activity);
+ Dialog dlg = tactivity.getDialogToShowTips(false);
dlg.show();
}
}, appLink.length() - 1, appLink.length(), 0);
appName.setText(appLink);
appName.setMovementMethod(LinkMovementMethod.getInstance());
-
+ }
+
+
- showMap = findViewById(R.id.MapButton);
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ requestWindowFeature(Window.FEATURE_NO_TITLE);
+ setContentView(R.layout.menu);
+
+ onCreateMainMenu(getWindow(), this);
+
+ Window window = getWindow();
+ final Activity activity = this;
+ View showMap = window.findViewById(R.id.MapButton);
showMap.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
- final Intent mapIndent = new Intent(MainMenuActivity.this, MapActivity.class);
- startActivityForResult(mapIndent, 0);
+ final Intent mapIndent = new Intent(activity, MapActivity.class);
+ activity.startActivityForResult(mapIndent, 0);
}
});
- settingsButton = findViewById(R.id.SettingsButton);
+ View settingsButton = window.findViewById(R.id.SettingsButton);
settingsButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
- final Intent settings = new Intent(MainMenuActivity.this, SettingsActivity.class);
- startActivity(settings);
+ final Intent settings = new Intent(activity, SettingsActivity.class);
+ activity.startActivity(settings);
}
});
-
- favouritesButton = findViewById(R.id.FavoritesButton);
+
+ View favouritesButton = window.findViewById(R.id.FavoritesButton);
favouritesButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
- final Intent settings = new Intent(MainMenuActivity.this, FavouritesActivity.class);
- startActivity(settings);
+ final Intent settings = new Intent(activity, FavouritesActivity.class);
+ activity.startActivity(settings);
}
});
-
- closeButton = findViewById(R.id.CloseButton);
+
+ View closeButton = window.findViewById(R.id.CloseButton);
closeButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
- ((OsmandApplication) getApplication()).closeApplication();
- finish();
+ ((OsmandApplication) activity.getApplication()).closeApplication();
+ activity.finish();
}
});
-
- searchButton = findViewById(R.id.SearchButton);
+
+ View searchButton = window.findViewById(R.id.SearchButton);
searchButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
- final Intent search = new Intent(MainMenuActivity.this, SearchActivity.class);
- startActivity(search);
+ final Intent search = new Intent(activity, SearchActivity.class);
+ activity.startActivity(search);
}
});
-
((OsmandApplication)getApplication()).checkApplicationIsBeingInitialized(this);
@@ -245,8 +256,8 @@ public class MainMenuActivity extends Activity {
if (i < 7){
pref.edit().putInt(TIPS_SHOW, ++i).commit();
if(i == 1 || i == 5){
- TipsAndTricksActivity activity = new TipsAndTricksActivity(this);
- Dialog dlg = activity.getDialogToShowTips(true);
+ TipsAndTricksActivity tipsActivity = new TipsAndTricksActivity(this);
+ Dialog dlg = tipsActivity.getDialogToShowTips(true);
dlg.show();
}
}
diff --git a/OsmAnd/src/net/osmand/plus/activities/MapActivity.java b/OsmAnd/src/net/osmand/plus/activities/MapActivity.java
index 30d777020e..f6b2febd52 100644
--- a/OsmAnd/src/net/osmand/plus/activities/MapActivity.java
+++ b/OsmAnd/src/net/osmand/plus/activities/MapActivity.java
@@ -67,6 +67,8 @@ import android.content.DialogInterface;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
+import android.graphics.Color;
+import android.graphics.drawable.ColorDrawable;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
@@ -94,6 +96,9 @@ import android.view.MotionEvent;
import android.view.View;
import android.view.Window;
import android.view.View.OnClickListener;
+import android.view.animation.AccelerateInterpolator;
+import android.view.animation.Animation;
+import android.view.animation.Transformation;
import android.widget.CompoundButton;
import android.widget.ImageButton;
import android.widget.LinearLayout;
@@ -366,9 +371,74 @@ public class MapActivity extends Activity implements IMapLocationListener, Senso
public void backToMainMenu(){
- Intent newIntent = new Intent(MapActivity.this, MainMenuActivity.class);
- newIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
- startActivity(newIntent);
+ final Dialog dlg = new Dialog(this, R.style.Dialog_Fullscreen);
+ final View view = (View) getLayoutInflater().inflate(R.layout.menu, null);
+ view.setBackgroundColor(Color.argb(200, 150, 150, 150));
+ dlg.setContentView(view);
+ MainMenuActivity.onCreateMainMenu(dlg.getWindow(), this);
+ Animation anim = new Animation() {
+ @Override
+ protected void applyTransformation(float interpolatedTime, Transformation t) {
+ ColorDrawable colorDraw = ((ColorDrawable) view.getBackground());
+ colorDraw.setAlpha((int) (interpolatedTime * 200));
+ }
+ };
+ anim.setDuration(700);
+ anim.setInterpolator(new AccelerateInterpolator());
+ view.setAnimation(anim);
+
+ View showMap = dlg.findViewById(R.id.MapButton);
+ showMap.setOnClickListener(new OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ dlg.dismiss();
+ }
+ });
+ View settingsButton = dlg.findViewById(R.id.SettingsButton);
+ settingsButton.setOnClickListener(new OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ final Intent settings = new Intent(MapActivity.this, SettingsActivity.class);
+ MapActivity.this.startActivity(settings);
+ dlg.dismiss();
+ }
+ });
+
+ View favouritesButton = dlg.findViewById(R.id.FavoritesButton);
+ favouritesButton.setOnClickListener(new OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ final Intent settings = new Intent(MapActivity.this, FavouritesActivity.class);
+ MapActivity.this.startActivity(settings);
+ dlg.dismiss();
+ }
+ });
+
+ View closeButton = dlg.findViewById(R.id.CloseButton);
+ closeButton.setOnClickListener(new OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ ((OsmandApplication) getApplication()).closeApplication();
+ dlg.dismiss();
+ MapActivity.this.setResult(MainMenuActivity.APP_EXIT_CODE);
+ MapActivity.this.finish();
+ }
+ });
+
+ View searchButton = dlg.findViewById(R.id.SearchButton);
+ searchButton.setOnClickListener(new OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ final Intent search = new Intent(MapActivity.this, SearchActivity.class);
+ MapActivity.this.startActivity(search);
+ dlg.dismiss();
+ }
+ });
+ dlg.show();
+
+ // Intent newIntent = new Intent(MapActivity.this, MainMenuActivity.class);
+ //newIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
+ // startActivity(newIntent);
}
@Override