From 56fd243d596e0ae9476384ad4e9d615e2d1dda00 Mon Sep 17 00:00:00 2001
From: xianming wang <mingwax@codeaurora.org>
Date: Tue, 6 Feb 2018 15:05:30 +0800
Subject: [PATCH] SnapdragonCamera: Fix Monkey FC because of
 NullPointerException

Add sentenced empty condition for avoid NullPointerException.

CRs-Fixed: 2183750
Change-Id: Ie574f6fd5971ef7f295a784818d728783d8505fd
---
 src/com/android/camera/SettingsActivity.java | 24 ++++++++++++--------
 src/com/android/camera/SettingsManager.java  |  8 ++++---
 2 files changed, 19 insertions(+), 13 deletions(-)

diff --git a/src/com/android/camera/SettingsActivity.java b/src/com/android/camera/SettingsActivity.java
index f38e27dae..5deaa2c42 100755
--- a/src/com/android/camera/SettingsActivity.java
+++ b/src/com/android/camera/SettingsActivity.java
@@ -348,9 +348,11 @@ public class SettingsActivity extends PreferenceActivity {
         String[] categories = {"photo", "video", "general", "developer"};
         Set<String> set = mSettingsManager.getFilteredKeys();
         if (!mDeveloperMenuEnabled) {
-            set.add(SettingsManager.KEY_MONO_PREVIEW);
-            set.add(SettingsManager.KEY_MONO_ONLY);
-            set.add(SettingsManager.KEY_CLEARSIGHT);
+            if (set != null) {
+                set.add(SettingsManager.KEY_MONO_PREVIEW);
+                set.add(SettingsManager.KEY_MONO_ONLY);
+                set.add(SettingsManager.KEY_CLEARSIGHT);
+            }
 
             PreferenceGroup developer = (PreferenceGroup) findPreference("developer");
             //Before restore settings,if current is not developer mode,the developer
@@ -364,7 +366,7 @@ public class SettingsActivity extends PreferenceActivity {
 
         CharSequence[] entries = mSettingsManager.getEntries(SettingsManager.KEY_SCENE_MODE);
         List<CharSequence> list = Arrays.asList(entries);
-        if (mDeveloperMenuEnabled && !list.contains("HDR")){
+        if (mDeveloperMenuEnabled && list != null && !list.contains("HDR")){
             Preference p = findPreference("pref_camera2_hdr_key");
             if (p != null){
                 PreferenceGroup developer = (PreferenceGroup)findPreference("developer");
@@ -372,13 +374,15 @@ public class SettingsActivity extends PreferenceActivity {
             }
         }
 
-        for (String key : set) {
-            Preference p = findPreference(key);
-            if (p == null) continue;
+        if (set != null) {
+            for (String key : set) {
+                Preference p = findPreference(key);
+                if (p == null) continue;
 
-            for (int i = 0; i < categories.length; i++) {
-                PreferenceGroup group = (PreferenceGroup) findPreference(categories[i]);
-                if (group.removePreference(p)) break;
+                for (int i = 0; i < categories.length; i++) {
+                    PreferenceGroup group = (PreferenceGroup) findPreference(categories[i]);
+                    if (group.removePreference(p)) break;
+                }
             }
         }
     }
diff --git a/src/com/android/camera/SettingsManager.java b/src/com/android/camera/SettingsManager.java
index ef7d02c70..e0372153a 100755
--- a/src/com/android/camera/SettingsManager.java
+++ b/src/com/android/camera/SettingsManager.java
@@ -591,9 +591,11 @@ public class SettingsManager implements ListMenu.SettingsListener {
     }
 
     public CharSequence[] getEntries(String key) {
-        ListPreference pref = mPreferenceGroup.findPreference(key);
-        if (pref != null) {
-            return pref.getEntries();
+        if ( mPreferenceGroup != null ) {
+            ListPreference pref = mPreferenceGroup.findPreference(key);
+            if (pref != null) {
+                return pref.getEntries();
+            }
         }
         return null;
     }
-- 
GitLab