[1/2] OmniGears: fix the device parts check
Change-Id: Ife326e698ceb6e519ec657bf4efe21b903837f5a
diff --git a/res/xml/omni_dashboard_fragment.xml b/res/xml/omni_dashboard_fragment.xml
index 0802e18..4694ff7 100644
--- a/res/xml/omni_dashboard_fragment.xml
+++ b/res/xml/omni_dashboard_fragment.xml
@@ -19,7 +19,7 @@
android:title="@string/header_category_omni">
<Preference
- android:key="style_settings"
+ android:key="style_settings_new"
android:title="@string/style_settings_title"
android:summary="@string/style_settings_summary"
android:icon="@drawable/ic_settings_style"
diff --git a/src/org/omnirom/omnigears/OmniDashboardFragment.java b/src/org/omnirom/omnigears/OmniDashboardFragment.java
index 3f105fc..318a600 100644
--- a/src/org/omnirom/omnigears/OmniDashboardFragment.java
+++ b/src/org/omnirom/omnigears/OmniDashboardFragment.java
@@ -18,6 +18,9 @@
package org.omnirom.omnigears;
import android.content.Context;
+import android.content.pm.PackageManager;
+import android.os.Bundle;
+import android.support.v7.preference.Preference;
import android.provider.SearchIndexableResource;
import com.android.internal.logging.nano.MetricsProto;
@@ -35,6 +38,18 @@
private static final String TAG = "OmniDashboardFragment";
public static final String CATEGORY_OMNI = "com.android.settings.category.ia.omni";
+ private static final String KEY_DEVICE_PARTS = "device_parts";
+
+ @Override
+ public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
+ super.onCreatePreferences(savedInstanceState, rootKey);
+ if (!isDevicePartsSupported(getContext())) {
+ Preference pref = getPreferenceScreen().findPreference(KEY_DEVICE_PARTS);
+ if (pref != null) {
+ getPreferenceScreen().removePreference(pref);
+ }
+ }
+ }
@Override
public int getMetricsCategory() {
@@ -56,6 +71,16 @@
return null;
}
+ private static boolean isDevicePartsSupported(Context context) {
+ boolean devicePartsSupported = false;
+ try {
+ devicePartsSupported = context.getPackageManager().getPackageInfo(
+ "org.omnirom.device", 0).versionCode > 0;
+ } catch (PackageManager.NameNotFoundException e) {
+ }
+ return devicePartsSupported;
+ }
+
public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
new BaseSearchIndexProvider() {
@@ -65,5 +90,14 @@
sir.xmlResId = R.xml.omni_dashboard_fragment;
return Arrays.asList(sir);
}
+
+ @Override
+ public List<String> getNonIndexableKeys(Context context) {
+ ArrayList<String> result = new ArrayList<String>();
+ if (!isDevicePartsSupported(context)) {
+ result.add(KEY_DEVICE_PARTS);
+ }
+ return result;
+ }
};
}