diff options
author | Wu-cheng Li <wuchengli@google.com> | 2011-01-25 17:42:09 +0800 |
---|---|---|
committer | Wu-cheng Li <wuchengli@google.com> | 2011-01-25 17:51:18 +0800 |
commit | 75c11984594546002610c9f076520414ae4b6d4d (patch) | |
tree | 74c29a933ca2cbaf34f8f3d4be292f1472c54cfd | |
parent | b5aaedd0e300f103f73907ec9bdfcc6b1231eef3 (diff) | |
download | packages_apps_LegacyCamera-75c11984594546002610c9f076520414ae4b6d4d.zip packages_apps_LegacyCamera-75c11984594546002610c9f076520414ae4b6d4d.tar.gz packages_apps_LegacyCamera-75c11984594546002610c9f076520414ae4b6d4d.tar.bz2 |
Fix NPE in BasicSettingPopup.
The monkey test sends DPAD_CENTER event and brings up the soft
keyboard. The layout will change and the basic setting popup
may have fewer children than items. In fact, setActiviated is
called by ListView and we do not need to call it.
Also add stateAlwaysHidden to make sure soft keyboard is always
hidden.
bug:3383128
Change-Id: I8032ff4680af7617c1568632af1c1678a04a04f8
-rw-r--r-- | AndroidManifest.xml | 6 | ||||
-rw-r--r-- | res/layout-xlarge/basic_setting_popup.xml | 3 | ||||
-rw-r--r-- | src/com/android/camera/Camera.java | 2 | ||||
-rw-r--r-- | src/com/android/camera/ui/BasicSettingPopup.java | 15 |
4 files changed, 13 insertions, 13 deletions
diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 6cba728..23ede92 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -30,7 +30,8 @@ android:theme="@style/ThemeCamera" android:screenOrientation="landscape" android:clearTaskOnLaunch="true" - android:taskAffinity="android.task.camera"> + android:taskAffinity="android.task.camera" + android:windowSoftInputMode="stateAlwaysHidden|adjustPan"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.DEFAULT" /> @@ -52,7 +53,8 @@ android:theme="@style/ThemeCamera" android:screenOrientation="landscape" android:clearTaskOnLaunch="true" - android:taskAffinity="android.task.camcorder"> + android:taskAffinity="android.task.camcorder" + android:windowSoftInputMode="stateAlwaysHidden|adjustPan"> <intent-filter> <action android:name="android.media.action.VIDEO_CAMERA" /> <category android:name="android.intent.category.DEFAULT" /> diff --git a/res/layout-xlarge/basic_setting_popup.xml b/res/layout-xlarge/basic_setting_popup.xml index d18dae2..9be5ada 100644 --- a/res/layout-xlarge/basic_setting_popup.xml +++ b/res/layout-xlarge/basic_setting_popup.xml @@ -43,6 +43,7 @@ android:paddingBottom="3dp" android:layout_gravity="center" android:layout_width="match_parent" - android:layout_height="wrap_content" /> + android:layout_height="wrap_content" + android:choiceMode="singleChoice" /> </FrameLayout> </com.android.camera.ui.BasicSettingPopup> diff --git a/src/com/android/camera/Camera.java b/src/com/android/camera/Camera.java index 5fdf8a5..84456e3 100644 --- a/src/com/android/camera/Camera.java +++ b/src/com/android/camera/Camera.java @@ -1630,6 +1630,8 @@ public class Camera extends NoSearchActivity implements View.OnClickListener, return; } + Log.v(TAG, "surfaceChanged. w=" + w + ". h=" + h); + // We need to save the holder for later use, even when the mCameraDevice // is null. This could happen if onResume() is invoked after this // function. diff --git a/src/com/android/camera/ui/BasicSettingPopup.java b/src/com/android/camera/ui/BasicSettingPopup.java index b3dfb77..83c5f95 100644 --- a/src/com/android/camera/ui/BasicSettingPopup.java +++ b/src/com/android/camera/ui/BasicSettingPopup.java @@ -76,6 +76,11 @@ public class BasicSettingPopup extends AbstractSettingPopup implements ((ListView) mSettingList).setAdapter(listItemAdapter); ((ListView) mSettingList).setOnItemClickListener(this); ((ListView) mSettingList).setSelector(android.R.color.transparent); + int index = mPreference.findIndexOfValue(mPreference.getValue()); + if (index != -1) { + ((ListView) mSettingList).setItemChecked(index, true); + } + } public void setSettingChangedListener(Listener listener) { @@ -83,14 +88,6 @@ public class BasicSettingPopup extends AbstractSettingPopup implements } @Override - public void onLayout(boolean changed, int l, int t, int r, int b) { - super.onLayout(changed, l, t, r, b); - int index = mPreference.findIndexOfValue(mPreference.getValue()); - View selected = ((ListView) mSettingList).getChildAt(index); - if (selected != null) selected.setActivated(true); - } - - @Override public void onItemClick(AdapterView<?> parent, View view, int index, long id) { // If popup window is dismissed, ignore the event. This may happen when @@ -99,10 +96,8 @@ public class BasicSettingPopup extends AbstractSettingPopup implements int oldIndex = mPreference.findIndexOfValue(mPreference.getValue()); if (oldIndex != index) { - ((LinearLayout) parent.getChildAt(oldIndex)).setActivated(false); mPreference.setValueIndex(index); if (mListener != null) mListener.onSettingChanged(); } - view.setActivated(true); } } |