Bug 1248908 - ToolbarDisplayLayout: Remove unnecessary null checks. r?sebastian draft
authorBogdan Postelnicu <bogdan.postelnicu@softvision.ro>
Thu, 18 Feb 2016 14:31:16 +0200
changeset 331858 7f95c5d839763a793b7240d12bbc0fff11c7934c
parent 331857 fcd35e10fa17d9fd11d92be48ae9698c2a900f1c
child 514480 41f8f45b41d27c8271e241f43bf36da4a9423b74
push id11093
push userBogdan.Postelnicu@softvision.ro
push dateThu, 18 Feb 2016 12:40:00 +0000
reviewerssebastian
bugs1248908
milestone47.0a1
Bug 1248908 - ToolbarDisplayLayout: Remove unnecessary null checks. r?sebastian MozReview-Commit-ID: LBtVN8F0oO4
mobile/android/base/java/org/mozilla/gecko/toolbar/BrowserToolbar.java
mobile/android/base/java/org/mozilla/gecko/toolbar/ToolbarDisplayLayout.java
--- a/mobile/android/base/java/org/mozilla/gecko/toolbar/BrowserToolbar.java
+++ b/mobile/android/base/java/org/mozilla/gecko/toolbar/BrowserToolbar.java
@@ -51,16 +51,17 @@ import android.view.LayoutInflater;
 import android.view.MenuInflater;
 import android.view.MotionEvent;
 import android.view.View;
 import android.view.ViewTreeObserver.OnGlobalLayoutListener;
 import android.view.inputmethod.InputMethodManager;
 import android.widget.Button;
 import android.widget.LinearLayout;
 import android.widget.PopupWindow;
+import android.support.annotation.NonNull;
 
 /**
 * {@code BrowserToolbar} is single entry point for users of the toolbar
 * subsystem i.e. this should be the only import outside the 'toolbar'
 * package.
 *
 * {@code BrowserToolbar} serves at the single event bus for all
 * sub-components in the toolbar. It tracks tab events and gecko messages
@@ -397,17 +398,17 @@ public abstract class BrowserToolbar ext
         if (!isEditing()) {
             throw new IllegalStateException("Expected to be editing");
         }
 
         urlEditLayout.restoreTabEditingState(editingState);
     }
 
     @Override
-    public void onTabChanged(Tab tab, Tabs.TabEvents msg, Object data) {
+    public void onTabChanged(@NonNull Tab tab, Tabs.TabEvents msg, Object data) {
         Log.d(LOGTAG, "onTabChanged: " + msg);
         final Tabs tabs = Tabs.getInstance();
 
         // These conditions are split into three phases:
         // * Always do first
         // * Handling specific to the selected tab
         // * Always do afterwards.
 
@@ -586,17 +587,17 @@ public abstract class BrowserToolbar ext
         }
 
         // Update A11y information
         tabsButton.setContentDescription((count > 1) ?
                                          activity.getString(R.string.num_tabs, count) :
                                          activity.getString(R.string.one_tab));
     }
 
-    private void updateDisplayLayout(Tab tab, EnumSet<UpdateFlags> flags) {
+    private void updateDisplayLayout(@NonNull Tab tab, EnumSet<UpdateFlags> flags) {
         if (isSwitchingTabs) {
             flags.add(UpdateFlags.DISABLE_ANIMATIONS);
         }
 
         urlDisplayLayout.updateFromTab(tab, flags);
 
         if (flags.contains(UpdateFlags.TITLE)) {
             if (!isEditing()) {
--- a/mobile/android/base/java/org/mozilla/gecko/toolbar/ToolbarDisplayLayout.java
+++ b/mobile/android/base/java/org/mozilla/gecko/toolbar/ToolbarDisplayLayout.java
@@ -24,16 +24,17 @@ import org.mozilla.gecko.toolbar.Browser
 import org.mozilla.gecko.util.ColorUtils;
 import org.mozilla.gecko.util.StringUtils;
 import org.mozilla.gecko.widget.themed.ThemedLinearLayout;
 import org.mozilla.gecko.widget.themed.ThemedTextView;
 
 import android.content.Context;
 import android.os.SystemClock;
 import android.support.annotation.Nullable;
+import android.support.annotation.NonNull;
 import android.text.Spannable;
 import android.text.SpannableStringBuilder;
 import android.text.TextUtils;
 import android.text.style.ForegroundColorSpan;
 import android.util.AttributeSet;
 import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
@@ -185,17 +186,17 @@ public class ToolbarDisplayLayout extend
         mSiteSecurity.setNextFocusDownId(nextId);
         mPageActionLayout.setNextFocusDownId(nextId);
     }
 
     void setToolbarPrefs(final ToolbarPrefs prefs) {
         mPrefs = prefs;
     }
 
-    void updateFromTab(Tab tab, EnumSet<UpdateFlags> flags) {
+    void updateFromTab(@NonNull Tab tab, EnumSet<UpdateFlags> flags) {
         // Several parts of ToolbarDisplayLayout's state depends
         // on the views being attached to the view tree.
         if (!mIsAttached) {
             return;
         }
 
         if (flags.contains(UpdateFlags.TITLE)) {
             updateTitle(tab);
@@ -205,32 +206,32 @@ public class ToolbarDisplayLayout extend
             updateSiteIdentity(tab);
         }
 
         if (flags.contains(UpdateFlags.PROGRESS)) {
             updateProgress(tab);
         }
 
         if (flags.contains(UpdateFlags.PRIVATE_MODE)) {
-            mTitle.setPrivateMode(tab != null && tab.isPrivate());
+            mTitle.setPrivateMode(tab.isPrivate());
         }
     }
 
     void setTitle(CharSequence title) {
         mTitle.setText(title);
 
         if (mTitleChangeListener != null) {
             mTitleChangeListener.onTitleChange(title);
         }
     }
 
-    private void updateTitle(Tab tab) {
+    private void updateTitle(@NonNull Tab tab) {
         // Keep the title unchanged if there's no selected tab,
         // or if the tab is entering reader mode.
-        if (tab == null || tab.isEnteringReaderMode()) {
+        if (tab.isEnteringReaderMode()) {
             return;
         }
 
         final String url = tab.getURL();
 
         // Setting a null title will ensure we just see the
         // "Enter Search or Address" placeholder text.
         if (AboutPages.isTitlelessAboutPage(url)) {
@@ -274,23 +275,18 @@ public class ToolbarDisplayLayout extend
     private String stripAboutReaderURL(final String url) {
         if (!AboutPages.isAboutReader(url)) {
             return url;
         }
 
         return ReaderModeUtils.getUrlFromAboutReader(url);
     }
 
-    private void updateSiteIdentity(Tab tab) {
-        final SiteIdentity siteIdentity;
-        if (tab == null) {
-            siteIdentity = null;
-        } else {
-            siteIdentity = tab.getSiteIdentity();
-        }
+    private void updateSiteIdentity(@NonNull Tab tab) {
+        final SiteIdentity siteIdentity = tab.getSiteIdentity();
 
         mSiteIdentityPopup.setSiteIdentity(siteIdentity);
 
         final SecurityMode securityMode;
         final MixedMode activeMixedMode;
         final MixedMode displayMixedMode;
         final TrackingMode trackingMode;
         final boolean loginInsecure;
@@ -337,23 +333,22 @@ public class ToolbarDisplayLayout extend
             mSecurityImageLevel = imageLevel;
             mSiteSecurity.setImageLevel(mSecurityImageLevel);
             updatePageActions();
         }
 
         mTrackingProtectionEnabled = trackingMode == TrackingMode.TRACKING_CONTENT_BLOCKED;
     }
 
-    private void updateProgress(@Nullable Tab tab) {
-        final boolean shouldShowThrobber = (tab != null &&
-                                            tab.getState() == Tab.STATE_LOADING);
+    private void updateProgress(@NonNull Tab tab) {
+        final boolean shouldShowThrobber = tab.getState() == Tab.STATE_LOADING;
 
         updateUiMode(shouldShowThrobber ? UIMode.PROGRESS : UIMode.DISPLAY);
 
-        if (tab != null && Tab.STATE_SUCCESS == tab.getState() && mTrackingProtectionEnabled) {
+        if (Tab.STATE_SUCCESS == tab.getState() && mTrackingProtectionEnabled) {
             mActivity.showTrackingProtectionPromptIfApplicable();
         }
     }
 
     private void updateUiMode(UIMode uiMode) {
         if (mUiMode == uiMode) {
             return;
         }