From 57d3ccc124d52492d3495a890c2d8902e00ea451 Mon Sep 17 00:00:00 2001 From: Paul Sokolovsky Date: Mon, 28 Jan 2013 02:17:20 +0200 Subject: [PATCH] On package details page, add menu option to run installed application. Standard Android "Launch" terminology used in source code, but menu item is called "Run" for brevity. --- res/values/strings.xml | 1 + src/org/fdroid/fdroid/AppDetails.java | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/res/values/strings.xml b/res/values/strings.xml index febd5a1d9..4fd2477f4 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -100,6 +100,7 @@ + Run Install Uninstall Website diff --git a/src/org/fdroid/fdroid/AppDetails.java b/src/org/fdroid/fdroid/AppDetails.java index fee83b2ba..5789da616 100644 --- a/src/org/fdroid/fdroid/AppDetails.java +++ b/src/org/fdroid/fdroid/AppDetails.java @@ -170,6 +170,7 @@ public class AppDetails extends ListActivity { private static final int SOURCE = Menu.FIRST + 4; private static final int MARKET = Menu.FIRST + 5; private static final int DONATE = Menu.FIRST + 6; + private static final int LAUNCH = Menu.FIRST + 7; private DB.App app; private int app_currentvercode; @@ -470,6 +471,8 @@ public class AppDetails extends ListActivity { menu.add(Menu.NONE, INSTALL, 1, R.string.menu_install).setIcon( android.R.drawable.ic_menu_add); } else { + menu.add(Menu.NONE, LAUNCH, 1, R.string.menu_launch).setIcon( + android.R.drawable. ic_media_play); menu.add(Menu.NONE, UNINSTALL, 1, R.string.menu_uninstall).setIcon( android.R.drawable.ic_menu_delete); } @@ -500,6 +503,10 @@ public class AppDetails extends ListActivity { switch (item.getItemId()) { + case LAUNCH: + launchApk(app.id); + return true; + case INSTALL: // Note that this handles updating as well as installing. curapk = app.getCurrentVersion(); @@ -621,6 +628,11 @@ public class AppDetails extends ListActivity { ((FDroidApp) getApplication()).invalidateApps(); } + private void launchApk(String id) { + Intent intent = mPm.getLaunchIntentForPackage(id); + startActivity(intent); + } + private ProgressDialog createProgressDialog(String file, int p, int max) { final ProgressDialog pd = new ProgressDialog(this); pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);