diff --git a/res/layout/checkbox_section.xml b/res/layout/checkbox_section.xml index f5e3c75c5..c2abf9671 100644 --- a/res/layout/checkbox_section.xml +++ b/res/layout/checkbox_section.xml @@ -1,23 +1,20 @@ - - - + - + android:layout_height="wrap_content" + android:paddingLeft="10dp" + android:singleLine="true" + android:textAppearance="?android:attr/textAppearanceMedium" + android:ellipsize="marquee" + android:marqueeRepeatLimit="marquee_forever" + /> - - - diff --git a/res/layout/network_library_filter.xml b/res/layout/network_library_filter.xml index e5a571d71..8cb128bf7 100644 --- a/res/layout/network_library_filter.xml +++ b/res/layout/network_library_filter.xml @@ -1,12 +1,13 @@ - - - - - + + diff --git a/src/org/geometerplus/android/fbreader/network/AllCatalogsActivity.java b/src/org/geometerplus/android/fbreader/network/AllCatalogsActivity.java index c41d57e05..01880564a 100644 --- a/src/org/geometerplus/android/fbreader/network/AllCatalogsActivity.java +++ b/src/org/geometerplus/android/fbreader/network/AllCatalogsActivity.java @@ -33,35 +33,33 @@ import org.geometerplus.fbreader.network.*; import org.geometerplus.fbreader.network.tree.NetworkCatalogRootTree; import org.geometerplus.android.fbreader.covers.CoverManager; - - public class AllCatalogsActivity extends Activity { final NetworkLibrary library = NetworkLibrary.Instance(); CheckListAdapter myAdapter; ArrayList ids = new ArrayList(); ArrayList inactiveIds = new ArrayList(); - + public final static String IDS_LIST = "org.geometerplus.android.fbreader.network.IDS_LIST"; public final static String INACTIVE_IDS_LIST = "org.geometerplus.android.fbreader.network.INACTIVE_IDS_LIST"; - + private boolean isChanged = false; - + @Override protected void onCreate(Bundle icicle) { super.onCreate(icicle); setContentView(R.layout.network_library_filter); - + Intent intent = getIntent(); ids = intent.getStringArrayListExtra(IDS_LIST); inactiveIds = intent.getStringArrayListExtra(INACTIVE_IDS_LIST); - + } - + @Override protected void onStart() { super.onStart(); - + ArrayList idItems = new ArrayList(); if(ids.size() > 0){ idItems.add(new CheckSection(getLabelByKey("active"))); @@ -76,34 +74,34 @@ public class AllCatalogsActivity extends Activity { System.out.println("-- "+i.getTree().getTreeTitle()); } } - + if(inactiveIds.size() > 0){ idItems.add(new CheckSection(getLabelByKey("inactive"))); for(String i : inactiveIds){ idItems.add(new CheckItem(i, false, library.getCatalogTreeByUrlAll(i))); } } - + ListView selectedList = (ListView) findViewById(R.id.selectedList); myAdapter = new CheckListAdapter(this, R.layout.checkbox_item, idItems, this); selectedList.setAdapter(myAdapter); } - + private String getLabelByKey(String keyName) { return NetworkLibrary.resource().getResource("allCatalogs").getResource(keyName).getValue(); } - + @Override protected void onResume() { super.onResume(); } - + @Override public void onDestroy() { super.onDestroy(); } - + @Override protected void onStop() { super.onStop(); @@ -119,12 +117,12 @@ public class AllCatalogsActivity extends Activity { library.synchronize(); } } - + private class CheckItem implements Comparable{ private String myId; private boolean isChecked; NetworkTree myTree = null; - + public CheckItem(String id, boolean checked, NetworkTree tree){ myId = id; isChecked = checked; @@ -134,36 +132,36 @@ public class AllCatalogsActivity extends Activity { System.out.println("Tree parameter should be an instance of NetworkCatalogRootTree"); } } - + public CheckItem(String id, boolean checked){ myId = id; isChecked = checked; } - + public String getId(){ return myId; } - + public NetworkTree getTree(){ return myTree; } - + public String getTitle(){ return myTree.getLink().getTitle(); } - + public String getTitleLower(){ return getTitle().toLowerCase(Locale.getDefault()); } - + public boolean isChecked(){ return isChecked; } - + public void setChecked(boolean value){ isChecked = value; } - + public boolean isSection(){ return false; } @@ -173,7 +171,7 @@ public class AllCatalogsActivity extends Activity { return getTitleLower().compareTo(another.getTitleLower()); } } - + private class CheckSection extends CheckItem{ public CheckSection(String title){ super(title, false); @@ -182,28 +180,28 @@ public class AllCatalogsActivity extends Activity { return true; } } - + private class CheckListAdapter extends ArrayAdapter { Activity myActivity; private CoverManager myCoverManager; private ArrayList items = new ArrayList(); - + public CheckListAdapter(Context context, int textViewResourceId, List objects, Activity activity) { super(context, textViewResourceId, objects); myActivity = activity; items.addAll(objects); } - + public ArrayList getItems(){ return items; } @Override public View getView(int position, View convertView, final ViewGroup parent) { - + View v = convertView; - CheckItem item = this.getItem(position); - + CheckItem item = this.getItem(position); + if (item != null) { if(item.isSection()){ LayoutInflater vi; @@ -214,20 +212,20 @@ public class AllCatalogsActivity extends Activity { tt.setText(item.getId()); } }else{ - + if (myCoverManager == null) { v.measure(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); final int coverHeight = v.getMeasuredHeight(); myCoverManager = new CoverManager(myActivity, coverHeight * 15 / 12, coverHeight); v.requestLayout(); } - + LayoutInflater vi; vi = LayoutInflater.from(getContext()); v = vi.inflate(R.layout.checkbox_item, null); - + NetworkTree t = item.getTree(); - + if(t != null){ INetworkLink link = t.getLink(); TextView tt = (TextView)v.findViewById(R.id.title); @@ -238,27 +236,27 @@ public class AllCatalogsActivity extends Activity { if (tt != null) { tt.setText(link.getSummary()); } - + ImageView coverView = (ImageView)v.findViewById(R.id.icon); if (!myCoverManager.trySetCoverImage(coverView, t)) { coverView.setImageResource(R.drawable.ic_list_library_books); } - + CheckBox ch = (CheckBox)v.findViewById(R.id.check_item); if (ch != null) { ch.setText(""); ch.setChecked(item.isChecked()); ch.setTag(item); - ch.setOnClickListener( new View.OnClickListener() { - public void onClick(View v) { - CheckBox cb = (CheckBox)v; + ch.setOnClickListener( new View.OnClickListener() { + public void onClick(View v) { + CheckBox cb = (CheckBox)v; CheckItem checkedItem = (CheckItem) cb.getTag(); if(checkedItem != null){ checkedItem.setChecked(cb.isChecked()); } isChanged = true; } - }); + }); } } } diff --git a/src/org/geometerplus/fbreader/network/NetworkLibrary.java b/src/org/geometerplus/fbreader/network/NetworkLibrary.java index a28e67753..fa4c3888e 100644 --- a/src/org/geometerplus/fbreader/network/NetworkLibrary.java +++ b/src/org/geometerplus/fbreader/network/NetworkLibrary.java @@ -475,12 +475,10 @@ public class NetworkLibrary { if (l != null && link.compareTo(l) <= 0) { break; } - ++index; } new NetworkCatalogRootTree(myRootTree, link, index); } - // we do add non-catalog items new SearchCatalogTree(myRootTree, mySearchItem, 0); new AddCustomCatalogItemTree(myRootTree);