From 3b99f7129f6863e6dd7dd899aa5f9cb5dc06c709 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Reimar=20D=C3=B6ffinger?= Date: Mon, 24 Aug 2015 22:44:05 +0200 Subject: [PATCH] Fix Intent creation. Changing the AppID would cause them to try to launch the original App. --- .../dictionary/DictionaryActivity.java | 18 ++++++++---------- .../dictionary/DictionaryApplication.java | 8 +++----- .../dictionary/DictionaryManagerActivity.java | 14 ++++++-------- .../dictionary/HtmlDisplayActivity.java | 19 +++++++------------ 4 files changed, 24 insertions(+), 35 deletions(-) diff --git a/src/com/hughes/android/dictionary/DictionaryActivity.java b/src/com/hughes/android/dictionary/DictionaryActivity.java index 769ce95..410cda1 100644 --- a/src/com/hughes/android/dictionary/DictionaryActivity.java +++ b/src/com/hughes/android/dictionary/DictionaryActivity.java @@ -187,11 +187,9 @@ public class DictionaryActivity extends ActionBarActivity { public DictionaryActivity() { } - public static Intent getLaunchIntent(final File dictFile, final String indexShortName, + public static Intent getLaunchIntent(Context c, final File dictFile, final String indexShortName, final String searchToken) { - final Intent intent = new Intent(); - intent.setClassName(DictionaryActivity.class.getPackage().getName(), - DictionaryActivity.class.getName()); + final Intent intent = new Intent(c, DictionaryActivity.class); intent.putExtra(C.DICT_FILE, dictFile.getPath()); intent.putExtra(C.INDEX_SHORT_NAME, indexShortName); intent.putExtra(C.SEARCH_TOKEN, searchToken); @@ -321,7 +319,7 @@ public class DictionaryActivity extends ActionBarActivity { if (dictFilename == null) { Toast.makeText(this, getString(R.string.no_dict_file), Toast.LENGTH_LONG).show(); - startActivity(DictionaryManagerActivity.getLaunchIntent()); + startActivity(DictionaryManagerActivity.getLaunchIntent(getApplicationContext())); finish(); return; } @@ -354,7 +352,7 @@ public class DictionaryActivity extends ActionBarActivity { } Toast.makeText(this, getString(R.string.invalidDictionary, "", e.getMessage()), Toast.LENGTH_LONG).show(); - startActivity(DictionaryManagerActivity.getLaunchIntent()); + startActivity(DictionaryManagerActivity.getLaunchIntent(getApplicationContext())); finish(); return; } @@ -689,7 +687,7 @@ public class DictionaryActivity extends ActionBarActivity { final String name = getString(R.string.dictionaryManager); button.setText(name); final IntentLauncher intentLauncher = new IntentLauncher(listView.getContext(), - DictionaryManagerActivity.getLaunchIntent()) { + DictionaryManagerActivity.getLaunchIntent(getApplicationContext())) { @Override protected void onGo() { dialog.dismiss(); @@ -711,7 +709,7 @@ public class DictionaryActivity extends ActionBarActivity { final View button = application.createButton(parent.getContext(), dictionaryInfo, indexInfo); final IntentLauncher intentLauncher = new IntentLauncher(parent.getContext(), - getLaunchIntent( + getLaunchIntent(getApplicationContext(), application.getPath(dictionaryInfo.uncompressedFilename), indexInfo.shortName, searchView.getQuery().toString())) { @Override @@ -824,7 +822,7 @@ public class DictionaryActivity extends ActionBarActivity { MenuItemCompat.setShowAsAction(dictionaryManager, MenuItem.SHOW_AS_ACTION_NEVER); dictionaryManager.setOnMenuItemClickListener(new OnMenuItemClickListener() { public boolean onMenuItemClick(final MenuItem menuItem) { - startActivity(DictionaryManagerActivity.getLaunchIntent()); + startActivity(DictionaryManagerActivity.getLaunchIntent(getApplicationContext())); finish(); return false; } @@ -1473,7 +1471,7 @@ public class DictionaryActivity extends ActionBarActivity { String html = HtmlEntry.htmlBody(htmlEntries, index.shortName); // Log.d(LOG, "html=" + html); startActivityForResult( - HtmlDisplayActivity.getHtmlIntent(String.format( + HtmlDisplayActivity.getHtmlIntent(getApplicationContext(), String.format( "%s", html), htmlTextToHighlight, false), 0); diff --git a/src/com/hughes/android/dictionary/DictionaryApplication.java b/src/com/hughes/android/dictionary/DictionaryApplication.java index 9897183..f36f43b 100644 --- a/src/com/hughes/android/dictionary/DictionaryApplication.java +++ b/src/com/hughes/android/dictionary/DictionaryApplication.java @@ -350,8 +350,7 @@ public class DictionaryApplication extends Application { MenuItemCompat.setShowAsAction(about, MenuItem.SHOW_AS_ACTION_NEVER); about.setOnMenuItemClickListener(new OnMenuItemClickListener() { public boolean onMenuItemClick(final MenuItem menuItem) { - final Intent intent = new Intent().setClassName(AboutActivity.class - .getPackage().getName(), AboutActivity.class.getCanonicalName()); + final Intent intent = new Intent(getApplicationContext(), AboutActivity.class); context.startActivity(intent); return false; } @@ -361,7 +360,7 @@ public class DictionaryApplication extends Application { MenuItemCompat.setShowAsAction(help, MenuItem.SHOW_AS_ACTION_NEVER); help.setOnMenuItemClickListener(new OnMenuItemClickListener() { public boolean onMenuItemClick(final MenuItem menuItem) { - context.startActivity(HtmlDisplayActivity.getHelpLaunchIntent()); + context.startActivity(HtmlDisplayActivity.getHelpLaunchIntent(getApplicationContext())); return false; } }); @@ -371,8 +370,7 @@ public class DictionaryApplication extends Application { preferences.setOnMenuItemClickListener(new OnMenuItemClickListener() { public boolean onMenuItemClick(final MenuItem menuItem) { PreferenceActivity.prefsMightHaveChanged = true; - final Intent intent = new Intent().setClassName(PreferenceActivity.class - .getPackage().getName(), PreferenceActivity.class.getCanonicalName()); + final Intent intent = new Intent(getApplicationContext(), PreferenceActivity.class); context.startActivity(intent); return false; } diff --git a/src/com/hughes/android/dictionary/DictionaryManagerActivity.java b/src/com/hughes/android/dictionary/DictionaryManagerActivity.java index 8afe625..42a9930 100644 --- a/src/com/hughes/android/dictionary/DictionaryManagerActivity.java +++ b/src/com/hughes/android/dictionary/DictionaryManagerActivity.java @@ -184,10 +184,8 @@ public class DictionaryManagerActivity extends ActionBarActivity { } }; - public static Intent getLaunchIntent() { - final Intent intent = new Intent(); - intent.setClassName(DictionaryManagerActivity.class.getPackage().getName(), - DictionaryManagerActivity.class.getName()); + public static Intent getLaunchIntent(Context c) { + final Intent intent = new Intent(c, DictionaryManagerActivity.class); intent.putExtra(C.CAN_AUTO_LAUNCH_DICT, false); return intent; } @@ -230,7 +228,7 @@ public class DictionaryManagerActivity extends ActionBarActivity { if (!prefs.getString(C.THANKS_FOR_UPDATING_VERSION, "").equals( thanksForUpdatingLatestVersion)) { blockAutoLaunch = true; - startActivity(HtmlDisplayActivity.getWhatsNewLaunchIntent()); + startActivity(HtmlDisplayActivity.getWhatsNewLaunchIntent(getApplicationContext())); prefs.edit().putString(C.THANKS_FOR_UPDATING_VERSION, thanksForUpdatingLatestVersion) .commit(); } @@ -348,7 +346,7 @@ public class DictionaryManagerActivity extends ActionBarActivity { prefs.contains(C.DICT_FILE) && prefs.contains(C.INDEX_SHORT_NAME)) { Log.d(LOG, "Skipping DictionaryManager, going straight to dictionary."); - startActivity(DictionaryActivity.getLaunchIntent( + startActivity(DictionaryActivity.getLaunchIntent(getApplicationContext(), new File(prefs.getString(C.DICT_FILE, "")), prefs.getString(C.INDEX_SHORT_NAME, ""), prefs.getString(C.SEARCH_TOKEN, ""))); @@ -559,7 +557,7 @@ public class DictionaryManagerActivity extends ActionBarActivity { if (canLaunch) { button.setOnClickListener( new IntentLauncher(buttons.getContext(), - DictionaryActivity.getLaunchIntent( + DictionaryActivity.getLaunchIntent(getApplicationContext(), application.getPath(dictionaryInfo.uncompressedFilename), indexInfo.shortName, ""))); @@ -577,7 +575,7 @@ public class DictionaryManagerActivity extends ActionBarActivity { if (canLaunch) { row.setClickable(true); row.setOnClickListener(new IntentLauncher(parent.getContext(), - DictionaryActivity.getLaunchIntent( + DictionaryActivity.getLaunchIntent(getApplicationContext(), application.getPath(dictionaryInfo.uncompressedFilename), dictionaryInfo.indexInfos.get(0).shortName, ""))); row.setFocusable(true); diff --git a/src/com/hughes/android/dictionary/HtmlDisplayActivity.java b/src/com/hughes/android/dictionary/HtmlDisplayActivity.java index 9138277..3107da5 100644 --- a/src/com/hughes/android/dictionary/HtmlDisplayActivity.java +++ b/src/com/hughes/android/dictionary/HtmlDisplayActivity.java @@ -14,6 +14,7 @@ package com.hughes.android.dictionary; +import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.support.v7.app.ActionBar; @@ -34,27 +35,21 @@ public final class HtmlDisplayActivity extends ActionBarActivity { static final String TEXT_TO_HIGHLIGHT = "textToHighlight"; static final String SHOW_OK_BUTTON = "showOKButton"; - public static Intent getHelpLaunchIntent() { - final Intent intent = new Intent(); - intent.setClassName(HtmlDisplayActivity.class.getPackage().getName(), - HtmlDisplayActivity.class.getName()); + public static Intent getHelpLaunchIntent(Context c) { + final Intent intent = new Intent(c, HtmlDisplayActivity.class); intent.putExtra(HTML_RES, R.raw.help); return intent; } - public static Intent getWhatsNewLaunchIntent() { - final Intent intent = new Intent(); - intent.setClassName(HtmlDisplayActivity.class.getPackage().getName(), - HtmlDisplayActivity.class.getName()); + public static Intent getWhatsNewLaunchIntent(Context c) { + final Intent intent = new Intent(c, HtmlDisplayActivity.class); intent.putExtra(HTML_RES, R.raw.whats_new); return intent; } - public static Intent getHtmlIntent(final String html, final String textToHighlight, + public static Intent getHtmlIntent(Context c, final String html, final String textToHighlight, final boolean showOkButton) { - final Intent intent = new Intent(); - intent.setClassName(HtmlDisplayActivity.class.getPackage().getName(), - HtmlDisplayActivity.class.getName()); + final Intent intent = new Intent(c, HtmlDisplayActivity.class); intent.putExtra(HTML, html); intent.putExtra(TEXT_TO_HIGHLIGHT, textToHighlight); intent.putExtra(SHOW_OK_BUTTON, showOkButton); -- 2.43.0