From 793bd618ac9e3d598a4affd4d1d1a858f7711006 Mon Sep 17 00:00:00 2001 From: AlexanderR Date: Fri, 4 Apr 2014 18:06:03 +1100 Subject: [PATCH 1/3] Fixed weird crash on emulator --- src/org/fdroid/fdroid/CompatibilityChecker.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) 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(); From c1daa996170659d7b5b47736faee60d8e3f9cbf2 Mon Sep 17 00:00:00 2001 From: AlexanderR Date: Sat, 5 Apr 2014 10:32:58 +1100 Subject: [PATCH 2/3] Use managedQuery to let Search Activity automatically dispose of it's Cursor. Should be somehow done via Loaders someday. --- src/org/fdroid/fdroid/SearchResults.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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; From 04ea93cce8b83b6b43a26fa0639b0aa71d5dae89 Mon Sep 17 00:00:00 2001 From: AlexanderR Date: Sat, 5 Apr 2014 17:08:29 +1100 Subject: [PATCH 3/3] Category list i18n --- res/values-ru/strings.xml | 16 ++++++++++++++++ res/values/strings.xml | 16 ++++++++++++++++ .../views/fragments/AvailableAppsFragment.java | 13 ++++++++++++- 3 files changed, 44 insertions(+), 1 deletion(-) 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/views/fragments/AvailableAppsFragment.java b/src/org/fdroid/fdroid/views/fragments/AvailableAppsFragment.java index 98f70d35a..b7f452d53 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);