Fix NFC Intent and URL input behavior

SWE will show up for valid NFC intents.
When editing the URL, the voice input icon
shows up only when the url is empty.

Change-Id: If8338a03e4a18bcc78acfdb58bab331bec9af9cd
diff --git a/AndroidManifest.xml.jinja2 b/AndroidManifest.xml.jinja2
index 0c421c6..d888de2 100644
--- a/AndroidManifest.xml.jinja2
+++ b/AndroidManifest.xml.jinja2
@@ -136,8 +136,8 @@
                 <data android:scheme="file" />
                 <data android:mimeType="application/x-webarchive-xml"/>
             </intent-filter>
-            <!-- Accept inbound NFC URLs at a low priority -->
-            <intent-filter android:priority="-101">
+            <!-- Accept inbound NFC URLs -->
+            <intent-filter>
                 <action android:name="android.nfc.action.NDEF_DISCOVERED" />
                 <category android:name="android.intent.category.DEFAULT" />
                 <data android:scheme="http" />
diff --git a/res/layout/title_bar_nav.xml b/res/layout/title_bar_nav.xml
index aa5032d..375ba84 100644
--- a/res/layout/title_bar_nav.xml
+++ b/res/layout/title_bar_nav.xml
@@ -61,6 +61,7 @@
             android:contentDescription="@string/accessibility_button_stop"
             android:paddingStart="6dp"
             android:paddingEnd="6dp"
+            android:visibility="gone"
             android:src="@drawable/ic_action_stop" />
 
         <com.android.browser.UrlInputView
@@ -90,7 +91,6 @@
             style="@style/NavButton"
             android:layout_width="wrap_content"
             android:contentDescription="@string/accessibility_button_voice"
-            android:paddingEnd="4dip"
             android:src="@drawable/ic_action_microphone_normal"
             android:visibility="gone" />
 
diff --git a/src/com/android/browser/NavigationBarBase.java b/src/com/android/browser/NavigationBarBase.java
index 8d34f13..48e23bd 100644
--- a/src/com/android/browser/NavigationBarBase.java
+++ b/src/com/android/browser/NavigationBarBase.java
@@ -765,11 +765,11 @@
     @Override
     public void onStateChanged(int state) {
         mVoiceButton.setVisibility(View.GONE);
+        mClearButton.setVisibility(View.GONE);
         switch(state) {
             case STATE_NORMAL:
                 mFaviconTile.setVisibility(View.VISIBLE);
                 mMagnify.setVisibility(View.GONE);
-                mClearButton.setVisibility(View.GONE);
                 mMore.setVisibility(View.VISIBLE);
                 if (mUiController != null) {
                     Tab currentTab = mUiController.getCurrentTab();
@@ -785,20 +785,24 @@
                 break;
             case STATE_HIGHLIGHTED:
                 mFaviconTile.setVisibility(View.GONE);
-                mMagnify.setVisibility(View.GONE);
-                mClearButton.setVisibility(View.GONE);
+                mMagnify.setVisibility(View.VISIBLE);
+                mClearButton.setVisibility(View.VISIBLE);
                 mMore.setVisibility(View.GONE);
                 if (mUiController != null) {
                     mUiController.setWindowDimming(0.75f);
-                    if (mUiController.supportsVoice()) {
-                        mVoiceButton.setVisibility(View.VISIBLE);
-                    }
                 }
                 break;
             case STATE_EDITED:
+                if (TextUtils.isEmpty(mUrlInput.getText()) &&
+                        mUiController != null &&
+                        mUiController.supportsVoice()) {
+                    mVoiceButton.setVisibility(View.VISIBLE);
+                }
+                else {
+                    mClearButton.setVisibility(View.VISIBLE);
+                }
                 mFaviconTile.setVisibility(View.GONE);
                 mMagnify.setVisibility(View.VISIBLE);
-                mClearButton.setVisibility(View.VISIBLE);
                 mMore.setVisibility(View.GONE);
                 break;
         }
diff --git a/src/com/android/browser/NavigationBarPhone.java b/src/com/android/browser/NavigationBarPhone.java
index 5b2bb75..a94cabd 100644
--- a/src/com/android/browser/NavigationBarPhone.java
+++ b/src/com/android/browser/NavigationBarPhone.java
@@ -147,7 +147,6 @@
                 mUrlInput.selectAll();
             }
 
-            mStopButton.setVisibility(View.VISIBLE);
             mTabSwitcher.setVisibility(View.GONE);
             mTabText.setVisibility(View.GONE);
 
diff --git a/src/com/android/browser/UrlInputView.java b/src/com/android/browser/UrlInputView.java
index 738aec8..8a70b6d 100755
--- a/src/com/android/browser/UrlInputView.java
+++ b/src/com/android/browser/UrlInputView.java
@@ -333,7 +333,8 @@
 
     @Override
     public void onTextChanged(CharSequence s, int start, int before, int count) {
-        if (StateListener.STATE_HIGHLIGHTED == mState) {
+        if (StateListener.STATE_HIGHLIGHTED == mState ||
+            StateListener.STATE_EDITED == mState) {
             changeState(StateListener.STATE_EDITED);
         }
     }