@Override protected void onCreate(final Bundle savedInstanceState) { super.onCreate(savedInstanceState); BundleScrubber.scrub(getIntent()); final Bundle localeBundle = getIntent().getBundleExtra(com.twofortyfouram.locale.Intent.EXTRA_BUNDLE); BundleScrubber.scrub(localeBundle); setContentView(R.layout.activity_tasker_edit); if (null == savedInstanceState) { if (PluginBundleManager.isBundleValid(localeBundle)) { String message = localeBundle.getString(PluginBundleManager.BUNDLE_EXTRA_STRING_MESSAGE); if (message.length() == 0) { message = "%par1"; // First tasker parameter } ((EditText) findViewById(R.id.editTextTasker)).setText(message); } } }
@Override public void finish() { if (!isCanceled()) { final String message = ((EditText) findViewById(R.id.editTextTasker)).getText().toString(); if (message.length() > 0) { final Intent resultIntent = new Intent(); /* * This extra is the data to ourselves: either for the Activity or the BroadcastReceiver. Note * that anything placed in this Bundle must be available to Locale's class loader. So storing * String, int, and other standard objects will work just fine. Parcelable objects are not * acceptable, unless they also implement Serializable. Serializable objects must be standard * Android platform objects (A Serializable class private to this plug-in's APK cannot be * stored in the Bundle, as Locale's classloader will not recognize it). */ final Bundle resultBundle = PluginBundleManager.generateBundle(getApplicationContext(), message); resultIntent.putExtra(com.twofortyfouram.locale.Intent.EXTRA_BUNDLE, resultBundle); if (TaskerPlugin.Setting.hostSupportsOnFireVariableReplacement(this)) TaskerPlugin.Setting.setVariableReplaceKeys( resultBundle, new String[] {PluginBundleManager.BUNDLE_EXTRA_STRING_MESSAGE}); /* * The blurb is concise status text to be displayed in the host's UI. */ final String blurb = generateBlurb(getApplicationContext(), message); resultIntent.putExtra(com.twofortyfouram.locale.Intent.EXTRA_STRING_BLURB, blurb); setResult(RESULT_OK, resultIntent); } } super.finish(); }