diff --git a/android/res/layout-land/fragment_permissions.xml b/android/res/layout-land/fragment_permissions.xml deleted file mode 100644 index 888577fb5e..0000000000 --- a/android/res/layout-land/fragment_permissions.xml +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - - - - - - - - - diff --git a/android/res/layout-land/fragment_storage_permissions.xml b/android/res/layout-land/fragment_storage_permissions.xml deleted file mode 100644 index 796aa0f3b9..0000000000 --- a/android/res/layout-land/fragment_storage_permissions.xml +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - - - - - - - - - diff --git a/android/res/layout-land/fragment_welcome.xml b/android/res/layout-land/fragment_welcome.xml deleted file mode 100644 index 5c813dedeb..0000000000 --- a/android/res/layout-land/fragment_welcome.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - - - - - - - - - diff --git a/android/res/layout-land/info_page.xml b/android/res/layout-land/info_page.xml new file mode 100644 index 0000000000..01bc9edafd --- /dev/null +++ b/android/res/layout-land/info_page.xml @@ -0,0 +1,57 @@ + + + + + + + + + + + diff --git a/android/res/layout-sw600dp-land/info_page.xml b/android/res/layout-sw600dp-land/info_page.xml new file mode 100644 index 0000000000..01bc9edafd --- /dev/null +++ b/android/res/layout-sw600dp-land/info_page.xml @@ -0,0 +1,57 @@ + + + + + + + + + + + diff --git a/android/res/layout-sw600dp/info_page.xml b/android/res/layout-sw600dp/info_page.xml new file mode 100644 index 0000000000..60ccda04a6 --- /dev/null +++ b/android/res/layout-sw600dp/info_page.xml @@ -0,0 +1,54 @@ + + + + + + + + + diff --git a/android/res/layout/activity_splash.xml b/android/res/layout/activity_splash.xml index 076596ab23..e40493d687 100644 --- a/android/res/layout/activity_splash.xml +++ b/android/res/layout/activity_splash.xml @@ -1,14 +1,32 @@ - + android:layout_height="match_parent"> + + - + android:src="@drawable/img_logo" + android:layout_above="@id/anchor_center" + android:layout_centerHorizontal="true"/> + + + diff --git a/android/res/layout/fragment_permissions.xml b/android/res/layout/fragment_permissions.xml index 8f78ed1178..300ee0ed24 100644 --- a/android/res/layout/fragment_permissions.xml +++ b/android/res/layout/fragment_permissions.xml @@ -4,48 +4,11 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent"> - - - - - - - + android:layout_above="@+id/btn_frame"/> - - - - - - - + android:layout_above="@+id/btn_frame"/> - - - - - - - - + android:layout_above="@+id/btn_frame"/> + + + + + + + + diff --git a/android/res/layout/item_permissions_note.xml b/android/res/layout/item_permissions_note.xml index 6f02d5c8f7..713c667b84 100644 --- a/android/res/layout/item_permissions_note.xml +++ b/android/res/layout/item_permissions_note.xml @@ -6,7 +6,8 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingLeft="@dimen/margin_double" - android:paddingRight="@dimen/margin_double"> + android:paddingRight="@dimen/margin_double" + android:paddingTop="@dimen/permissions_title_note_margin"> + android:paddingTop="@dimen/permissions_title_top_margin" + android:paddingBottom="@dimen/permissions_title_bottom_margin"> 128dp 52dp - @dimen/margin_base + @dimen/margin_half + @dimen/margin_half + @dimen/margin_half + 200dp \ No newline at end of file diff --git a/android/res/values-sw600dp-land/dimens.xml b/android/res/values-sw600dp-land/dimens.xml new file mode 100644 index 0000000000..4c316e94ac --- /dev/null +++ b/android/res/values-sw600dp-land/dimens.xml @@ -0,0 +1,4 @@ + + + 360dp + \ No newline at end of file diff --git a/android/res/values-sw600dp/dimens.xml b/android/res/values-sw600dp/dimens.xml index 865441e1c3..e12c25c085 100644 --- a/android/res/values-sw600dp/dimens.xml +++ b/android/res/values-sw600dp/dimens.xml @@ -9,4 +9,5 @@ 80dp 480dp + 360dp diff --git a/android/res/values/dimens.xml b/android/res/values/dimens.xml index b8de56136c..1752e1089f 100644 --- a/android/res/values/dimens.xml +++ b/android/res/values/dimens.xml @@ -191,6 +191,9 @@ 72dp 80dp - @dimen/margin_double + @dimen/margin_base + @dimen/margin_base + @dimen/margin_base @dimen/match_parent + 240dp diff --git a/android/src/com/mapswithme/maps/SplashActivity.java b/android/src/com/mapswithme/maps/SplashActivity.java index a9d75489fa..3717dc1c14 100644 --- a/android/src/com/mapswithme/maps/SplashActivity.java +++ b/android/src/com/mapswithme/maps/SplashActivity.java @@ -37,6 +37,7 @@ public class SplashActivity extends AppCompatActivity private static boolean sFirstStart; private View mIvLogo; + private View mAppName; private boolean mPermissionsGranted; private boolean mNeedStoragePermission; @@ -174,7 +175,7 @@ public class SplashActivity extends AppCompatActivity if (sFirstStart) { PushwooshHelper.nativeProcessFirstLaunch(); - UiUtils.hide(mIvLogo); + UiUtils.hide(mIvLogo, mAppName); return; } @@ -183,7 +184,7 @@ public class SplashActivity extends AppCompatActivity { if (ViralFragment.shouldDisplay()) { - UiUtils.hide(mIvLogo); + UiUtils.hide(mIvLogo, mAppName); ViralFragment dialog = new ViralFragment(); dialog.onDismiss(new DialogInterface() { @@ -208,7 +209,7 @@ public class SplashActivity extends AppCompatActivity } else { - UiUtils.hide(mIvLogo); + UiUtils.hide(mIvLogo, mAppName); } } @@ -236,6 +237,7 @@ public class SplashActivity extends AppCompatActivity UiUtils.setupStatusBar(this); setContentView(R.layout.activity_splash); mIvLogo = findViewById(R.id.iv__logo); + mAppName = findViewById(R.id.tv__app_name); } private void init() diff --git a/android/src/com/mapswithme/maps/news/FirstStartFragment.java b/android/src/com/mapswithme/maps/news/FirstStartFragment.java deleted file mode 100644 index 32d0a8227d..0000000000 --- a/android/src/com/mapswithme/maps/news/FirstStartFragment.java +++ /dev/null @@ -1,89 +0,0 @@ -package com.mapswithme.maps.news; - -import android.app.Dialog; -import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.v4.app.FragmentActivity; -import android.support.v4.app.FragmentManager; - -import com.mapswithme.maps.BuildConfig; -import com.mapswithme.maps.R; -import com.mapswithme.maps.location.LocationHelper; -import com.mapswithme.util.Counters; - -public class FirstStartFragment extends BaseNewsFragment -{ - private class Adapter extends BaseNewsFragment.Adapter - { - @Override - int getTitles() - { - return R.array.first_start_titles; - } - - @Override - int getSubtitles1() - { - return R.array.first_start_subtitles; - } - - @Override - int getSubtitles2() - { - return 0; - } - - @Override - int getSwitchTitles() - { - return R.array.first_start_switch_titles; - } - - @Override - int getSwitchSubtitles() - { - return R.array.first_start_switch_subtitles; - } - - @Override - int getImages() - { - return R.array.first_start_images; - } - } - - @Override - BaseNewsFragment.Adapter createAdapter() - { - return new Adapter(); - } - - @NonNull - @Override - public Dialog onCreateDialog(Bundle savedInstanceState) - { - LocationHelper.INSTANCE.onEnteredIntoFirstRun(); - return super.onCreateDialog(savedInstanceState); - } - - public static boolean showOn(@NonNull FragmentActivity activity, - @Nullable NewsDialogListener listener) - { - if (Counters.getFirstInstallVersion() < BuildConfig.VERSION_CODE) - return false; - - FragmentManager fm = activity.getSupportFragmentManager(); - if (fm.isDestroyed()) - return false; - - if (Counters.isFirstStartDialogSeen() && - !recreate(activity, FirstStartFragment.class)) - return false; - - create(activity, FirstStartFragment.class, listener); - - Counters.setFirstStartDialogSeen(); - return true; - } -} diff --git a/android/src/com/mapswithme/maps/news/WelcomeDialogFragment.java b/android/src/com/mapswithme/maps/news/WelcomeDialogFragment.java index b8d293add3..c4a05f7d55 100644 --- a/android/src/com/mapswithme/maps/news/WelcomeDialogFragment.java +++ b/android/src/com/mapswithme/maps/news/WelcomeDialogFragment.java @@ -11,6 +11,7 @@ import android.text.Html; import android.text.method.LinkMovementMethod; import android.view.View; import android.view.Window; +import android.widget.ImageView; import android.widget.TextView; import com.mapswithme.maps.BuildConfig; @@ -18,6 +19,7 @@ import com.mapswithme.maps.R; import com.mapswithme.maps.base.BaseMwmDialogFragment; import com.mapswithme.maps.location.LocationHelper; import com.mapswithme.util.Counters; +import com.mapswithme.util.UiUtils; public class WelcomeDialogFragment extends BaseMwmDialogFragment implements View.OnClickListener { @@ -81,6 +83,8 @@ public class WelcomeDialogFragment extends BaseMwmDialogFragment implements View public Dialog onCreateDialog(Bundle savedInstanceState) { LocationHelper.INSTANCE.onEnteredIntoFirstRun(); + if (!LocationHelper.INSTANCE.isActive()) + LocationHelper.INSTANCE.start(); Dialog res = super.onCreateDialog(savedInstanceState); res.requestWindowFeature(Window.FEATURE_NO_TITLE); @@ -89,7 +93,14 @@ public class WelcomeDialogFragment extends BaseMwmDialogFragment implements View View content = View.inflate(getActivity(), R.layout.fragment_welcome, null); res.setContentView(content); content.findViewById(R.id.btn__continue).setOnClickListener(this); - TextView terms = (TextView) content.findViewById(R.id.tv__terms_and_privacy); + ImageView image = (ImageView) content.findViewById(R.id.iv__image); + image.setImageResource(R.drawable.img_welcome); + TextView title = (TextView) content.findViewById(R.id.tv__title); + title.setText(R.string.onboarding_welcome_title); + TextView subtitle = (TextView) content.findViewById(R.id.tv__subtitle1); + subtitle.setText(R.string.onboarding_welcome_first_subtitle); + TextView terms = (TextView) content.findViewById(R.id.tv__subtitle2); + UiUtils.show(terms); terms.setText(Html.fromHtml(getString(R.string.onboarding_welcome_second_subtitle))); terms.setMovementMethod(LinkMovementMethod.getInstance()); diff --git a/android/src/com/mapswithme/maps/permissions/BasePermissionsDialogFragment.java b/android/src/com/mapswithme/maps/permissions/BasePermissionsDialogFragment.java index 713c51d7c8..64f44743b9 100644 --- a/android/src/com/mapswithme/maps/permissions/BasePermissionsDialogFragment.java +++ b/android/src/com/mapswithme/maps/permissions/BasePermissionsDialogFragment.java @@ -2,17 +2,22 @@ package com.mapswithme.maps.permissions; import android.app.Dialog; import android.os.Bundle; +import android.support.annotation.DrawableRes; import android.support.annotation.IdRes; import android.support.annotation.LayoutRes; import android.support.annotation.NonNull; import android.support.annotation.Nullable; +import android.support.annotation.StringRes; import android.support.v4.app.DialogFragment; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentManager; import android.view.View; import android.view.Window; +import android.widget.ImageView; +import android.widget.TextView; +import com.mapswithme.maps.R; import com.mapswithme.maps.base.BaseMwmDialogFragment; import com.mapswithme.util.PermissionsUtils; @@ -92,9 +97,37 @@ abstract class BasePermissionsDialogFragment extends BaseMwmDialogFragment if (button != null) button.setOnClickListener(this); + ImageView image = (ImageView) content.findViewById(R.id.iv__image); + if (image != null) + image.setImageResource(getImageRes()); + TextView title = (TextView) content.findViewById(R.id.tv__title); + if (title != null) + title.setText(getTitleRes()); + TextView subtitle = (TextView) content.findViewById(R.id.tv__subtitle1); + if (subtitle != null) + subtitle.setText(getSubtitleRes()); + return res; } + @DrawableRes + protected int getImageRes() + { + return 0; + } + + @StringRes + protected int getTitleRes() + { + return 0; + } + + @StringRes + protected int getSubtitleRes() + { + return 0; + } + @LayoutRes abstract protected int getLayoutRes(); diff --git a/android/src/com/mapswithme/maps/permissions/PermissionsDialogFragment.java b/android/src/com/mapswithme/maps/permissions/PermissionsDialogFragment.java index 1cf72a8c81..bb13fe2209 100644 --- a/android/src/com/mapswithme/maps/permissions/PermissionsDialogFragment.java +++ b/android/src/com/mapswithme/maps/permissions/PermissionsDialogFragment.java @@ -1,10 +1,12 @@ package com.mapswithme.maps.permissions; import android.os.Bundle; +import android.support.annotation.DrawableRes; import android.support.annotation.IdRes; import android.support.annotation.LayoutRes; import android.support.annotation.NonNull; import android.support.annotation.Nullable; +import android.support.annotation.StringRes; import android.support.v4.app.DialogFragment; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentActivity; @@ -44,6 +46,27 @@ public class PermissionsDialogFragment extends BasePermissionsDialogFragment mDetailDialog = (DialogFragment) f; } + @DrawableRes + @Override + protected int getImageRes() + { + return R.drawable.img_permissions; + } + + @StringRes + @Override + protected int getTitleRes() + { + return R.string.onboarding_permissions_title; + } + + @StringRes + @Override + protected int getSubtitleRes() + { + return R.string.onboarding_permissions_message; + } + @LayoutRes @Override protected int getLayoutRes() diff --git a/android/src/com/mapswithme/maps/permissions/StoragePermissionsDialogFragment.java b/android/src/com/mapswithme/maps/permissions/StoragePermissionsDialogFragment.java index 3ba82ac657..de8256a994 100644 --- a/android/src/com/mapswithme/maps/permissions/StoragePermissionsDialogFragment.java +++ b/android/src/com/mapswithme/maps/permissions/StoragePermissionsDialogFragment.java @@ -13,6 +13,8 @@ import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentManager; import android.view.View; import android.view.Window; +import android.widget.ImageView; +import android.widget.TextView; import com.mapswithme.maps.R; import com.mapswithme.maps.SplashActivity; @@ -65,6 +67,12 @@ public class StoragePermissionsDialogFragment extends BaseMwmDialogFragment impl res.setContentView(content); content.findViewById(R.id.btn__exit).setOnClickListener(this); content.findViewById(R.id.btn__settings).setOnClickListener(this); + ImageView image = (ImageView) content.findViewById(R.id.iv__image); + image.setImageResource(R.drawable.img_no_storage_permission); + TextView title = (TextView) content.findViewById(R.id.tv__title); + title.setText(R.string.onboarding_storage_permissions_title); + TextView subtitle = (TextView) content.findViewById(R.id.tv__subtitle1); + subtitle.setText(R.string.onboarding_storage_permissions_message); return res; }