Merge "Import translations. DO NOT MERGE"
diff --git a/res/xml/storage_dashboard_fragment.xml b/res/xml/storage_dashboard_fragment.xml
index 463dd96..81191e8 100644
--- a/res/xml/storage_dashboard_fragment.xml
+++ b/res/xml/storage_dashboard_fragment.xml
@@ -14,7 +14,9 @@
limitations under the License.
-->
-<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
+<PreferenceScreen
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:title="@string/storage_settings">
<com.android.settings.dashboard.DashboardTilePreference
android:key="pref_manage_storage"
android:title="@string/storage_menu_manage"
diff --git a/src/com/android/settings/core/PreferenceController.java b/src/com/android/settings/core/PreferenceController.java
index 55e3394..eb912b2 100644
--- a/src/com/android/settings/core/PreferenceController.java
+++ b/src/com/android/settings/core/PreferenceController.java
@@ -19,6 +19,8 @@
import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceScreen;
+import java.util.List;
+
/**
* A controller that manages event for preference.
*/
@@ -43,6 +45,12 @@
*/
public abstract boolean handlePreferenceTreeClick(Preference preference);
+ /**
+ * Updates non-indexable keys for search provider.
+ *
+ * Called by SearchIndexProvider#getNonIndexableKeys
+ */
+ public abstract void updateNonIndexableKeys(List<String> keys);
/**
* Removes preference from screen.
diff --git a/src/com/android/settings/deviceinfo/ManageStoragePreferenceController.java b/src/com/android/settings/deviceinfo/ManageStoragePreferenceController.java
index 86dc07d..aae4be0 100644
--- a/src/com/android/settings/deviceinfo/ManageStoragePreferenceController.java
+++ b/src/com/android/settings/deviceinfo/ManageStoragePreferenceController.java
@@ -22,6 +22,8 @@
import com.android.settings.R;
import com.android.settings.core.PreferenceController;
+import java.util.List;
+
public class ManageStoragePreferenceController extends PreferenceController {
public static final String KEY_MANAGE_STORAGE = "pref_manage_storage";
@@ -38,6 +40,13 @@
}
@Override
+ public void updateNonIndexableKeys(List<String> keys) {
+ if (!isAvailable()) {
+ keys.add(KEY_MANAGE_STORAGE);
+ }
+ }
+
+ @Override
public boolean handlePreferenceTreeClick(Preference preference) {
return false;
}
diff --git a/src/com/android/settings/deviceinfo/StorageDashboardFragment.java b/src/com/android/settings/deviceinfo/StorageDashboardFragment.java
index f32731c..cb6343a 100644
--- a/src/com/android/settings/deviceinfo/StorageDashboardFragment.java
+++ b/src/com/android/settings/deviceinfo/StorageDashboardFragment.java
@@ -18,10 +18,19 @@
import android.content.Context;
import android.os.Bundle;
+import android.os.UserManager;
+import android.provider.SearchIndexableResource;
import android.support.v7.preference.PreferenceScreen;
import com.android.settings.R;
import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.overlay.FeatureFactory;
+import com.android.settings.search.BaseSearchIndexProvider;
+import com.android.settings.search.Indexable;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
public class StorageDashboardFragment extends DashboardFragment {
@@ -62,4 +71,35 @@
displayTilesAsPreference(TAG, getPreferenceScreen(),
mDashboardFeatureProvider.getTilesForStorageCategory());
}
+
+ /**
+ * For Search.
+ */
+ public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
+ new BaseSearchIndexProvider() {
+ @Override
+ public List<SearchIndexableResource> getXmlResourcesToIndex(
+ Context context, boolean enabled) {
+ if (!FeatureFactory.getFactory(context).getDashboardFeatureProvider(context)
+ .isEnabled()) {
+ return null;
+ }
+ final SearchIndexableResource sir = new SearchIndexableResource(context);
+ sir.xmlResId = R.xml.storage_dashboard_fragment;
+ return Arrays.asList(sir);
+ }
+
+ @Override
+ public List<String> getNonIndexableKeys(Context context) {
+ if (!FeatureFactory.getFactory(context).getDashboardFeatureProvider(context)
+ .isEnabled()) {
+ return null;
+ }
+ final ManageStoragePreferenceController controller =
+ new ManageStoragePreferenceController(context);
+ final List<String> keys = new ArrayList<>();
+ controller.updateNonIndexableKeys(keys);
+ return keys;
+ }
+ };
}
diff --git a/src/com/android/settings/deviceinfo/SystemUpdatePreferenceController.java b/src/com/android/settings/deviceinfo/SystemUpdatePreferenceController.java
index dfab981..5c2ebcb 100644
--- a/src/com/android/settings/deviceinfo/SystemUpdatePreferenceController.java
+++ b/src/com/android/settings/deviceinfo/SystemUpdatePreferenceController.java
@@ -62,11 +62,7 @@
}
}
- /**
- * Updates non-indexable keys for search provider.
- *
- * Called by SearchIndexProvider#getNonIndexableKeys
- */
+ @Override
public void updateNonIndexableKeys(List<String> keys) {
// TODO: system update needs to be fixed for non-owner user b/22760654
if (!isAvailable(mContext, KEY_SYSTEM_UPDATE_SETTINGS)) {
diff --git a/src/com/android/settings/search/Ranking.java b/src/com/android/settings/search/Ranking.java
index 1f5df85..e9ceb85 100644
--- a/src/com/android/settings/search/Ranking.java
+++ b/src/com/android/settings/search/Ranking.java
@@ -34,6 +34,7 @@
import com.android.settings.bluetooth.BluetoothSettings;
import com.android.settings.datausage.DataUsageMeteredSettings;
import com.android.settings.datausage.DataUsageSummary;
+import com.android.settings.deviceinfo.StorageDashboardFragment;
import com.android.settings.deviceinfo.StorageSettings;
import com.android.settings.display.ScreenZoomSettings;
import com.android.settings.fuelgauge.BatterySaverSettings;
@@ -186,6 +187,7 @@
sRankMap.put(DeviceInfoSettings.class.getName(), RANK_DEVICE_INFO);
sRankMap.put(LegalSettings.class.getName(), RANK_DEVICE_INFO);
+ sRankMap.put(StorageDashboardFragment.class.getName(), RANK_STORAGE);
sRankMap.put(SystemDashboardFragment.class.getName(), RANK_DEVICE_INFO);
sBaseRankMap.put("com.android.settings", 0);
diff --git a/src/com/android/settings/search/SearchIndexableResources.java b/src/com/android/settings/search/SearchIndexableResources.java
index 299f059..1b8e0be 100644
--- a/src/com/android/settings/search/SearchIndexableResources.java
+++ b/src/com/android/settings/search/SearchIndexableResources.java
@@ -35,6 +35,7 @@
import com.android.settings.bluetooth.BluetoothSettings;
import com.android.settings.datausage.DataUsageMeteredSettings;
import com.android.settings.datausage.DataUsageSummary;
+import com.android.settings.deviceinfo.StorageDashboardFragment;
import com.android.settings.deviceinfo.StorageSettings;
import com.android.settings.display.ScreenZoomSettings;
import com.android.settings.fuelgauge.BatterySaverSettings;
@@ -334,6 +335,12 @@
NO_DATA_RES_ID,
SystemDashboardFragment.class.getName(),
R.drawable.ic_settings_about));
+ sResMap.put(StorageDashboardFragment.class.getName(),
+ new SearchIndexableResource(
+ Ranking.getRankForClassName(StorageDashboardFragment.class.getName()),
+ NO_DATA_RES_ID,
+ StorageDashboardFragment.class.getName(),
+ R.drawable.ic_settings_storage));
}
private SearchIndexableResources() {