Fixes #1912902. Handles orientation change when renaming gestures.
The GesturesActivity was crashing when changing the orientation while renaming a gesture. This was due to unimplemented support for orientation changes.
This commit is contained in:
parent
91a9c9636f
commit
708ab96f2e
|
@ -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();
|
||||
|
||||
|
@ -98,6 +101,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) {
|
||||
|
|
Loading…
Reference in New Issue