diff --git a/src/org/fdroid/fdroid/data/App.java b/src/org/fdroid/fdroid/data/App.java index 5624eff28..de1e52043 100644 --- a/src/org/fdroid/fdroid/data/App.java +++ b/src/org/fdroid/fdroid/data/App.java @@ -187,8 +187,18 @@ public class App extends ValueObject implements Comparable { packageInfo = pm.getPackageInfo(packageName, PackageManager.GET_SIGNATURES | PackageManager.GET_PERMISSIONS); - this.name = (String) appInfo.loadLabel(pm); - this.summary = (String) appInfo.loadDescription(pm); + + String installerPackageName = pm.getInstallerPackageName(packageName); + ApplicationInfo installerAppInfo = pm.getApplicationInfo(installerPackageName, + PackageManager.GET_META_DATA); + CharSequence installerPackageLabel = installerAppInfo.loadLabel(pm); + if (TextUtils.isEmpty(installerPackageLabel)) + installerPackageLabel = installerPackageName; + CharSequence appDescription = appInfo.loadDescription(pm); + if (TextUtils.isEmpty(appDescription)) + this.summary = "(installed by " + installerPackageLabel + ")"; + else + this.summary = (String) appDescription.subSequence(0, 40); this.id = appInfo.packageName; if (Build.VERSION.SDK_INT > 8) { this.added = new Date(packageInfo.firstInstallTime); @@ -197,10 +207,17 @@ public class App extends ValueObject implements Comparable { this.added = new Date(System.currentTimeMillis()); this.lastUpdated = this.added; } + this.description = "

"; + if (!TextUtils.isEmpty(appDescription)) + this.description += appDescription + "\n"; + this.description += "(installed by " + installerPackageLabel + + ", first installed on " + this.added + + ", last updated on " + this.lastUpdated + ")

"; + + this.name = (String) appInfo.loadLabel(pm); this.appInfo = appInfo; this.apks = new ArrayList(); - // TODO: use pm.getInstallerPackageName(packageName) for something File apkFile = new File(appInfo.publicSourceDir); Apk apk = new Apk(); apk.version = packageInfo.versionName; diff --git a/src/org/fdroid/fdroid/localrepo/LocalRepoManager.java b/src/org/fdroid/fdroid/localrepo/LocalRepoManager.java index 8458127e0..4adb625a3 100644 --- a/src/org/fdroid/fdroid/localrepo/LocalRepoManager.java +++ b/src/org/fdroid/fdroid/localrepo/LocalRepoManager.java @@ -7,13 +7,11 @@ import android.content.SharedPreferences; import android.content.pm.*; import android.content.pm.PackageManager.NameNotFoundException; import android.content.res.AssetManager; -import android.content.res.XmlResourceParser; import android.graphics.*; import android.graphics.Bitmap.CompressFormat; import android.graphics.Bitmap.Config; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; -import android.os.Build; import android.preference.PreferenceManager; import android.text.TextUtils; import android.util.Log; @@ -23,17 +21,12 @@ import org.fdroid.fdroid.data.Apk; import org.fdroid.fdroid.data.App; import org.w3c.dom.Document; import org.w3c.dom.Element; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; import java.io.*; -import java.security.cert.Certificate; import java.security.cert.CertificateEncodingException; import java.text.SimpleDateFormat; import java.util.*; import java.util.Map.Entry; -import java.util.jar.JarEntry; -import java.util.jar.JarFile; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; @@ -283,7 +276,7 @@ public class LocalRepoManager { rootElement.appendChild(repo); Element repoDesc = doc.createElement("description"); - repoDesc.setTextContent("A repo generated from apps installed on " + repoName); + repoDesc.setTextContent("A local FDroid repo generated from apps installed on " + repoName); repo.appendChild(repoDesc); SimpleDateFormat dateToStr = new SimpleDateFormat("yyyy-MM-dd", Locale.US); @@ -312,15 +305,11 @@ public class LocalRepoManager { application.appendChild(name); Element summary = doc.createElement("summary"); - summary.setTextContent(app.name); + summary.setTextContent(app.summary); application.appendChild(summary); - Element description = doc.createElement("description"); - description.setTextContent(app.name); - application.appendChild(description); - Element desc = doc.createElement("desc"); - desc.setTextContent(app.name); + desc.setTextContent(app.description); application.appendChild(desc); Element icon = doc.createElement("icon");