summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorRobert Burns <burnsra@gmail.com>2012-09-12 20:17:08 -0400
committerGerrit Code Review <gerrit@review.cyanogenmod.com>2012-09-14 01:55:13 -0400
commit73dfcb14f54b35bf3c236ae5f8572489b92fefc0 (patch)
treeb9700942d79aeed01812d8723eb60665a3437f34 /src
parente798daca688740831f7e9d8a3ae8f71b4c567ef1 (diff)
downloadandroid_packages_apps_Trebuchet-73dfcb14f54b35bf3c236ae5f8572489b92fefc0.tar.gz
android_packages_apps_Trebuchet-73dfcb14f54b35bf3c236ae5f8572489b92fefc0.tar.bz2
android_packages_apps_Trebuchet-73dfcb14f54b35bf3c236ae5f8572489b92fefc0.zip
Fix shortcut intent when using less than 3 homescreens
This patch fixes issue 6192 as outlined at the URL below: http://code.google.com/p/cyanogenmod/issues/detail?id=6192 To reproduce the issue set the number of home screens to 2 or less and try to add a shortcut as follows: - open "People" application - select a contact - using context menu, choose "Place on Home screen" - go to home screen to see crash Change-Id: Ib1c7f6b1cf5055714b4d9e57c637c8a7fa05e9d8
Diffstat (limited to 'src')
-rw-r--r--src/com/cyanogenmod/trebuchet/InstallShortcutReceiver.java6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/com/cyanogenmod/trebuchet/InstallShortcutReceiver.java b/src/com/cyanogenmod/trebuchet/InstallShortcutReceiver.java
index 7cca81fbb..e95efde6f 100644
--- a/src/com/cyanogenmod/trebuchet/InstallShortcutReceiver.java
+++ b/src/com/cyanogenmod/trebuchet/InstallShortcutReceiver.java
@@ -26,6 +26,7 @@ import android.os.Debug;
import android.widget.Toast;
import com.cyanogenmod.trebuchet.R;
+import com.cyanogenmod.trebuchet.preference.PreferencesProvider;
import java.util.ArrayList;
import java.util.HashSet;
@@ -137,7 +138,10 @@ public class InstallShortcutReceiver extends BroadcastReceiver {
// Try adding to the workspace screens incrementally, starting at the default or center
// screen and alternating between +1, -1, +2, -2, etc. (using ~ ceil(i/2f)*(-1)^(i-1))
- final int screen = Launcher.DEFAULT_SCREEN;
+ final int screenCount = PreferencesProvider.Interface.Homescreen.getNumberHomescreens(context);
+ final int screenDefault = PreferencesProvider.Interface.Homescreen.getDefaultHomescreen(context, screenCount / 2);
+ final int screen = (screenDefault >= screenCount) ? screenCount / 2 : screenDefault;
+
for (int i = 0; i < (2 * Launcher.MAX_SCREEN_COUNT) + 1 && !found; ++i) {
int si = screen + (int) ((i / 2f) + 0.5f) * ((i % 2 == 1) ? 1 : -1);
if (0 <= si && si < Launcher.MAX_SCREEN_COUNT) {