From 7ef4a53106e94621cab5082cfb225c1ef436944d Mon Sep 17 00:00:00 2001 From: Scott Jackson Date: Mon, 7 Jul 2014 22:18:55 -0700 Subject: #372 Use bold for drawer, fix delay between opening for first time and showing selection --- .../dsub/activity/SubsonicActivity.java | 22 ++++++++++++++++------ .../daneren2005/dsub/view/DrawerAdapter.java | 10 ++++++++++ 2 files changed, 26 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/github/daneren2005/dsub/activity/SubsonicActivity.java b/src/github/daneren2005/dsub/activity/SubsonicActivity.java index 78589a44..44310ede 100644 --- a/src/github/daneren2005/dsub/activity/SubsonicActivity.java +++ b/src/github/daneren2005/dsub/activity/SubsonicActivity.java @@ -50,6 +50,7 @@ import android.widget.AdapterView.OnItemSelectedListener; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.Spinner; +import android.widget.TextView; import java.io.File; import java.io.PrintWriter; @@ -90,7 +91,7 @@ public class SubsonicActivity extends ActionBarActivity implements OnItemSelecte ActionBarDrawerToggle drawerToggle; DrawerAdapter drawerAdapter; ListView drawerList; - View lastSelectedView = null; + TextView lastSelectedView = null; int lastSelectedPosition = 0; boolean drawerOpen = false; @@ -177,10 +178,10 @@ public class SubsonicActivity extends ActionBarActivity implements OnItemSelecte if(lastSelectedView != view) { if(lastSelectedView != null) { - lastSelectedView.setBackgroundResource(android.R.color.transparent); + lastSelectedView.setTextAppearance(SubsonicActivity.this, R.style.DSub_TextViewStyle); } - view.setBackgroundResource(R.color.dividerColor); - lastSelectedView = view; + lastSelectedView = (TextView) view.findViewById(R.id.drawer_name); + lastSelectedView.setTextAppearance(SubsonicActivity.this, R.style.DSub_TextViewStyle_Bold); lastSelectedPosition = position; } } @@ -209,9 +210,9 @@ public class SubsonicActivity extends ActionBarActivity implements OnItemSelecte } if(lastSelectedView == null) { - lastSelectedView = drawerList.getChildAt(lastSelectedPosition); + lastSelectedView = (TextView) drawerList.getChildAt(lastSelectedPosition).findViewById(R.id.drawer_name); if(lastSelectedView != null) { - lastSelectedView.setBackgroundResource(R.color.dividerColor); + lastSelectedView.setTextAppearance(SubsonicActivity.this, R.style.DSub_TextViewStyle_Bold); } } @@ -444,6 +445,15 @@ public class SubsonicActivity extends ActionBarActivity implements OnItemSelecte } } } + + if(drawerList.getChildAt(lastSelectedPosition) == null) { + drawerAdapter.setSelectedPosition(lastSelectedPosition); + } else { + lastSelectedView = (TextView) drawerList.getChildAt(lastSelectedPosition).findViewById(R.id.drawer_name); + if(lastSelectedView != null) { + lastSelectedView.setTextAppearance(SubsonicActivity.this, R.style.DSub_TextViewStyle_Bold); + } + } } } diff --git a/src/github/daneren2005/dsub/view/DrawerAdapter.java b/src/github/daneren2005/dsub/view/DrawerAdapter.java index 345ca34c..cc0d5864 100644 --- a/src/github/daneren2005/dsub/view/DrawerAdapter.java +++ b/src/github/daneren2005/dsub/view/DrawerAdapter.java @@ -41,6 +41,7 @@ public class DrawerAdapter extends ArrayAdapter { private List items; private List icons; private List visible; + private int selectedPosition = -1; public DrawerAdapter(Context context, List items, List icons, List visible) { super(context, R.layout.drawer_list_item, items); @@ -63,6 +64,11 @@ public class DrawerAdapter extends ArrayAdapter { TextView textView = (TextView) convertView.findViewById(R.id.drawer_name); textView.setText(item); + + if(selectedPosition == position) { + textView.setTextAppearance(context, R.style.DSub_TextViewStyle_Bold); + } + ImageView iconView = (ImageView) convertView.findViewById(R.id.drawer_icon); iconView.setImageResource(icon); @@ -109,4 +115,8 @@ public class DrawerAdapter extends ArrayAdapter { public void setDownloadVisible(boolean visible) { setItemVisible(items.size() - 2, visible); } + + public void setSelectedPosition(int position) { + selectedPosition = position; + } } -- cgit v1.2.3