From 8a5dbaf0010d8c30bbbfb57cfb1e4398fc6884ec Mon Sep 17 00:00:00 2001 From: Paul Sokolovsky Date: Tue, 16 Aug 2011 21:32:51 +0300 Subject: [PATCH] Add category dropdown at the top of main form (above tabs). --- res/layout/fdroid.xml | 9 +++++++++ src/org/fdroid/fdroid/FDroid.java | 22 ++++++++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/res/layout/fdroid.xml b/res/layout/fdroid.xml index a48ecc318..0116db6f0 100644 --- a/res/layout/fdroid.xml +++ b/res/layout/fdroid.xml @@ -1,4 +1,11 @@ + + + + @@ -14,3 +21,5 @@ + + diff --git a/src/org/fdroid/fdroid/FDroid.java b/src/org/fdroid/fdroid/FDroid.java index c15046013..8202e8eff 100644 --- a/src/org/fdroid/fdroid/FDroid.java +++ b/src/org/fdroid/fdroid/FDroid.java @@ -43,7 +43,10 @@ import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.LinearLayout; import android.widget.ListView; +import android.widget.Spinner; import android.widget.TabHost; import android.widget.TextView; import android.widget.Toast; @@ -75,6 +78,9 @@ public class FDroid extends TabActivity implements OnItemClickListener { // Apps that can be upgraded private AppListAdapter apps_up = new AppListAdapter(this); + // Category list + private ArrayAdapter categories; + private ProgressDialog pd; private static final String TAB_IN = "INST"; @@ -102,6 +108,13 @@ public class FDroid extends TabActivity implements OnItemClickListener { if (!icon_path.exists()) icon_path.mkdir(); + Spinner spinner = (Spinner) findViewById(R.id.category); + categories = new ArrayAdapter(this, + android.R.layout.simple_spinner_item, + new Vector()); + categories.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); + spinner.setAdapter(categories); + tabHost = getTabHost(); createTabs(); @@ -308,8 +321,16 @@ public class FDroid extends TabActivity implements OnItemClickListener { apps_in.clear(); apps_av.clear(); apps_up.clear(); + categories.clear(); long startTime = System.currentTimeMillis(); + + // Make sure we show at least "All" category even for empty DB + for (String s: db.getCategories()) { + Log.d("FDroid", "s: " + s); + categories.add(s); + } + Vector apps = db.getApps(null, null, update, true); if (apps.isEmpty()) { // Don't attempt this more than once - we may have invalid @@ -349,6 +370,7 @@ public class FDroid extends TabActivity implements OnItemClickListener { apps_av.notifyDataSetChanged(); apps_in.notifyDataSetChanged(); apps_up.notifyDataSetChanged(); + categories.notifyDataSetChanged(); }