summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAndroid (Google) Code Review <android-gerrit@google.com>2009-06-16 13:49:15 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2009-06-16 13:49:15 -0700
commitded9ec91f6623d2566e1b2439ab302b6451e1657 (patch)
tree21341a974c619d58e3db9a0ccf9ab455451c7be9 /src
parente3895ae9212d8654af10983cbf62206ead02ec24 (diff)
parent708ab96f2eae9a81f8c25eaf7e51622b2b2fc889 (diff)
downloadandroid_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.java43
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) {