diff --git a/android/res/drawable/img_sharing_editor.png b/android/res/drawable/img_sharing_editor.png new file mode 100644 index 0000000000..0cb66b37c8 Binary files /dev/null and b/android/res/drawable/img_sharing_editor.png differ diff --git a/android/res/menu/menu_viral_editor.xml b/android/res/menu/menu_viral_editor.xml deleted file mode 100644 index de52738b9f..0000000000 --- a/android/res/menu/menu_viral_editor.xml +++ /dev/null @@ -1,11 +0,0 @@ - -
\ No newline at end of file diff --git a/android/src/com/mapswithme/maps/bookmarks/data/BookmarkManager.java b/android/src/com/mapswithme/maps/bookmarks/data/BookmarkManager.java index b6afc82dd5..dced9ac59e 100644 --- a/android/src/com/mapswithme/maps/bookmarks/data/BookmarkManager.java +++ b/android/src/com/mapswithme/maps/bookmarks/data/BookmarkManager.java @@ -96,6 +96,9 @@ public enum BookmarkManager public native void nativeShowBookmarkOnMap(int catId, int bmkId); + /** + * @return null, if wrong category is passed. + */ public native @Nullable String nativeSaveToKmzFile(int catId, String tmpPath); public native Bookmark nativeAddBookmarkToLastEditedCategory(String name, double lat, double lon); diff --git a/android/src/com/mapswithme/maps/editor/ViralFragment.java b/android/src/com/mapswithme/maps/editor/ViralFragment.java index 6d0b6cf9f9..a06dd2504f 100644 --- a/android/src/com/mapswithme/maps/editor/ViralFragment.java +++ b/android/src/com/mapswithme/maps/editor/ViralFragment.java @@ -2,12 +2,10 @@ package com.mapswithme.maps.editor; import android.annotation.SuppressLint; import android.app.Dialog; -import android.content.DialogInterface; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.v7.app.AlertDialog; import android.view.LayoutInflater; -import android.view.MenuItem; import android.view.View; import android.widget.TextView; @@ -16,9 +14,8 @@ import java.util.Random; import com.mapswithme.maps.MwmApplication; import com.mapswithme.maps.R; import com.mapswithme.maps.base.BaseMwmDialogFragment; -import com.mapswithme.util.BottomSheetHelper; import com.mapswithme.util.ConnectionState; -import com.mapswithme.util.sharing.ShareOption; +import com.mapswithme.util.sharing.SharingHelper; import com.mapswithme.util.statistics.Statistics; public class ViralFragment extends BaseMwmDialogFragment @@ -55,6 +52,7 @@ public class ViralFragment extends BaseMwmDialogFragment public void onClick(View v) { share(); + dismiss(); Statistics.INSTANCE.trackEvent(Statistics.EventName.EDITOR_SHARE_CLICK); } }); @@ -64,7 +62,6 @@ public class ViralFragment extends BaseMwmDialogFragment public void onClick(View v) { dismiss(); - // TODO send statistics } }); return builder.setView(root).create(); @@ -72,41 +69,7 @@ public class ViralFragment extends BaseMwmDialogFragment private void share() { - // TODO add custom sharing in twitter and url to facebook sharing - BottomSheetHelper.Builder sheet = BottomSheetHelper.create(getActivity()) - .sheet(R.menu.menu_viral_editor) - .listener(new MenuItem.OnMenuItemClickListener() { - @Override - public boolean onMenuItemClick(MenuItem item) - { - if (item.getItemId() == R.id.share_message) - { - ShareOption.SMS.share(getActivity(), - getString(R.string.whatsnew_editor_message_1)); - } - else - { - ShareOption.ANY.share(getActivity(), - getString(R.string.whatsnew_editor_message_1), - R.string.editor_sharing_title); - } - - dismiss(); - return false; - } - }); - - if (!ShareOption.SMS.isSupported(getActivity())) - sheet.getMenu().removeItem(R.id.share_message); - - sheet.tint().show(); - } - - @Override - public void onDismiss(DialogInterface dialog) - { - super.onDismiss(dialog); - // TODO remove before merge + SharingHelper.shareViralEditor(getActivity(), R.drawable.img_sharing_editor, R.string.editor_sharing_title, R.string.whatsnew_editor_message_1); } private void initViralText() diff --git a/android/src/com/mapswithme/util/UiUtils.java b/android/src/com/mapswithme/util/UiUtils.java index 2aa1f1a327..753142235e 100644 --- a/android/src/com/mapswithme/util/UiUtils.java +++ b/android/src/com/mapswithme/util/UiUtils.java @@ -2,9 +2,14 @@ package com.mapswithme.util; import android.animation.Animator; import android.app.Activity; +import android.content.ContentResolver; +import android.content.Context; import android.content.DialogInterface; import android.content.res.Configuration; +import android.content.res.Resources; +import android.net.Uri; import android.os.Build; +import android.support.annotation.AnyRes; import android.support.annotation.DimenRes; import android.support.annotation.IdRes; import android.support.annotation.NonNull; @@ -286,6 +291,15 @@ public final class UiUtils : R.attr.accentButtonTextColorDisabled)); } + public static Uri getUriToResId(@NonNull Context context, @AnyRes int resId) + { + final Resources resources = context.getResources(); + return Uri.parse(ContentResolver.SCHEME_ANDROID_RESOURCE + "://" + + resources.getResourcePackageName(resId) + '/' + + resources.getResourceTypeName(resId) + '/' + + resources.getResourceEntryName(resId)); + } + // utility class private UiUtils() {} } diff --git a/android/src/com/mapswithme/util/sharing/BaseShareable.java b/android/src/com/mapswithme/util/sharing/BaseShareable.java index 1ec31d7dd9..f01107bfe1 100644 --- a/android/src/com/mapswithme/util/sharing/BaseShareable.java +++ b/android/src/com/mapswithme/util/sharing/BaseShareable.java @@ -12,9 +12,9 @@ import com.mapswithme.util.statistics.AlohaHelper; public abstract class BaseShareable { private final Activity mActivity; - private Intent mBaseIntent; - private String mText; - private String mSubject; + protected Intent mBaseIntent; + protected String mText; + protected String mSubject; public BaseShareable(Activity activity) { diff --git a/android/src/com/mapswithme/util/sharing/LocalFileShareable.java b/android/src/com/mapswithme/util/sharing/LocalFileShareable.java index 142b0a5489..596dc89151 100644 --- a/android/src/com/mapswithme/util/sharing/LocalFileShareable.java +++ b/android/src/com/mapswithme/util/sharing/LocalFileShareable.java @@ -5,6 +5,8 @@ import android.content.Intent; import android.net.Uri; import android.support.annotation.Nullable; +import java.io.File; + public class LocalFileShareable extends BaseShareable { private final String mFileName; @@ -21,7 +23,7 @@ public class LocalFileShareable extends BaseShareable protected void modifyIntent(Intent intent, @Nullable SharingTarget target) { super.modifyIntent(intent, target); - intent.putExtra(android.content.Intent.EXTRA_STREAM, Uri.parse("file://" + mFileName)); + intent.putExtra(android.content.Intent.EXTRA_STREAM, Uri.fromFile(new File(mFileName))); } @Override diff --git a/android/src/com/mapswithme/util/sharing/ShareOption.java b/android/src/com/mapswithme/util/sharing/ShareOption.java index 4f5147627d..c5ce2f3622 100644 --- a/android/src/com/mapswithme/util/sharing/ShareOption.java +++ b/android/src/com/mapswithme/util/sharing/ShareOption.java @@ -48,7 +48,7 @@ public abstract class ShareOption public void share(Activity activity, String body) { Intent smsIntent = new Intent(); - TargetUtils.fillSmsIntent(activity, smsIntent, body); + TargetUtils.fillSmsIntent(smsIntent, body); activity.startActivity(smsIntent); Statistics.INSTANCE.trackPlaceShared("SMS"); } diff --git a/android/src/com/mapswithme/util/sharing/SharingHelper.java b/android/src/com/mapswithme/util/sharing/SharingHelper.java index aaee847449..4571f5a7ae 100644 --- a/android/src/com/mapswithme/util/sharing/SharingHelper.java +++ b/android/src/com/mapswithme/util/sharing/SharingHelper.java @@ -8,6 +8,7 @@ import android.content.SharedPreferences; import android.content.pm.ActivityInfo; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; +import android.support.annotation.DrawableRes; import android.support.annotation.StringRes; import android.text.TextUtils; @@ -86,7 +87,6 @@ public final class SharingHelper mPrefs.edit().putString(PREFS_KEY_ITEMS, json).apply(); } - private static String guessAppName(PackageManager pm, ResolveInfo ri) { CharSequence name = ri.activityInfo.loadLabel(pm); @@ -110,7 +110,6 @@ public final class SharingHelper PackageManager pm = MwmApplication.get().getPackageManager(); List