package org.superdry.sample.tasker.activity; import org.superdry.sample.tasker.R; import android.app.Activity; import android.content.pm.PackageManager.NameNotFoundException; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; public abstract class AbstractPluginActivity extends Activity { private boolean mIsCancelled = false; @Override protected void onCreate(final Bundle savedInstanceState) { super.onCreate(savedInstanceState); CharSequence callingApplicationLabel = null; CharSequence activityLabel = null; try { callingApplicationLabel = getPackageManager().getApplicationLabel(getPackageManager().getApplicationInfo(getCallingPackage(), 0)); activityLabel = getPackageManager().getActivityInfo(getComponentName(), 0).loadLabel(getPackageManager()); } catch (final NameNotFoundException e) { e.printStackTrace(); } if (null != callingApplicationLabel && null != activityLabel) setTitle(callingApplicationLabel + " > " + activityLabel); } @Override public boolean onCreateOptionsMenu(final Menu menu) { super.onCreateOptionsMenu(menu); getMenuInflater().inflate(R.menu.twofortyfouram_locale_help_save_dontsave, menu); getActionBar().setDisplayHomeAsUpEnabled(true); try { getActionBar().setIcon(getPackageManager().getApplicationIcon(getCallingPackage())); } catch (NameNotFoundException e) { e.printStackTrace(); } return true; } @Override public boolean onMenuItemSelected(final int featureId, final MenuItem item) { final int id = item.getItemId(); if (android.R.id.home == id) { finish(); return true; } else if (R.id.twofortyfouram_locale_menu_dontsave == id) { mIsCancelled = true; finish(); return true; } else if (R.id.twofortyfouram_locale_menu_save == id) { finish(); return true; } return super.onOptionsItemSelected(item); } protected boolean isCanceled() { return mIsCancelled; } }