diff --git a/plugins/Osmand-Nautical/AndroidManifest.xml b/plugins/Osmand-Nautical/AndroidManifest.xml
index 28628db102..e99e2054e5 100644
--- a/plugins/Osmand-Nautical/AndroidManifest.xml
+++ b/plugins/Osmand-Nautical/AndroidManifest.xml
@@ -14,13 +14,12 @@
android:label="OsmAnd Nautical" >
-
diff --git a/plugins/Osmand-Nautical/build.gradle b/plugins/Osmand-Nautical/build.gradle
index 17aa1d99f2..6b10503e13 100644
--- a/plugins/Osmand-Nautical/build.gradle
+++ b/plugins/Osmand-Nautical/build.gradle
@@ -1,7 +1,7 @@
apply plugin: 'com.android.application'
android {
- compileSdkVersion 21
+ compileSdkVersion 23
buildToolsVersion "23.0.1"
signingConfigs {
@@ -64,4 +64,11 @@ repositories {
}
dependencies {
+ compile 'com.google.firebase:firebase-core:9.8.0'
+ compile 'com.google.firebase:firebase-config:9.8.0'
+ compile 'com.android.support:appcompat-v7:23.3.0'
+ compile 'com.android.support:design:23.3.0'
}
+
+println "Apply GMS plugin"
+apply plugin: 'com.google.gms.google-services'
\ No newline at end of file
diff --git a/plugins/Osmand-Nautical/google-services.json b/plugins/Osmand-Nautical/google-services.json
new file mode 100644
index 0000000000..5627ab1b77
--- /dev/null
+++ b/plugins/Osmand-Nautical/google-services.json
@@ -0,0 +1,156 @@
+{
+ "project_info": {
+ "project_number": "521675454867",
+ "firebase_url": "https://osmand-1e236.firebaseio.com",
+ "project_id": "osmand-1e236",
+ "storage_bucket": "osmand-1e236.appspot.com"
+ },
+ "client": [
+ {
+ "client_info": {
+ "mobilesdk_app_id": "1:521675454867:android:be0477f14dc015f4",
+ "android_client_info": {
+ "package_name": "net.osmand"
+ }
+ },
+ "oauth_client": [
+ {
+ "client_id": "521675454867-te1hdssotqq2dhu7pj2pjm17eulm1tvf.apps.googleusercontent.com",
+ "client_type": 1,
+ "android_info": {
+ "package_name": "net.osmand",
+ "certificate_hash": "49A9ACE0BFEE7BB91506D7921F93A47808CB62AB"
+ }
+ },
+ {
+ "client_id": "521675454867-ttjur3617a74qj0a9rkbkbcjavvuebjp.apps.googleusercontent.com",
+ "client_type": 3
+ }
+ ],
+ "api_key": [
+ {
+ "current_key": "AIzaSyBMaRMiPY-mS3J_-aX30sRBFB-WGIm-M-U"
+ }
+ ],
+ "services": {
+ "analytics_service": {
+ "status": 1
+ },
+ "appinvite_service": {
+ "status": 2,
+ "other_platform_oauth_client": [
+ {
+ "client_id": "521675454867-ttjur3617a74qj0a9rkbkbcjavvuebjp.apps.googleusercontent.com",
+ "client_type": 3
+ },
+ {
+ "client_id": "521675454867-ta1aisohg7g0k542gdh9fbeb2v4qsncf.apps.googleusercontent.com",
+ "client_type": 2,
+ "ios_info": {
+ "bundle_id": "net.osmand.maps",
+ "app_store_id": "934850257"
+ }
+ }
+ ]
+ },
+ "ads_service": {
+ "status": 2
+ }
+ }
+ },
+ {
+ "client_info": {
+ "mobilesdk_app_id": "1:521675454867:android:89d7051c910a2ed6",
+ "android_client_info": {
+ "package_name": "net.osmand.plus"
+ }
+ },
+ "oauth_client": [
+ {
+ "client_id": "521675454867-ttjur3617a74qj0a9rkbkbcjavvuebjp.apps.googleusercontent.com",
+ "client_type": 3
+ }
+ ],
+ "api_key": [
+ {
+ "current_key": "AIzaSyBMaRMiPY-mS3J_-aX30sRBFB-WGIm-M-U"
+ }
+ ],
+ "services": {
+ "analytics_service": {
+ "status": 1
+ },
+ "appinvite_service": {
+ "status": 1,
+ "other_platform_oauth_client": []
+ },
+ "ads_service": {
+ "status": 2
+ }
+ }
+ },
+ {
+ "client_info": {
+ "mobilesdk_app_id": "1:521675454867:android:7e1b6333fdbe27e4",
+ "android_client_info": {
+ "package_name": "net.osmand.skimapsPlugin"
+ }
+ },
+ "oauth_client": [
+ {
+ "client_id": "521675454867-ttjur3617a74qj0a9rkbkbcjavvuebjp.apps.googleusercontent.com",
+ "client_type": 3
+ }
+ ],
+ "api_key": [
+ {
+ "current_key": "AIzaSyBMaRMiPY-mS3J_-aX30sRBFB-WGIm-M-U"
+ }
+ ],
+ "services": {
+ "analytics_service": {
+ "status": 1
+ },
+ "appinvite_service": {
+ "status": 1,
+ "other_platform_oauth_client": []
+ },
+ "ads_service": {
+ "status": 2
+ }
+ }
+ },
+ {
+ "client_info": {
+ "mobilesdk_app_id": "1:521675454867:android:b53cc47c00e16275",
+ "android_client_info": {
+ "package_name": "net.osmand.nauticalPlugin"
+ }
+ },
+ "oauth_client": [
+ {
+ "client_id": "521675454867-ttjur3617a74qj0a9rkbkbcjavvuebjp.apps.googleusercontent.com",
+ "client_type": 3
+ }
+ ],
+ "api_key": [
+ {
+ "current_key": "AIzaSyBMaRMiPY-mS3J_-aX30sRBFB-WGIm-M-U"
+ }
+ ],
+ "services": {
+ "analytics_service": {
+ "status": 1
+ },
+ "appinvite_service": {
+ "status": 1,
+ "other_platform_oauth_client": []
+ },
+ "ads_service": {
+ "status": 2
+ }
+ }
+ }
+ ],
+ "configuration_version": "1"
+}
\ No newline at end of file
diff --git a/plugins/Osmand-Nautical/res/layout/main.xml b/plugins/Osmand-Nautical/res/layout/main.xml
index 35e8b132cc..2e6fdf93cc 100644
--- a/plugins/Osmand-Nautical/res/layout/main.xml
+++ b/plugins/Osmand-Nautical/res/layout/main.xml
@@ -1,13 +1,71 @@
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:background="@color/white">
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/plugins/Osmand-Nautical/res/values/strings.xml b/plugins/Osmand-Nautical/res/values/strings.xml
index e51be9daf3..9ebf7a78f8 100644
--- a/plugins/Osmand-Nautical/res/values/strings.xml
+++ b/plugins/Osmand-Nautical/res/values/strings.xml
@@ -1,5 +1,8 @@
+ Nautical — OsmAnd
+ Thank you for installing OsmAnd Nautical!<br/><br/>It\'s a plugin for OsmAnd Maps & Navigation. To start using nautical, please install <b>OsmAnd Maps & Navigation</b>.
+ Install OsmAnd
No
Yes
OsmAnd is not installed
diff --git a/plugins/Osmand-Nautical/src/net/osmand/nautical/NauticalActivity.java b/plugins/Osmand-Nautical/src/net/osmand/nautical/NauticalActivity.java
index 3a69fd7a56..fe4e262ce8 100644
--- a/plugins/Osmand-Nautical/src/net/osmand/nautical/NauticalActivity.java
+++ b/plugins/Osmand-Nautical/src/net/osmand/nautical/NauticalActivity.java
@@ -1,16 +1,21 @@
package net.osmand.nautical;
-import net.osmand.nauticalPlugin.R;
import android.app.Activity;
-import android.app.AlertDialog;
import android.content.ActivityNotFoundException;
import android.content.ComponentName;
-import android.content.DialogInterface;
+import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.net.Uri;
import android.os.Bundle;
+import android.text.Html;
+import android.view.View;
+import android.widget.TextView;
+
+import net.osmand.nauticalPlugin.R;
+
+import java.lang.reflect.Method;
public class NauticalActivity extends Activity {
private static final String OSMAND_COMPONENT = "net.osmand"; //$NON-NLS-1$
@@ -23,6 +28,9 @@ public class NauticalActivity extends Activity {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
+ TextView descriptionTextView = (TextView) findViewById(R.id.descriptionTextView);
+ descriptionTextView.setText(Html.fromHtml(getString(R.string.plugin_description)));
+
Intent intentPlus = new Intent();
intentPlus.setComponent(new ComponentName(OSMAND_COMPONENT_PLUS, OSMAND_ACTIVITY));
intentPlus.setFlags(Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
@@ -30,6 +38,7 @@ public class NauticalActivity extends Activity {
if(resolved != null) {
stopService(intentPlus);
startActivity(intentPlus);
+ finish();
} else {
Intent intentNormal = new Intent();
intentNormal.setFlags(Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
@@ -38,24 +47,37 @@ public class NauticalActivity extends Activity {
if (resolved != null) {
stopService(intentNormal);
startActivity(intentNormal);
+ finish();
} else {
- AlertDialog.Builder builder = new AlertDialog.Builder(this);
- builder.setMessage(getString(R.string.osmand_app_not_found));
- builder.setPositiveButton(getString(R.string.shared_string_yes), new DialogInterface.OnClickListener() {
+ logEvent(this, "open_dialog");
+ findViewById(R.id.buyButton).setOnClickListener(new View.OnClickListener() {
@Override
- public void onClick(DialogInterface dialog, int which) {
- Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("market://search?q=pname:" + OSMAND_COMPONENT_PLUS));
+ public void onClick(View v) {
+ String appName = OSMAND_COMPONENT;
+ logEvent(NauticalActivity.this, "open_play_store_" + appName);
+ Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("market://search?q=pname:" + appName));
try {
- stopService(intent);
+ //stopService(intent);
startActivity(intent);
+ finish();
} catch (ActivityNotFoundException e) {
+ // ignore
}
}
});
- builder.setNegativeButton(getString(R.string.shared_string_no), null);
- builder.show();
}
}
}
-
+
+ public void logEvent(Activity ctx, String event) {
+ try {
+ Class> cl = Class.forName("com.google.firebase.analytics.FirebaseAnalytics");
+ Method mm = cl.getMethod("getInstance", Context.class);
+ Object inst = mm.invoke(null, ctx == null ? this : ctx);
+ Method log = cl.getMethod("logEvent", String.class, Bundle.class);
+ log.invoke(inst, event, new Bundle());
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
}
\ No newline at end of file