Add category dropdown at the top of main form (above tabs).

This commit is contained in:
Paul Sokolovsky 2011-08-16 21:32:51 +03:00
parent fd3866cdd0
commit 8a5dbaf001
2 changed files with 31 additions and 0 deletions

View File

@ -1,4 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:orientation="vertical" android:paddingTop="3dp">
<Spinner android:id="@+id/category"
android:layout_width="fill_parent" android:layout_height="wrap_content" />
<TabHost xmlns:android="http://schemas.android.com/apk/res/android" <TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost" android:layout_width="fill_parent" android:id="@android:id/tabhost" android:layout_width="fill_parent"
android:layout_height="fill_parent"> android:layout_height="fill_parent">
@ -14,3 +21,5 @@
</FrameLayout> </FrameLayout>
</TabHost> </TabHost>
</LinearLayout>

View File

@ -43,7 +43,10 @@ import android.view.Menu;
import android.view.MenuItem; import android.view.MenuItem;
import android.view.View; import android.view.View;
import android.widget.AdapterView; import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.LinearLayout;
import android.widget.ListView; import android.widget.ListView;
import android.widget.Spinner;
import android.widget.TabHost; import android.widget.TabHost;
import android.widget.TextView; import android.widget.TextView;
import android.widget.Toast; import android.widget.Toast;
@ -75,6 +78,9 @@ public class FDroid extends TabActivity implements OnItemClickListener {
// Apps that can be upgraded // Apps that can be upgraded
private AppListAdapter apps_up = new AppListAdapter(this); private AppListAdapter apps_up = new AppListAdapter(this);
// Category list
private ArrayAdapter<String> categories;
private ProgressDialog pd; private ProgressDialog pd;
private static final String TAB_IN = "INST"; private static final String TAB_IN = "INST";
@ -102,6 +108,13 @@ public class FDroid extends TabActivity implements OnItemClickListener {
if (!icon_path.exists()) if (!icon_path.exists())
icon_path.mkdir(); icon_path.mkdir();
Spinner spinner = (Spinner) findViewById(R.id.category);
categories = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item,
new Vector<String>());
categories.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(categories);
tabHost = getTabHost(); tabHost = getTabHost();
createTabs(); createTabs();
@ -308,8 +321,16 @@ public class FDroid extends TabActivity implements OnItemClickListener {
apps_in.clear(); apps_in.clear();
apps_av.clear(); apps_av.clear();
apps_up.clear(); apps_up.clear();
categories.clear();
long startTime = System.currentTimeMillis(); 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<DB.App> apps = db.getApps(null, null, update, true); Vector<DB.App> apps = db.getApps(null, null, update, true);
if (apps.isEmpty()) { if (apps.isEmpty()) {
// Don't attempt this more than once - we may have invalid // 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_av.notifyDataSetChanged();
apps_in.notifyDataSetChanged(); apps_in.notifyDataSetChanged();
apps_up.notifyDataSetChanged(); apps_up.notifyDataSetChanged();
categories.notifyDataSetChanged();
} }