Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 34625c6b authored by Adam Powell's avatar Adam Powell Committed by Android (Google) Code Review
Browse files

Merge "Add ActionBar tab callback method onTabReselected"

parents 62f2ada6 7f9b9054
Loading
Loading
Loading
Loading
+15 −0
Original line number Original line Diff line number Diff line
@@ -19972,6 +19972,21 @@
 deprecated="not deprecated"
 deprecated="not deprecated"
 visibility="public"
 visibility="public"
>
>
<method name="onTabReselected"
 return="void"
 abstract="true"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="tab" type="android.app.ActionBar.Tab">
</parameter>
<parameter name="ft" type="android.app.FragmentTransaction">
</parameter>
</method>
<method name="onTabSelected"
<method name="onTabSelected"
 return="void"
 return="void"
 abstract="true"
 abstract="true"
+10 −0
Original line number Original line Diff line number Diff line
@@ -470,5 +470,15 @@ public abstract class ActionBar {
         *        will be executed in a single transaction.
         *        will be executed in a single transaction.
         */
         */
        public void onTabUnselected(Tab tab, FragmentTransaction ft);
        public void onTabUnselected(Tab tab, FragmentTransaction ft);

        /**
         * Called when a tab that is already selected is chosen again by the user.
         * Some applications may use this action to return to the top level of a category.
         *
         * @param tab The tab that was reselected.
         * @param ft A {@link FragmentTransaction} for queuing fragment operations to execute
         *        once this method returns.
         */
        public void onTabReselected(Tab tab, FragmentTransaction ft);
    }
    }
}
}
+14 −11
Original line number Original line Diff line number Diff line
@@ -326,12 +326,14 @@ public class ActionBarImpl extends ActionBar {


    @Override
    @Override
    public void selectTab(Tab tab) {
    public void selectTab(Tab tab) {
        final FragmentTransaction trans = mActivity.getFragmentManager().openTransaction();

        if (mSelectedTab == tab) {
        if (mSelectedTab == tab) {
            return;
            if (mSelectedTab != null) {
                mSelectedTab.getCallback().onTabReselected(mSelectedTab, trans);
            }
            }

        } else {
            mActionView.setTabSelected(tab != null ? tab.getPosition() : Tab.INVALID_POSITION);
            mActionView.setTabSelected(tab != null ? tab.getPosition() : Tab.INVALID_POSITION);
        final FragmentTransaction trans = mActivity.getFragmentManager().openTransaction();
            if (mSelectedTab != null) {
            if (mSelectedTab != null) {
                mSelectedTab.getCallback().onTabUnselected(mSelectedTab, trans);
                mSelectedTab.getCallback().onTabUnselected(mSelectedTab, trans);
            }
            }
@@ -339,6 +341,7 @@ public class ActionBarImpl extends ActionBar {
            if (mSelectedTab != null) {
            if (mSelectedTab != null) {
                mSelectedTab.getCallback().onTabSelected(mSelectedTab, trans);
                mSelectedTab.getCallback().onTabSelected(mSelectedTab, trans);
            }
            }
        }


        if (!trans.isEmpty()) {
        if (!trans.isEmpty()) {
            trans.commit();
            trans.commit();