Java tutorial
/************************************************************************** * This file is part of the Doode Android project * * Copyright (C) 2012 Eduardo Weiland * * duduweiland@users.sourceforge.net * * * * This program is free software: you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation, either version 3 of the License, or * * (at your option) any later version. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see <http://www.gnu.org/licenses/> * **************************************************************************/ package net.doode.android; import java.util.Vector; import android.content.Intent; import android.os.Bundle; import android.support.v4.view.ViewPager; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.widget.ListView; import android.widget.Toast; import com.actionbarsherlock.app.ActionBar; import com.actionbarsherlock.app.SherlockFragmentActivity; import com.actionbarsherlock.view.Menu; import com.actionbarsherlock.view.MenuItem; import com.slidingmenu.lib.SlidingMenu; import com.viewpagerindicator.TabPageIndicator; public class MainActivity extends SherlockFragmentActivity { public static final String TAG = "MainActivity"; private ActionBar mActionBar; private ViewPager mViewPager; private TabsAdapter mTabsAdapter; private SlidingMenu mSidebar; public static final int LOGIN_REQUEST = 1; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (!Doode.isOnline()) { Toast.makeText(this, R.string.offline, Toast.LENGTH_LONG).show(); } Vector<String> loginInfo = Doode.doodeDB.loadLoginInfo(); if (loginInfo == null) { startActivityForResult(new Intent(this, LoginActivity.class), LOGIN_REQUEST); return; } setContentView(R.layout.main); prepareActionBar(); prepareSidebar(); Log.i(TAG, "LOGIN: user=" + loginInfo.get(0) + ",device=" + Doode.deviceId + ",apikey=" + loginInfo.get(1)); Doode.client.login(loginInfo.get(0), Doode.deviceId, loginInfo.get(1)); mTabsAdapter = new TabsAdapter(this); // Add pages to adapter mTabsAdapter.addTab(getString(R.string.activity), ActivityFragment.class, null); mTabsAdapter.addTab(getString(R.string.mentions), MentionsFragment.class, null); mTabsAdapter.addTab(getString(R.string.messages), MessagesFragment.class, null); mTabsAdapter.addTab(getString(R.string.notifications), NotificationsFragment.class, null); // Get a reference for the ViewPager from layout mViewPager = (ViewPager) findViewById(R.id.pager); mViewPager.setAdapter(mTabsAdapter); TabPageIndicator indicator = (TabPageIndicator) findViewById(R.id.indicator); indicator.setViewPager(mViewPager); } @Override public boolean onCreateOptionsMenu(Menu menu) { getSupportMenuInflater().inflate(R.menu.main_menu, menu); boolean hasNotifications = false; // TODO: get notifications menu.findItem(R.id.menu_notifications).setVisible(hasNotifications); return super.onCreateOptionsMenu(menu); } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.menu_update_status: startActivity(new Intent(getApplicationContext(), UpdateStatusActivity.class)); return true; case R.id.menu_search: return true; case R.id.menu_preferences: return true; case R.id.menu_about: return true; case android.R.id.home: // Toggle the sidebar mSidebar.toggle(); break; } return super.onOptionsItemSelected(item); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == LOGIN_REQUEST) { // TODO } } /** * Get the action bar reference and set options. */ private void prepareActionBar() { mActionBar = getSupportActionBar(); //mActionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); mActionBar.setIcon(R.drawable.doode_logo); mActionBar.setDisplayHomeAsUpEnabled(true); mActionBar.setDisplayShowTitleEnabled(false); } /** * Create the sidebar on the left. */ private void prepareSidebar() { mSidebar = new SlidingMenu(this, SlidingMenu.SLIDING_CONTENT); mSidebar.setBehindWidth(280); // temp mSidebar.setTouchModeAbove(SlidingMenu.TOUCHMODE_MARGIN); mSidebar.setFadeDegree(0.3f); mSidebar.setShadowDrawable(R.drawable.sidebar_shadow); mSidebar.setShadowWidth(30); // temp View sidebar = LayoutInflater.from(this).inflate(R.layout.sidebar, null); final ListView listView = (ListView) sidebar.findViewById(android.R.id.list); listView.setFooterDividersEnabled(true); listView.setAdapter(new SidebarAdapter()); mSidebar.setMenu(sidebar); } }