Bug 1393672 - fix per ux input draft
authorNevin Chen(:nechen) <cnevinchen@gmail.com>
Thu, 05 Oct 2017 10:16:19 +0800
changeset 676636 5eb8aa903c103607a79a636b711954f504282964
parent 675310 427880faf9c66af6c500e3070a64aa368c514527
child 676637 97df1b5816282732cb07cda1d9236d4b4447ea8b
push id83558
push userbmo:cnevinchen@gmail.com
push dateMon, 09 Oct 2017 06:40:14 +0000
bugs1393672
milestone58.0a1
Bug 1393672 - fix per ux input MozReview-Commit-ID: C7nutlXNMzW
mobile/android/app/src/main/res/drawable/pwa_ob_bg.xml
mobile/android/app/src/main/res/layout/pwa_onboarding.xml
mobile/android/app/src/photon/res/values-land/styles.xml
mobile/android/app/src/photon/res/values/styles.xml
mobile/android/base/java/org/mozilla/gecko/BrowserApp.java
mobile/android/base/java/org/mozilla/gecko/toolbar/PageActionLayout.java
mobile/android/base/java/org/mozilla/gecko/toolbar/PwaConfirm.java
mobile/android/base/java/org/mozilla/gecko/toolbar/PwaOnboarding.java
mobile/android/base/locales/en-US/android_strings.dtd
mobile/android/base/moz.build
new file mode 100644
--- /dev/null
+++ b/mobile/android/app/src/main/res/drawable/pwa_ob_bg.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+   - License, v. 2.0. If a copy of the MPL was not distributed with this
+   - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+       android:shape="rectangle" >
+  <solid android:color="@color/photon_browser_toolbar_bg" />
+  <corners
+      android:radius="@dimen/standard_corner_radius" />
+</shape>
--- a/mobile/android/app/src/main/res/layout/pwa_onboarding.xml
+++ b/mobile/android/app/src/main/res/layout/pwa_onboarding.xml
@@ -1,25 +1,21 @@
 <?xml version="1.0" encoding="utf-8"?>
 <org.mozilla.gecko.toolbar.PwaOnboarding xmlns:android="http://schemas.android.com/apk/res/android"
     android:id="@+id/pwa_onboarding_root"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:background="#CCBBBBBB"
     android:clickable="true"
-    android:orientation="vertical"
-    android:paddingBottom="50dp"
-    android:paddingEnd="30dp"
-    android:paddingStart="30dp"
-    android:paddingTop="50dp">
+    android:orientation="vertical">
 
     <LinearLayout
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:background="#fff"
+        style="@style/PwaObPrompt"
+        android:layout_centerInParent="true"
+        android:background="@drawable/pwa_ob_bg"
         android:clickable="true"
         android:orientation="vertical"
         android:weightSum="10">
 
         <View
             android:layout_width="match_parent"
             android:layout_height="0dp"
             android:layout_weight="0.8" />
@@ -40,34 +36,36 @@
 
         <TextView
             android:id="@+id/pwa_onboarding_sumo"
             android:layout_width="match_parent"
             android:layout_height="0dp"
             android:layout_marginEnd="20dp"
             android:layout_marginStart="20dp"
             android:layout_weight="3"
-            android:text="You can easily add this website to
-your Home screen to have instant
-access and browse faster with an
-app-like experience."
-            android:textSize="13sp" />
+            android:textColor="@color/ob_subtitle"
+
+            android:textSize="16sp" />
 
         <View
             android:layout_width="match_parent"
             android:layout_height="0dp"
             android:layout_weight="0.6" />
 
+        <View
+            android:layout_width="match_parent"
+            android:layout_height="1dp"
+            android:background="#e5e5e5" />
+
         <TextView
             android:id="@+id/pwa_onboarding_dismiss"
             android:layout_width="match_parent"
             android:layout_height="0dp"
-            android:layout_weight="1"
+            android:minHeight="50dp"
+            android:layout_weight="1.3"
             android:gravity="center"
-            android:minHeight="48dp"
-
             android:text="Continue to Website"
             android:textAllCaps="true"
             android:textColor="@color/photon_highlight"
             android:textStyle="bold" />
     </LinearLayout>
 
 </org.mozilla.gecko.toolbar.PwaOnboarding>
\ No newline at end of file
--- a/mobile/android/app/src/photon/res/values-land/styles.xml
+++ b/mobile/android/app/src/photon/res/values-land/styles.xml
@@ -9,9 +9,15 @@
     <style name="TabsItem">
         <item name="android:nextFocusDown">@+id/close</item>
     </style>
 
     <style name="TabsItemClose">
         <item name="android:nextFocusUp">@+id/info</item>
     </style>
 
+    <style name="PwaObPrompt">
+        <item name="android:layout_width">320dp</item>
+        <item name="android:layout_height">wrap_content</item>
+
+    </style>
+
 </resources>
--- a/mobile/android/app/src/photon/res/values/styles.xml
+++ b/mobile/android/app/src/photon/res/values/styles.xml
@@ -937,10 +937,18 @@
         <item name="android:layout_marginLeft">12dp</item>
         <item name="android:layout_marginRight">8dp</item>
     </style>
 
     <style name="PwaConfirm">
         <item name="android:layout_width">match_parent</item>
     </style>
 
+    <style name="PwaObPrompt">
+        <item name="android:layout_width">match_parent</item>
+        <item name="android:layout_height">match_parent</item>
+        <item name="android:layout_marginBottom">50dp</item>
+        <item name="android:layout_marginEnd">30dp</item>
+        <item name="android:layout_marginStart">30dp</item>
+        <item name="android:layout_marginTop">50dp</item>
+    </style>
 
 </resources>
--- a/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java
+++ b/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java
@@ -145,16 +145,17 @@ import org.mozilla.gecko.tabs.TabHistory
 import org.mozilla.gecko.tabs.TabsPanel;
 import org.mozilla.gecko.telemetry.TelemetryCorePingDelegate;
 import org.mozilla.gecko.telemetry.TelemetryUploadService;
 import org.mozilla.gecko.telemetry.measurements.SearchCountMeasurements;
 import org.mozilla.gecko.toolbar.AutocompleteHandler;
 import org.mozilla.gecko.toolbar.BrowserToolbar;
 import org.mozilla.gecko.toolbar.BrowserToolbar.TabEditingState;
 import org.mozilla.gecko.toolbar.PageActionLayout;
+import org.mozilla.gecko.toolbar.PwaOnboarding;
 import org.mozilla.gecko.trackingprotection.TrackingProtectionPrompt;
 import org.mozilla.gecko.updater.PostUpdateHandler;
 import org.mozilla.gecko.updater.UpdateServiceHelper;
 import org.mozilla.gecko.util.ActivityUtils;
 import org.mozilla.gecko.util.Clipboard;
 import org.mozilla.gecko.util.ContextUtils;
 import org.mozilla.gecko.util.DrawableUtil;
 import org.mozilla.gecko.util.EventCallback;
@@ -1175,17 +1176,17 @@ public class BrowserApp extends GeckoApp
         if (urls != null) {
             openUrls(urls);
         }
     }
 
     @Override
     public void onResume() {
         super.onResume();
-
+        PwaOnboarding.show(this);
         if (mIsAbortingAppLaunch) {
             return;
         }
 
         if (!mHasResumed) {
             getAppEventDispatcher().unregisterUiThreadListener(this, "Prompt:ShowTop");
             mHasResumed = true;
         }
--- a/mobile/android/base/java/org/mozilla/gecko/toolbar/PageActionLayout.java
+++ b/mobile/android/base/java/org/mozilla/gecko/toolbar/PageActionLayout.java
@@ -116,29 +116,31 @@ public class PageActionLayout extends Th
 
         if ("PageActions:Add".equals(event)) {
             final String id = message.getString("id");
 
             boolean alreadyAdded = isPwaAdded(id);
             if (alreadyAdded) {
                 return;
             }
-
-            maybeShowOnboarding();
+            // test
+            PwaOnboarding.show(getContext());
+            // test
 
             final String title = message.getString("title");
             final String imageURL = message.getString("icon");
             final boolean important = message.getBoolean("important");
             final boolean useTint = message.getBoolean("useTint");
 
             addPageAction(id, title, imageURL, useTint, new OnPageActionClickListeners() {
                 @Override
                 public void onClick(final String id) {
                     if (id != null && id.equals(PageAction.UUID_PAGE_ACTION_PWA)) {
                         mPwaConfirm = PwaConfirm.show(getContext());
+                        maybeShowOnboarding();
                         return;
                     }
                     final GeckoBundle data = new GeckoBundle(1);
                     data.putString("id", id);
                     EventDispatcher.getInstance().dispatch("PageActions:Clicked", data);
                 }
 
                 @Override
--- a/mobile/android/base/java/org/mozilla/gecko/toolbar/PwaConfirm.java
+++ b/mobile/android/base/java/org/mozilla/gecko/toolbar/PwaConfirm.java
@@ -27,17 +27,17 @@ public class PwaConfirm extends Relative
 
     boolean isAnimating = false;
 
 
     public static PwaConfirm show(Context context) {
         if (context instanceof Activity) {
             final ViewGroup contetView = (ViewGroup) ((Activity) context).findViewById(R.id.gecko_layout);
             final View oldPwaConfirm = contetView.findViewById(R.id.pwa_confirm_root);
-            if ((oldPwaConfirm !=null)) {
+            if ((oldPwaConfirm != null)) {
                 // prevent this view to be added twice.
                 return (PwaConfirm) oldPwaConfirm;
             }
             View parent = LayoutInflater.from(context).inflate(R.layout.pwa_confirm, contetView);
             final PwaConfirm pwaConfirm = (PwaConfirm) parent.findViewById(R.id.pwa_confirm_root);
             pwaConfirm.appear();
             return pwaConfirm;
         }
--- a/mobile/android/base/java/org/mozilla/gecko/toolbar/PwaOnboarding.java
+++ b/mobile/android/base/java/org/mozilla/gecko/toolbar/PwaOnboarding.java
@@ -8,21 +8,22 @@ import android.app.Activity;
 import android.content.Context;
 import android.support.annotation.Nullable;
 import android.util.AttributeSet;
 import android.view.KeyEvent;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.LinearLayout;
+import android.widget.RelativeLayout;
 
 import org.mozilla.gecko.R;
 import org.mozilla.gecko.Tabs;
 
-public class PwaOnboarding extends LinearLayout {
+public class PwaOnboarding extends RelativeLayout {
 
     static final String LINK_PWA_SUMO = "http://pwa.rocks";
 
     public static void show(Context context) {
         if (context instanceof Activity) {
             final ViewGroup contetView = (ViewGroup) ((Activity) context).findViewById(android.R.id.content);
             LayoutInflater.from(context).inflate(R.layout.pwa_onboarding, contetView);
         }
--- a/mobile/android/base/locales/en-US/android_strings.dtd
+++ b/mobile/android/base/locales/en-US/android_strings.dtd
@@ -848,8 +848,10 @@ is simply hidden from the Activity Strea
 <!ENTITY activity_stream_delete_history "Delete from History">
 
 <!ENTITY private_tab_panel_title "Private Browsing + Tracking Protection">
 <!ENTITY private_tab_panel_description "&brandShortName; blocks parts of the pages that may track your browsing activity.">
 <!ENTITY private_tab_panel_description2 "We won\'t remember any history, but downloaded files and new bookmarks will still be saved to your device.">
 <!ENTITY private_tab_learn_more "Want to learn more?">
 
 <!ENTITY fullscreen_warning "Entered full screen">
+<!ENTITY pwa_ob_desc "You can easily add this website to\nyour Home screen to have instant\naccess and browse faster with an\napp-like experience.">
+<!ENTITY pwa_ob_sumo "https://support.mozilla.org/">
\ No newline at end of file
--- a/mobile/android/base/moz.build
+++ b/mobile/android/base/moz.build
@@ -924,16 +924,17 @@ gbjar.sources += ['java/org/mozilla/geck
     'toolbar/BackButton.java',
     'toolbar/BrowserToolbar.java',
     'toolbar/BrowserToolbarPhone.java',
     'toolbar/BrowserToolbarPhoneBase.java',
     'toolbar/CanvasDelegate.java',
     'toolbar/NavButton.java',
     'toolbar/PageActionLayout.java',
     'toolbar/PhoneTabsButton.java',
+    'toolbar/PwaConfirm.java',
     'toolbar/PwaOnboarding.java',
     'toolbar/SecurityModeUtil.java',
     'toolbar/ShapedButton.java',
     'toolbar/ShapedButtonFrameLayout.java',
     'toolbar/SiteIdentityPopup.java',
     'toolbar/ToolbarEditLayout.java',
     'toolbar/ToolbarEditText.java',
     'toolbar/ToolbarPrefs.java',