/* * Copyright (C) 2011 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.example.android.newsreader; import android.app.ActionBar.OnNavigationListener; import android.app.ActionBar.Tab; import android.app.ActionBar.TabListener; import android.app.FragmentTransaction; /** * Adapter for action bar navigation events. * * This class implements an adapter that facilitates handling of action bar navigation events. * An instance of this class must be installed as a TabListener or OnNavigationListener on an * Action Bar, and it will relay the navigation events to a configured listener * (a {@link CompatActionBarNavListener}). * * This class should only be instanced and used on Android platforms that support the Action Bar, * that is, SDK level 11 and above. */ public class CompatActionBarNavHandler implements TabListener, OnNavigationListener { // The listener that we notify of navigation events CompatActionBarNavListener mNavListener; /** * Constructs an instance with the given listener. * * @param listener the listener to notify when a navigation event occurs. */ public CompatActionBarNavHandler(CompatActionBarNavListener listener) { mNavListener = listener; } /** * Called by framework when a tab is selected. * * This will cause a navigation event to be delivered to the configured listener. */ @Override public void onTabSelected(Tab tab, FragmentTransaction ft) { // TODO Auto-generated method stub mNavListener.onCategorySelected(tab.getPosition()); } /** * Called by framework when a item on the navigation menu is selected. * * This will cause a navigation event to be delivered to the configured listener. */ @Override public boolean onNavigationItemSelected(int itemPosition, long itemId) { mNavListener.onCategorySelected(itemPosition); return true; } /** * Called by framework when a tab is re-selected. That is, it was already selected and is * tapped on again. This is not used in our app. */ @Override public void onTabReselected(Tab tab, FragmentTransaction ft) { // we don't care } /** * Called by framework when a tab is unselected. Not used in our app. */ @Override public void onTabUnselected(Tab tab, FragmentTransaction ft) { // we don't care } }