diff --git a/res/layout/applistitem.xml b/res/layout/applistitem.xml
index e9be8e80f..33f1d8003 100644
--- a/res/layout/applistitem.xml
+++ b/res/layout/applistitem.xml
@@ -4,7 +4,7 @@
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingTop="3dp"
- android:paddingBottom="5dp"
+ android:paddingBottom="4dp"
android:paddingLeft="3dp"
android:paddingRight="3dp"
android:baselineAligned="false" >
@@ -44,6 +44,15 @@
+
+
-
-
+ android:layout_alignParentBottom="true"
+ android:layout_alignParentRight="true" />
diff --git a/src/org/fdroid/fdroid/views/AppListAdapter.java b/src/org/fdroid/fdroid/views/AppListAdapter.java
index 535475953..89fefd2cf 100644
--- a/src/org/fdroid/fdroid/views/AppListAdapter.java
+++ b/src/org/fdroid/fdroid/views/AppListAdapter.java
@@ -4,10 +4,13 @@ import java.util.ArrayList;
import java.util.List;
import android.content.Context;
+import android.graphics.Typeface;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.*;
+import android.text.SpannableString;
+import android.text.style.StyleSpan;
import android.graphics.Bitmap;
import org.fdroid.fdroid.DB;
@@ -133,20 +136,38 @@ abstract public class AppListAdapter extends BaseAdapter {
return convertView;
}
-
- private String getVersionInfo(DB.App app) {
- if (app.installedVersion != null) {
- if (app.toUpdate) {
- return app.installedVersion + " -> " + app.curApk.version;
- }
- return app.installedVersion;
- } else {
- int numav = app.apks.size();
- if (numav == 1) {
- return mContext.getString(R.string.n_version_available, numav);
- }
- return mContext.getString(R.string.n_versions_available, numav);
+ String ellipsize(String input, int maxLength) {
+ if (input == null || input.length() < maxLength+1) {
+ return input;
}
+ return input.substring(0, maxLength) + "…";
+ }
+
+ private SpannableString getVersionInfo(DB.App app) {
+
+ if (app.curApk == null) {
+ return null;
+ }
+
+ if (app.installedVersion == null) {
+ return new SpannableString(
+ ellipsize(app.curApk.version, 12));
+ }
+
+ SpannableString span;
+ String cur;
+
+ if (app.toUpdate) {
+ cur = ellipsize(app.installedVersion, 8);
+ span = new SpannableString(
+ cur + " -> " + ellipsize(app.curApk.version, 8));
+ } else {
+ cur = ellipsize(app.installedVersion, 12);
+ span = new SpannableString(cur);
+ }
+
+ span.setSpan(new StyleSpan(Typeface.BOLD), 0, cur.length(), 0);
+ return span;
}
private void layoutIcon(ImageView icon, boolean compact) {