Loading core/java/com/android/internal/app/ActionBarImpl.java +8 −2 Original line number Diff line number Diff line Loading @@ -396,7 +396,10 @@ public class ActionBarImpl extends ActionBar { int selectedTabPosition = mSelectedTab != null ? mSelectedTab.getPosition() : mSavedTabPosition; mActionView.removeTabAt(position); mTabs.remove(position); TabImpl removedTab = mTabs.remove(position); if (removedTab != null) { removedTab.setPosition(-1); } final int newTabCount = mTabs.size(); for (int i = position; i < newTabCount; i++) { Loading Loading @@ -670,7 +673,7 @@ public class ActionBarImpl extends ActionBar { private Object mTag; private Drawable mIcon; private CharSequence mText; private int mPosition; private int mPosition = -1; private View mCustomView; @Override Loading Loading @@ -702,6 +705,7 @@ public class ActionBarImpl extends ActionBar { @Override public Tab setCustomView(View view) { mCustomView = view; if (mPosition >= 0) mActionView.updateTab(mPosition); return this; } Loading Loading @@ -732,6 +736,7 @@ public class ActionBarImpl extends ActionBar { @Override public Tab setIcon(Drawable icon) { mIcon = icon; if (mPosition >= 0) mActionView.updateTab(mPosition); return this; } Loading @@ -743,6 +748,7 @@ public class ActionBarImpl extends ActionBar { @Override public Tab setText(CharSequence text) { mText = text; if (mPosition >= 0) mActionView.updateTab(mPosition); return this; } Loading core/java/com/android/internal/widget/ActionBarView.java +55 −21 Original line number Diff line number Diff line Loading @@ -587,6 +587,10 @@ public class ActionBarView extends AbsActionBarView { } } public void updateTab(int position) { ((TabView) mTabLayout.getChildAt(position)).update(); } public void removeTabAt(int position) { if (mTabLayout != null) { mTabLayout.removeViewAt(position); Loading Loading @@ -929,34 +933,61 @@ public class ActionBarView extends AbsActionBarView { private static class TabView extends LinearLayout { private ActionBar.Tab mTab; private TextView mTextView; private ImageView mIconView; private View mCustomView; public TabView(Context context, ActionBar.Tab tab) { super(context, null, com.android.internal.R.attr.actionBarTabStyle); mTab = tab; update(); setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT, 1)); } public void update() { final ActionBar.Tab tab = mTab; final View custom = tab.getCustomView(); if (custom != null) { addView(custom); mCustomView = custom; if (mTextView != null) mTextView.setVisibility(GONE); if (mIconView != null) { mIconView.setVisibility(GONE); mIconView.setImageDrawable(null); } } else { // TODO Style tabs based on the theme if (mCustomView != null) { removeView(mCustomView); mCustomView = null; } final Drawable icon = tab.getIcon(); final CharSequence text = tab.getText(); if (icon != null) { ImageView iconView = new ImageView(context); iconView.setImageDrawable(icon); if (mIconView == null) { ImageView iconView = new ImageView(getContext()); LayoutParams lp = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); lp.gravity = Gravity.CENTER_VERTICAL; iconView.setLayoutParams(lp); addView(iconView); addView(iconView, 0); mIconView = iconView; } mIconView.setImageDrawable(icon); mIconView.setVisibility(VISIBLE); } else if (mIconView != null) { mIconView.setVisibility(GONE); mIconView.setImageDrawable(null); } if (text != null) { TextView textView = new TextView(context, null, if (mTextView == null) { TextView textView = new TextView(getContext(), null, com.android.internal.R.attr.actionBarTabTextStyle); textView.setText(text); textView.setSingleLine(); textView.setEllipsize(TruncateAt.END); LayoutParams lp = new LayoutParams(LayoutParams.WRAP_CONTENT, Loading @@ -964,11 +995,14 @@ public class ActionBarView extends AbsActionBarView { lp.gravity = Gravity.CENTER_VERTICAL; textView.setLayoutParams(lp); addView(textView); mTextView = textView; } mTextView.setText(text); mTextView.setVisibility(VISIBLE); } else { mTextView.setVisibility(GONE); } } setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT, 1)); } public ActionBar.Tab getTab() { Loading policy/src/com/android/internal/policy/impl/PhoneWindow.java +1 −0 Original line number Diff line number Diff line Loading @@ -2592,6 +2592,7 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { final ActionBarContainer splitView = (ActionBarContainer) findViewById( com.android.internal.R.id.split_action_bar); if (splitView != null) { splitView.setVisibility(View.VISIBLE); mActionBar.setSplitActionBar(splitActionBar); mActionBar.setSplitView(splitView); Loading Loading
core/java/com/android/internal/app/ActionBarImpl.java +8 −2 Original line number Diff line number Diff line Loading @@ -396,7 +396,10 @@ public class ActionBarImpl extends ActionBar { int selectedTabPosition = mSelectedTab != null ? mSelectedTab.getPosition() : mSavedTabPosition; mActionView.removeTabAt(position); mTabs.remove(position); TabImpl removedTab = mTabs.remove(position); if (removedTab != null) { removedTab.setPosition(-1); } final int newTabCount = mTabs.size(); for (int i = position; i < newTabCount; i++) { Loading Loading @@ -670,7 +673,7 @@ public class ActionBarImpl extends ActionBar { private Object mTag; private Drawable mIcon; private CharSequence mText; private int mPosition; private int mPosition = -1; private View mCustomView; @Override Loading Loading @@ -702,6 +705,7 @@ public class ActionBarImpl extends ActionBar { @Override public Tab setCustomView(View view) { mCustomView = view; if (mPosition >= 0) mActionView.updateTab(mPosition); return this; } Loading Loading @@ -732,6 +736,7 @@ public class ActionBarImpl extends ActionBar { @Override public Tab setIcon(Drawable icon) { mIcon = icon; if (mPosition >= 0) mActionView.updateTab(mPosition); return this; } Loading @@ -743,6 +748,7 @@ public class ActionBarImpl extends ActionBar { @Override public Tab setText(CharSequence text) { mText = text; if (mPosition >= 0) mActionView.updateTab(mPosition); return this; } Loading
core/java/com/android/internal/widget/ActionBarView.java +55 −21 Original line number Diff line number Diff line Loading @@ -587,6 +587,10 @@ public class ActionBarView extends AbsActionBarView { } } public void updateTab(int position) { ((TabView) mTabLayout.getChildAt(position)).update(); } public void removeTabAt(int position) { if (mTabLayout != null) { mTabLayout.removeViewAt(position); Loading Loading @@ -929,34 +933,61 @@ public class ActionBarView extends AbsActionBarView { private static class TabView extends LinearLayout { private ActionBar.Tab mTab; private TextView mTextView; private ImageView mIconView; private View mCustomView; public TabView(Context context, ActionBar.Tab tab) { super(context, null, com.android.internal.R.attr.actionBarTabStyle); mTab = tab; update(); setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT, 1)); } public void update() { final ActionBar.Tab tab = mTab; final View custom = tab.getCustomView(); if (custom != null) { addView(custom); mCustomView = custom; if (mTextView != null) mTextView.setVisibility(GONE); if (mIconView != null) { mIconView.setVisibility(GONE); mIconView.setImageDrawable(null); } } else { // TODO Style tabs based on the theme if (mCustomView != null) { removeView(mCustomView); mCustomView = null; } final Drawable icon = tab.getIcon(); final CharSequence text = tab.getText(); if (icon != null) { ImageView iconView = new ImageView(context); iconView.setImageDrawable(icon); if (mIconView == null) { ImageView iconView = new ImageView(getContext()); LayoutParams lp = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); lp.gravity = Gravity.CENTER_VERTICAL; iconView.setLayoutParams(lp); addView(iconView); addView(iconView, 0); mIconView = iconView; } mIconView.setImageDrawable(icon); mIconView.setVisibility(VISIBLE); } else if (mIconView != null) { mIconView.setVisibility(GONE); mIconView.setImageDrawable(null); } if (text != null) { TextView textView = new TextView(context, null, if (mTextView == null) { TextView textView = new TextView(getContext(), null, com.android.internal.R.attr.actionBarTabTextStyle); textView.setText(text); textView.setSingleLine(); textView.setEllipsize(TruncateAt.END); LayoutParams lp = new LayoutParams(LayoutParams.WRAP_CONTENT, Loading @@ -964,11 +995,14 @@ public class ActionBarView extends AbsActionBarView { lp.gravity = Gravity.CENTER_VERTICAL; textView.setLayoutParams(lp); addView(textView); mTextView = textView; } mTextView.setText(text); mTextView.setVisibility(VISIBLE); } else { mTextView.setVisibility(GONE); } } setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT, 1)); } public ActionBar.Tab getTab() { Loading
policy/src/com/android/internal/policy/impl/PhoneWindow.java +1 −0 Original line number Diff line number Diff line Loading @@ -2592,6 +2592,7 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { final ActionBarContainer splitView = (ActionBarContainer) findViewById( com.android.internal.R.id.split_action_bar); if (splitView != null) { splitView.setVisibility(View.VISIBLE); mActionBar.setSplitActionBar(splitActionBar); mActionBar.setSplitView(splitView); Loading