Java tutorial
/* * Copyright (C) 2013 The WLANAudit project contributors. * * 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 es.glasspixel.wlanaudit.activities; import android.app.AlertDialog; import android.content.Intent; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; import android.net.Uri; import android.os.Bundle; import android.support.v4.app.NavUtils; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.webkit.WebView; import android.widget.Button; import android.widget.ImageButton; import android.widget.TextView; import com.actionbarsherlock.app.ActionBar; import com.actionbarsherlock.app.SherlockActivity; import com.actionbarsherlock.view.MenuItem; import com.readystatesoftware.systembartint.SystemBarTintManager; import es.glasspixel.wlanaudit.R; public class AboutActivity extends SherlockActivity { /** * Label which shows current version number */ private TextView mVersionValueLabel; /** * Label which shows current release number */ private TextView mReleaseValueLabel; /** * Button to display OSS License dialog */ private Button mOssLicensesButton; /** * Button to open Facebook official page */ private ImageButton mFacebookButton; /** * Button to open official Twitter page */ private ImageButton mTwitterButton; /** * Button to open official G+ page */ private ImageButton mGplusButton; /** * @see android.app.Activity#onCreate(Bundle) */ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.about_layout); ActionBar actionBar = getSupportActionBar(); actionBar.setDisplayHomeAsUpEnabled(true); // create our manager instance after the content view is set SystemBarTintManager tintManager = new SystemBarTintManager(this); // enable status bar tint tintManager.setStatusBarTintEnabled(true); tintManager.setStatusBarTintResource(R.color.wlanaudit_material); mVersionValueLabel = (TextView) findViewById(R.id.versionValue); mReleaseValueLabel = (TextView) findViewById(R.id.releaseValue); mOssLicensesButton = (Button) findViewById(R.id.oss_button); mFacebookButton = (ImageButton) findViewById(R.id.fbButton); mTwitterButton = (ImageButton) findViewById(R.id.twitterButton); mGplusButton = (ImageButton) findViewById(R.id.gPlusButton); } /** * @see android.app.Activity#onStart */ @Override protected void onStart() { super.onStart(); mVersionValueLabel.setText(getVersion()); mReleaseValueLabel.setText(String.valueOf(getRelease())); mOssLicensesButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { AlertDialog.Builder alert = new AlertDialog.Builder(AboutActivity.this); alert.setTitle(getText(R.string.oss_licenses_dialog_title)); WebView wv = new WebView(AboutActivity.this); wv.loadUrl("file:///android_asset/licenses.html"); alert.setView(wv); alert.show(); } }); mFacebookButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.facebook.com/wlanaudit")); startActivity(browserIntent); } }); mTwitterButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://twitter.com/#!/TitoXamps")); startActivity(browserIntent); } }); mGplusButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://plus.google.com/b/113060827862322417267/113060827862322417267")); startActivity(browserIntent); } }); } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: // app icon in action bar clicked; go home NavUtils.navigateUpFromSameTask(this); overridePendingTransition(R.anim.slide_in_from_left, R.anim.slide_out_to_right); return true; default: return super.onOptionsItemSelected(item); } } private int getRelease() { int release = -1; try { PackageInfo pInfo = getPackageManager().getPackageInfo(getPackageName(), PackageManager.GET_META_DATA); release = pInfo.versionCode; } catch (NameNotFoundException e1) { Log.e(this.getClass().getSimpleName(), "Name not found", e1); } return release; } private String getVersion() { String version = null; try { PackageInfo pInfo = getPackageManager().getPackageInfo(getPackageName(), PackageManager.GET_META_DATA); version = pInfo.versionName; } catch (NameNotFoundException e1) { Log.e(this.getClass().getSimpleName(), "Name not found", e1); } return version; } @Override public void onBackPressed() { finish(); overridePendingTransition(R.anim.slide_in_from_left, R.anim.slide_out_to_right); } }