/** ** Copyright (c) 2010 Ushahidi Inc ** All rights reserved ** Contact: team@ushahidi.com ** Website: http://www.ushahidi.com ** ** GNU Lesser General Public License Usage ** This file may be used under the terms of the GNU Lesser ** General Public License version 3 as published by the Free Software ** Foundation and appearing in the file LICENSE.LGPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU Lesser General Public License version 3 requirements ** will be met: http://www.gnu.org/licenses/lgpl.html. ** ** ** If you have questions regarding the use of this file, please contact ** Ushahidi developers at team@ushahidi.com. ** **/ package com.ushahidi.android.app; import android.content.Intent; import android.content.pm.PackageManager.NameNotFoundException; import android.net.Uri; import android.os.Bundle; import android.text.TextUtils; import android.util.Log; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.widget.ImageButton; import android.widget.TextView; public class About extends Dashboard { private static final int HOME = Menu.FIRST + 1; private static final int SETTINGS = Menu.FIRST + 2; private static final int GOTOHOME = 0; private static final int REQUEST_CODE_SETTINGS = 1; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.about); setTitleFromActivityLabel(R.id.title_text); //SEARCH ImageButton searchButton = (ImageButton) findViewById(R.id.search_report_btn); if (!TextUtils.isEmpty(getString(R.string.deployment_url))) { searchButton.setVisibility(View.GONE); } else { searchButton.setVisibility(View.VISIBLE); } //VERSION TextView version = (TextView) findViewById(R.id.version); try { version.setText(getPackageManager().getPackageInfo(this.getPackageName(), 0).versionName); } catch (NameNotFoundException e) { Log.e("About", "NameNotFoundException", e); version.setText(""); } //BUTTONS setButtonVisibility((Button)findViewById(R.id.media_link), getString(R.string.media_url)); setButtonVisibility((Button)findViewById(R.id.team_link), getString(R.string.team_url)); setButtonVisibility((Button)findViewById(R.id.twitter_link), getString(R.string.twitter_url)); setButtonVisibility((Button)findViewById(R.id.facebook_link), getString(R.string.facebook_url)); setButtonVisibility((Button)findViewById(R.id.contact_link), getString(R.string.contact_url)); } // override the prompt display so it doesn't show a prompt @Override public void promptForDeployment() {} private void setButtonVisibility(final Button button, final String url) { if (!TextUtils.isEmpty(url)) { button.setVisibility(View.VISIBLE); button.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { startActivity(new Intent(android.content.Intent.ACTION_VIEW, Uri.parse(url))); } }); } else { button.setVisibility(View.GONE); } } private void populateMenu(Menu menu) { MenuItem i; i = menu.add(Menu.NONE, HOME, Menu.NONE, R.string.menu_home); i.setIcon(R.drawable.menu_home); i = menu.add(Menu.NONE, SETTINGS, Menu.NONE, R.string.menu_settings); i.setIcon(R.drawable.menu_about); } @Override public boolean onCreateOptionsMenu(Menu menu) { populateMenu(menu); return (super.onCreateOptionsMenu(menu)); } @Override public boolean onOptionsItemSelected(MenuItem item) { // applyMenuChoice(item); return (applyMenuChoice(item) || super.onOptionsItemSelected(item)); } private boolean applyMenuChoice(MenuItem item) { Intent intent; switch (item.getItemId()) { case HOME: intent = new Intent(About.this, Dashboard.class); startActivityForResult(intent, GOTOHOME); return true; case SETTINGS: intent = new Intent(About.this, Settings.class); // Make it a subactivity so we know when it returns startActivityForResult(intent, REQUEST_CODE_SETTINGS); return (true); } return false; } }