diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml index 057c9d14b..d67c37962 100644 --- a/res/values-ru/strings.xml +++ b/res/values-ru/strings.xml @@ -155,4 +155,20 @@ \"%1$s\" отключен. Вам нужно повторно включить этот репозиторий для установки приложений из него. %s или позднее до %s + + Детские + Разработка + Игры + Интернет + Математика + Мультимедиа + Навигация + Новости + Офис + Связь + Чтение + Научные + Безопасность + Системные + Обои diff --git a/res/values/strings.xml b/res/values/strings.xml index 6f15f3a5e..0d0861e7c 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -216,4 +216,20 @@ App icon Repo icon + Children + Development + Games + Internet + Mathematics + Multimedia + Navigation + News + Office + Phone & SMS + Reading + Science & Education + Security + System + Wallpaper + diff --git a/src/org/fdroid/fdroid/CompatibilityChecker.java b/src/org/fdroid/fdroid/CompatibilityChecker.java index c17565120..f750f971a 100644 --- a/src/org/fdroid/fdroid/CompatibilityChecker.java +++ b/src/org/fdroid/fdroid/CompatibilityChecker.java @@ -34,11 +34,13 @@ public class CompatibilityChecker extends Compatibility { logMsg.append("Available device features:"); features = new HashSet(); if (pm != null) { - for (FeatureInfo fi : pm.getSystemAvailableFeatures()) { - features.add(fi.name); - logMsg.append('\n'); - logMsg.append(fi.name); - } + final FeatureInfo[] featureArray = pm.getSystemAvailableFeatures(); + if (featureArray != null) + for (FeatureInfo fi : pm.getSystemAvailableFeatures()) { + features.add(fi.name); + logMsg.append('\n'); + logMsg.append(fi.name); + } } cpuAbis = SupportedArchitectures.getAbis(); diff --git a/src/org/fdroid/fdroid/SearchResults.java b/src/org/fdroid/fdroid/SearchResults.java index f2a1d5357..01adb01b1 100644 --- a/src/org/fdroid/fdroid/SearchResults.java +++ b/src/org/fdroid/fdroid/SearchResults.java @@ -47,6 +47,7 @@ public class SearchResults extends ListActivity { private static final int SEARCH = Menu.FIRST; + private Cursor cursor; private AppListAdapter adapter; protected String getQuery() { @@ -107,10 +108,12 @@ public class SearchResults extends ListActivity { if (query == null || query.length() == 0) finish(); - Cursor cursor = getContentResolver().query( + if (cursor != null) cursor.close(); + cursor = managedQuery( AppProvider.getSearchUri(query), AppListFragment.APP_PROJECTION, null, null, AppListFragment.APP_SORT); + TextView tv = (TextView) findViewById(R.id.description); String headertext; int count = cursor != null ? cursor.getCount() : 0; diff --git a/src/org/fdroid/fdroid/views/fragments/AvailableAppsFragment.java b/src/org/fdroid/fdroid/views/fragments/AvailableAppsFragment.java index c3d1206ab..3037352b5 100644 --- a/src/org/fdroid/fdroid/views/fragments/AvailableAppsFragment.java +++ b/src/org/fdroid/fdroid/views/fragments/AvailableAppsFragment.java @@ -3,6 +3,7 @@ package org.fdroid.fdroid.views.fragments; import android.app.Activity; import android.content.Context; import android.content.SharedPreferences; +import android.content.res.Resources; import android.database.ContentObserver; import android.database.Cursor; import android.net.Uri; @@ -20,6 +21,7 @@ import org.fdroid.fdroid.data.AppProvider; import org.fdroid.fdroid.views.AppListAdapter; import org.fdroid.fdroid.views.AvailableAppListAdapter; +import java.util.ArrayList; import java.util.List; public class AvailableAppsFragment extends AppListFragment implements @@ -86,13 +88,22 @@ public class AvailableAppsFragment extends AppListFragment implements final List categories = AppProvider.Helper.categories(getActivity()); + // attempt to translate category names with fallback to default name + List translatedCategories = new ArrayList<>(categories.size()); + Resources res = getResources(); + for (String category:categories) + { + int id = res.getIdentifier(category.replace(" & ", "_"), "string", getActivity().getPackageName()); + translatedCategories.add(id == 0 ? category : getString(id)); + } + categorySpinner = new Spinner(getActivity()); // Giving it an ID lets the default save/restore state // functionality do its stuff. categorySpinner.setId(R.id.categorySpinner); ArrayAdapter adapter = new ArrayAdapter( - getActivity(), android.R.layout.simple_spinner_item, categories); + getActivity(), android.R.layout.simple_spinner_item, translatedCategories); adapter.setDropDownViewResource( android.R.layout.simple_spinner_dropdown_item); categorySpinner.setAdapter(adapter);