add null checks to huawei settings code

Daniel Gultsch created

Change summary

src/main/java/eu/siacs/conversations/ui/SettingsActivity.java | 16 ++--
1 file changed, 9 insertions(+), 7 deletions(-)

Detailed changes

src/main/java/eu/siacs/conversations/ui/SettingsActivity.java 🔗

@@ -101,11 +101,13 @@ public class SettingsActivity extends XmppActivity implements
 
 		//this feature is only available on Huawei Android 6.
 		PreferenceScreen huaweiPreferenceScreen = (PreferenceScreen) mSettingsFragment.findPreference("huawei");
-		Intent intent = huaweiPreferenceScreen.getIntent();
-		//remove when Api version is above M (Version 6.0) or if the intent is not callable
-		if (Build.VERSION.SDK_INT > Build.VERSION_CODES.M || !isCallable(intent)) {
-			PreferenceCategory generalCategory = (PreferenceCategory) mSettingsFragment.findPreference("general");
-			generalCategory.removePreference(huaweiPreferenceScreen);
+		if (huaweiPreferenceScreen != null) {
+			Intent intent = huaweiPreferenceScreen.getIntent();
+			//remove when Api version is above M (Version 6.0) or if the intent is not callable
+			if (Build.VERSION.SDK_INT > Build.VERSION_CODES.M || !isCallable(intent)) {
+				PreferenceCategory generalCategory = (PreferenceCategory) mSettingsFragment.findPreference("general");
+				generalCategory.removePreference(huaweiPreferenceScreen);
+			}
 		}
 
 		boolean removeLocation = new Intent("eu.siacs.conversations.location.request").resolveActivity(getPackageManager()) == null;
@@ -232,8 +234,8 @@ public class SettingsActivity extends XmppActivity implements
 		});
 	}
 
-	private boolean isCallable(Intent intent) {
-		return getPackageManager().queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY).size() > 0;
+	private boolean isCallable(final Intent i) {
+		return i != null && getPackageManager().queryIntentActivities(i, PackageManager.MATCH_DEFAULT_ONLY).size() > 0;
 	}