am 1bca7612: am eca41b31: Merge change Id1458b01 into eclair

Merge commit '1bca7612dfeb78bba91f3985fb6f3567daf13a57' into eclair-mr2-plus-aosp

* commit '1bca7612dfeb78bba91f3985fb6f3567daf13a57':
  New live wallpaper API to expose author and description strings.
This commit is contained in:
Daniel Sandler
2009-11-05 14:05:19 -08:00
committed by Android Git Automerger
4 changed files with 82 additions and 0 deletions

View File

@@ -8842,6 +8842,17 @@
visibility="public" visibility="public"
> >
</field> </field>
<field name="wallpaperAuthor"
type="int"
transient="false"
volatile="false"
value="16843444"
static="true"
final="true"
deprecated="not deprecated"
visibility="public"
>
</field>
<field name="wallpaperCloseEnterAnimation" <field name="wallpaperCloseEnterAnimation"
type="int" type="int"
transient="false" transient="false"
@@ -8864,6 +8875,17 @@
visibility="public" visibility="public"
> >
</field> </field>
<field name="wallpaperDescription"
type="int"
transient="false"
volatile="false"
value="16843445"
static="true"
final="true"
deprecated="not deprecated"
visibility="public"
>
</field>
<field name="wallpaperIntraCloseEnterAnimation" <field name="wallpaperIntraCloseEnterAnimation"
type="int" type="int"
transient="false" transient="false"

View File

@@ -9,6 +9,7 @@ import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo; import android.content.pm.ResolveInfo;
import android.content.pm.ServiceInfo; import android.content.pm.ServiceInfo;
import android.content.res.Resources.NotFoundException;
import android.content.res.TypedArray; import android.content.res.TypedArray;
import android.content.res.XmlResourceParser; import android.content.res.XmlResourceParser;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
@@ -44,6 +45,16 @@ public final class WallpaperInfo implements Parcelable {
*/ */
final int mThumbnailResource; final int mThumbnailResource;
/**
* Resource identifier for a string indicating the author of the wallpaper.
*/
final int mAuthorResource;
/**
* Resource identifier for a string containing a short description of the wallpaper.
*/
final int mDescriptionResource;
/** /**
* Constructor. * Constructor.
* *
@@ -59,6 +70,8 @@ public final class WallpaperInfo implements Parcelable {
PackageManager pm = context.getPackageManager(); PackageManager pm = context.getPackageManager();
String settingsActivityComponent = null; String settingsActivityComponent = null;
int thumbnailRes = -1; int thumbnailRes = -1;
int authorRes = -1;
int descriptionRes = -1;
XmlResourceParser parser = null; XmlResourceParser parser = null;
try { try {
@@ -89,6 +102,12 @@ public final class WallpaperInfo implements Parcelable {
thumbnailRes = sa.getResourceId( thumbnailRes = sa.getResourceId(
com.android.internal.R.styleable.Wallpaper_thumbnail, com.android.internal.R.styleable.Wallpaper_thumbnail,
-1); -1);
authorRes = sa.getResourceId(
com.android.internal.R.styleable.Wallpaper_wallpaperAuthor,
-1);
descriptionRes = sa.getResourceId(
com.android.internal.R.styleable.Wallpaper_wallpaperDescription,
-1);
sa.recycle(); sa.recycle();
} finally { } finally {
@@ -97,11 +116,15 @@ public final class WallpaperInfo implements Parcelable {
mSettingsActivityName = settingsActivityComponent; mSettingsActivityName = settingsActivityComponent;
mThumbnailResource = thumbnailRes; mThumbnailResource = thumbnailRes;
mAuthorResource = authorRes;
mDescriptionResource = descriptionRes;
} }
WallpaperInfo(Parcel source) { WallpaperInfo(Parcel source) {
mSettingsActivityName = source.readString(); mSettingsActivityName = source.readString();
mThumbnailResource = source.readInt(); mThumbnailResource = source.readInt();
mAuthorResource = source.readInt();
mDescriptionResource = source.readInt();
mService = ResolveInfo.CREATOR.createFromParcel(source); mService = ResolveInfo.CREATOR.createFromParcel(source);
} }
@@ -169,6 +192,32 @@ public final class WallpaperInfo implements Parcelable {
mThumbnailResource, mThumbnailResource,
null); null);
} }
/**
* Return a string indicating the author(s) of this wallpaper.
*/
public CharSequence loadAuthor(PackageManager pm) throws NotFoundException {
if (mAuthorResource <= 0) throw new NotFoundException();
return pm.getText(
(mService.resolvePackageName != null)
? mService.resolvePackageName
: getPackageName(),
mAuthorResource,
null);
}
/**
* Return a brief summary of this wallpaper's behavior.
*/
public CharSequence loadDescription(PackageManager pm) throws NotFoundException {
if (mDescriptionResource <= 0) throw new NotFoundException();
return pm.getText(
(mService.resolvePackageName != null)
? mService.resolvePackageName
: getPackageName(),
mDescriptionResource,
null);
}
/** /**
* Return the class name of an activity that provides a settings UI for * Return the class name of an activity that provides a settings UI for
@@ -206,6 +255,8 @@ public final class WallpaperInfo implements Parcelable {
public void writeToParcel(Parcel dest, int flags) { public void writeToParcel(Parcel dest, int flags) {
dest.writeString(mSettingsActivityName); dest.writeString(mSettingsActivityName);
dest.writeInt(mThumbnailResource); dest.writeInt(mThumbnailResource);
dest.writeInt(mAuthorResource);
dest.writeInt(mDescriptionResource);
mService.writeToParcel(dest, flags); mService.writeToParcel(dest, flags);
} }

View File

@@ -3483,6 +3483,12 @@
<!-- Reference to a the wallpaper's thumbnail bitmap. --> <!-- Reference to a the wallpaper's thumbnail bitmap. -->
<attr name="thumbnail" format="reference" /> <attr name="thumbnail" format="reference" />
<!-- Name of the author of a wallpaper, e.g. Google. -->
<attr name="wallpaperAuthor" format="reference" />
<!-- Short description of the wallpaper's purpose or behavior. -->
<attr name="wallpaperDescription" format="reference" />
</declare-styleable> </declare-styleable>
<!-- =============================== --> <!-- =============================== -->

View File

@@ -1201,5 +1201,8 @@
<public type="attr" name="quickContactBadgeStyleSmallWindowSmall" /> <public type="attr" name="quickContactBadgeStyleSmallWindowSmall" />
<public type="attr" name="quickContactBadgeStyleSmallWindowMedium" /> <public type="attr" name="quickContactBadgeStyleSmallWindowMedium" />
<public type="attr" name="quickContactBadgeStyleSmallWindowLarge" /> <public type="attr" name="quickContactBadgeStyleSmallWindowLarge" />
<public type="attr" name="wallpaperAuthor" />
<public type="attr" name="wallpaperDescription" />
</resources> </resources>