add null checks to huawei settings code

This commit is contained in:
Daniel Gultsch 2018-02-09 22:11:11 +01:00
parent af81bb1958
commit d33fca09cf
1 changed files with 9 additions and 7 deletions

View File

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