diff options
author | Android (Google) Code Review <android-gerrit@google.com> | 2009-06-16 13:49:15 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2009-06-16 13:49:15 -0700 |
commit | ded9ec91f6623d2566e1b2439ab302b6451e1657 (patch) | |
tree | 21341a974c619d58e3db9a0ccf9ab455451c7be9 /src | |
parent | e3895ae9212d8654af10983cbf62206ead02ec24 (diff) | |
parent | 708ab96f2eae9a81f8c25eaf7e51622b2b2fc889 (diff) | |
download | android_packages_apps_Trebuchet-ded9ec91f6623d2566e1b2439ab302b6451e1657.tar.gz android_packages_apps_Trebuchet-ded9ec91f6623d2566e1b2439ab302b6451e1657.tar.bz2 android_packages_apps_Trebuchet-ded9ec91f6623d2566e1b2439ab302b6451e1657.zip |
Merge change 4383 into donut
* changes:
Fixes #1912902. Handles orientation change when renaming gestures.
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/launcher/GesturesActivity.java | 43 |
1 files changed, 40 insertions, 3 deletions
diff --git a/src/com/android/launcher/GesturesActivity.java b/src/com/android/launcher/GesturesActivity.java index c93657621..3ea49e251 100644 --- a/src/com/android/launcher/GesturesActivity.java +++ b/src/com/android/launcher/GesturesActivity.java @@ -52,6 +52,9 @@ public class GesturesActivity extends ListActivity { private static final int DIALOG_RENAME_GESTURE = 1; + // Type: long (id) + private static final String GESTURES_INFO_ID = "gestures.info_id"; + private final Comparator<ApplicationInfo> mSorter = new LauncherModel.ApplicationInfoComparator(); @@ -99,6 +102,25 @@ public class GesturesActivity extends ListActivity { } @Override + protected void onSaveInstanceState(Bundle outState) { + super.onSaveInstanceState(outState); + + if (mCurrentRenameInfo != null) { + outState.putLong(GESTURES_INFO_ID, mCurrentRenameInfo.id); + } + } + + @Override + protected void onRestoreInstanceState(Bundle state) { + super.onRestoreInstanceState(state); + + long id = state.getLong(GESTURES_INFO_ID, -1); + if (id != -1) { + mCurrentRenameInfo = Launcher.getModel().queryGesture(this, String.valueOf(id)); + } + } + + @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) { @@ -185,17 +207,32 @@ public class GesturesActivity extends ListActivity { private void changeGestureName() { final String name = mInput.getText().toString(); if (!TextUtils.isEmpty(name)) { - mCurrentRenameInfo.title = mInput.getText(); - LauncherModel.updateGestureInDatabase(this, mCurrentRenameInfo); + final ApplicationInfo renameInfo = mCurrentRenameInfo; + final GesturesActivity.GesturesAdapter adapter = mAdapter; + final int count = adapter.getCount(); + + // Simple linear search, there should not be enough items to warrant + // a more sophisticated search + for (int i = 0; i < count; i++) { + final ApplicationInfo info = adapter.getItem(i); + if (info.id == renameInfo.id) { + info.title = mInput.getText(); + LauncherModel.updateGestureInDatabase(this, info); + break; + } + } + + adapter.notifyDataSetChanged(); } + mCurrentRenameInfo = null; } private void cleanupRenameDialog() { if (mRenameDialog != null) { mRenameDialog.dismiss(); mRenameDialog = null; - mInput = null; } + mCurrentRenameInfo = null; } private void deleteGesture(ApplicationInfo info) { |