diff options
| author | Santiago Etchebehere <santie@google.com> | 2019-06-14 18:42:46 -0700 |
|---|---|---|
| committer | Santiago Etchebehere <santie@google.com> | 2019-06-14 18:42:46 -0700 |
| commit | e6d69b51279347246f7b7c347b893fe9d7064c11 (patch) | |
| tree | 0020da85370e9fa633f933dbdf3ea36bcd1aaede /src | |
| parent | cd27f4c1d43309ae799b561a87dbe46198510e4c (diff) | |
| download | android_packages_apps_WallpaperPicker2-e6d69b51279347246f7b7c347b893fe9d7064c11.tar.gz android_packages_apps_WallpaperPicker2-e6d69b51279347246f7b7c347b893fe9d7064c11.tar.bz2 android_packages_apps_WallpaperPicker2-e6d69b51279347246f7b7c347b893fe9d7064c11.zip | |
Add backing file name wallpaper metadata
This way we can keep the location of copy of the image if
needed.
Bug: 135209029
Change-Id: I95de8489e4404bd69fd10598df38ca87fca74e69
Diffstat (limited to 'src')
7 files changed, 91 insertions, 7 deletions
diff --git a/src/com/android/wallpaper/asset/ContentUriAsset.java b/src/com/android/wallpaper/asset/ContentUriAsset.java index ed0a368..fffd97a 100755 --- a/src/com/android/wallpaper/asset/ContentUriAsset.java +++ b/src/com/android/wallpaper/asset/ContentUriAsset.java @@ -244,6 +244,10 @@ public final class ContentUriAsset extends StreamableAsset { .into(imageView); } + public Uri getUri() { + return mUri; + } + /** * Custom AsyncTask which crops a bitmap region from a larger bitmap. */ diff --git a/src/com/android/wallpaper/model/CurrentWallpaperInfoVN.java b/src/com/android/wallpaper/model/CurrentWallpaperInfoVN.java index eafbec9..e44e717 100755 --- a/src/com/android/wallpaper/model/CurrentWallpaperInfoVN.java +++ b/src/com/android/wallpaper/model/CurrentWallpaperInfoVN.java @@ -21,6 +21,9 @@ import android.os.Parcel; import android.os.ParcelFileDescriptor; import android.util.Log; +import androidx.annotation.DrawableRes; +import androidx.annotation.StringRes; + import com.android.wallpaper.asset.Asset; import com.android.wallpaper.asset.BuiltInWallpaperAsset; import com.android.wallpaper.asset.CurrentWallpaperAssetVN; @@ -35,9 +38,6 @@ import java.io.IOException; import java.util.ArrayList; import java.util.List; -import androidx.annotation.DrawableRes; -import androidx.annotation.StringRes; - /** * Represents the currently set wallpaper on N+ devices. Should not be used to set a new wallpaper. */ @@ -134,6 +134,10 @@ public class CurrentWallpaperInfoVN extends WallpaperInfo { return mActionLabelRes != 0 ? mActionLabelRes : WallpaperInfo.getDefaultActionLabel(); } + public int getWallpaperManagerFlag() { + return mWallpaperManagerFlag; + } + /** * Constructs and returns an Asset instance representing the currently-set wallpaper asset. */ diff --git a/src/com/android/wallpaper/model/WallpaperMetadata.java b/src/com/android/wallpaper/model/WallpaperMetadata.java index 22c1044..cd24796 100755 --- a/src/com/android/wallpaper/model/WallpaperMetadata.java +++ b/src/com/android/wallpaper/model/WallpaperMetadata.java @@ -17,11 +17,12 @@ package com.android.wallpaper.model; import android.app.WallpaperInfo; -import java.util.List; - import androidx.annotation.DrawableRes; +import androidx.annotation.Nullable; import androidx.annotation.StringRes; +import java.util.List; + /** * Lightweight wrapper for user-facing wallpaper metadata. */ @@ -30,6 +31,7 @@ public class WallpaperMetadata { private final List<String> mAttributions; private final String mActionUrl; private final String mCollectionId; + private final String mBackingFileName; private final android.app.WallpaperInfo mWallpaperComponent; @StringRes private final int mActionLabelRes; @DrawableRes private final int mActionIconRes; @@ -37,12 +39,14 @@ public class WallpaperMetadata { public WallpaperMetadata(List<String> attributions, String actionUrl, @StringRes int actionLabelRes, @DrawableRes int actionIconRes, String collectionId, + String backingFileName, android.app.WallpaperInfo wallpaperComponent) { mAttributions = attributions; mActionUrl = actionUrl; mActionLabelRes = actionLabelRes; mActionIconRes = actionIconRes; mCollectionId = collectionId; + mBackingFileName = backingFileName; mWallpaperComponent = wallpaperComponent; } @@ -84,6 +88,15 @@ public class WallpaperMetadata { } /** + * Returns the name of a private file corresponding to a copy of the full image used as + * wallpaper if this is a static wallpaper. + */ + @Nullable + public String getBackingFileName() { + return mBackingFileName; + } + + /** * Returns the {@link android.app.WallpaperInfo} if a live wallpaper, or null if the metadata * describes an image wallpaper. */ diff --git a/src/com/android/wallpaper/module/DefaultWallpaperPreferences.java b/src/com/android/wallpaper/module/DefaultWallpaperPreferences.java index bd017ac..319276b 100755 --- a/src/com/android/wallpaper/module/DefaultWallpaperPreferences.java +++ b/src/com/android/wallpaper/module/DefaultWallpaperPreferences.java @@ -19,6 +19,7 @@ import android.app.backup.BackupManager; import android.content.Context; import android.content.SharedPreferences; import android.content.SharedPreferences.OnSharedPreferenceChangeListener; +import android.text.TextUtils; import android.util.Log; import androidx.annotation.Nullable; @@ -26,6 +27,7 @@ import androidx.annotation.Nullable; import org.json.JSONArray; import org.json.JSONException; +import java.io.File; import java.util.ArrayList; import java.util.Arrays; import java.util.Calendar; @@ -175,6 +177,19 @@ public class DefaultWallpaperPreferences implements WallpaperPreferences { } @Override + @Nullable + public String getHomeWallpaperBackingFileName() { + return mSharedPrefs.getString(WallpaperPreferenceKeys.KEY_HOME_WALLPAPER_BACKING_FILE, + null); + } + + @Override + public void setHomeWallpaperBackingFileName(String fileName) { + mSharedPrefs.edit().putString( + WallpaperPreferenceKeys.KEY_HOME_WALLPAPER_BACKING_FILE, fileName).apply(); + } + + @Override public long getHomeWallpaperHashCode() { return mSharedPrefs.getLong(WallpaperPreferenceKeys.KEY_HOME_WALLPAPER_HASH_CODE, 0); } @@ -187,6 +202,10 @@ public class DefaultWallpaperPreferences implements WallpaperPreferences { @Override public void clearHomeWallpaperMetadata() { + String homeWallpaperBackingFileName = getHomeWallpaperBackingFileName(); + if (!TextUtils.isEmpty(homeWallpaperBackingFileName)) { + new File(homeWallpaperBackingFileName).delete(); + } mSharedPrefs.edit() .remove(WallpaperPreferenceKeys.KEY_HOME_WALLPAPER_ATTRIB_1) .remove(WallpaperPreferenceKeys.KEY_HOME_WALLPAPER_ATTRIB_2) @@ -199,6 +218,7 @@ public class DefaultWallpaperPreferences implements WallpaperPreferences { .remove(WallpaperPreferenceKeys.KEY_HOME_WALLPAPER_MANAGER_ID) .remove(WallpaperPreferenceKeys.KEY_HOME_WALLPAPER_PACKAGE_NAME) .remove(WallpaperPreferenceKeys.KEY_HOME_WALLPAPER_REMOTE_ID) + .remove(WallpaperPreferenceKeys.KEY_HOME_WALLPAPER_BACKING_FILE) .apply(); } @@ -309,6 +329,19 @@ public class DefaultWallpaperPreferences implements WallpaperPreferences { } @Override + @Nullable + public String getLockWallpaperBackingFileName() { + return mSharedPrefs.getString(WallpaperPreferenceKeys.KEY_LOCK_WALLPAPER_BACKING_FILE, + null); + } + + @Override + public void setLockWallpaperBackingFileName(String fileName) { + mSharedPrefs.edit().putString( + WallpaperPreferenceKeys.KEY_LOCK_WALLPAPER_BACKING_FILE, fileName).apply(); + } + + @Override public int getLockWallpaperId() { return mSharedPrefs.getInt(WallpaperPreferenceKeys.KEY_LOCK_WALLPAPER_MANAGER_ID, 0); } @@ -333,6 +366,10 @@ public class DefaultWallpaperPreferences implements WallpaperPreferences { @Override public void clearLockWallpaperMetadata() { + String lockWallpaperBackingFileName = getLockWallpaperBackingFileName(); + if (!TextUtils.isEmpty(lockWallpaperBackingFileName)) { + new File(lockWallpaperBackingFileName).delete(); + } mSharedPrefs.edit() .remove(WallpaperPreferenceKeys.KEY_LOCK_WALLPAPER_ATTRIB_1) .remove(WallpaperPreferenceKeys.KEY_LOCK_WALLPAPER_ATTRIB_2) @@ -342,6 +379,7 @@ public class DefaultWallpaperPreferences implements WallpaperPreferences { .remove(WallpaperPreferenceKeys.KEY_LOCK_WALLPAPER_ACTION_ICON_RES) .remove(WallpaperPreferenceKeys.KEY_LOCK_WALLPAPER_HASH_CODE) .remove(WallpaperPreferenceKeys.KEY_LOCK_WALLPAPER_MANAGER_ID) + .remove(WallpaperPreferenceKeys.KEY_LOCK_WALLPAPER_BACKING_FILE) .apply(); } diff --git a/src/com/android/wallpaper/module/DefaultWallpaperRefresher.java b/src/com/android/wallpaper/module/DefaultWallpaperRefresher.java index b5dc7bf..c97d2b9 100755 --- a/src/com/android/wallpaper/module/DefaultWallpaperRefresher.java +++ b/src/com/android/wallpaper/module/DefaultWallpaperRefresher.java @@ -116,6 +116,7 @@ public class DefaultWallpaperRefresher implements WallpaperRefresher { mWallpaperPreferences.getHomeWallpaperActionLabelRes(), mWallpaperPreferences.getHomeWallpaperActionIconRes(), mWallpaperPreferences.getHomeWallpaperCollectionId(), + mWallpaperPreferences.getHomeWallpaperBackingFileName(), mWallpaperManager.getWallpaperInfo())); return wallpaperMetadatas; } @@ -131,6 +132,7 @@ public class DefaultWallpaperRefresher implements WallpaperRefresher { mWallpaperPreferences.getHomeWallpaperActionLabelRes(), mWallpaperPreferences.getHomeWallpaperActionIconRes(), mWallpaperPreferences.getHomeWallpaperCollectionId(), + mWallpaperPreferences.getHomeWallpaperBackingFileName(), mWallpaperManager.getWallpaperInfo())); wallpaperMetadatas.add(new WallpaperMetadata( @@ -139,6 +141,7 @@ public class DefaultWallpaperRefresher implements WallpaperRefresher { mWallpaperPreferences.getLockWallpaperActionLabelRes(), mWallpaperPreferences.getLockWallpaperActionIconRes(), mWallpaperPreferences.getLockWallpaperCollectionId(), + mWallpaperPreferences.getLockWallpaperBackingFileName(), null /* wallpaperComponent */)); return wallpaperMetadatas; diff --git a/src/com/android/wallpaper/module/WallpaperPreferenceKeys.java b/src/com/android/wallpaper/module/WallpaperPreferenceKeys.java index 9f7acbf..f63506f 100755 --- a/src/com/android/wallpaper/module/WallpaperPreferenceKeys.java +++ b/src/com/android/wallpaper/module/WallpaperPreferenceKeys.java @@ -33,6 +33,7 @@ public class WallpaperPreferenceKeys { public static final String KEY_HOME_WALLPAPER_MANAGER_ID = "home_wallpaper_id"; public static final String KEY_HOME_WALLPAPER_PACKAGE_NAME = "home_wallpaper_package_name"; public static final String KEY_HOME_WALLPAPER_REMOTE_ID = "home_wallpaper_remote_id"; + public static final String KEY_HOME_WALLPAPER_BACKING_FILE = "home_wallpaper_backing_file"; public static final String KEY_LOCK_WALLPAPER_ATTRIB_1 = "lock_wallpaper_attribution_line_1"; public static final String KEY_LOCK_WALLPAPER_ATTRIB_2 = "lock_wallpaper_attribution_line_2"; @@ -43,6 +44,7 @@ public class WallpaperPreferenceKeys { public static final String KEY_LOCK_WALLPAPER_HASH_CODE = "lock_wallpaper_hash_code"; public static final String KEY_LOCK_WALLPAPER_COLLECTION_ID = "lock_wallpaper_collection_id"; public static final String KEY_LOCK_WALLPAPER_MANAGER_ID = "lock_wallpaper_id"; + public static final String KEY_LOCK_WALLPAPER_BACKING_FILE = "lock_wallpaper_backing_file"; public static final String KEY_DAILY_ROTATION_TIMESTAMPS = "daily_rotation_timestamps"; public static final String KEY_DAILY_WALLPAPER_ENABLED_TIMESTAMP = diff --git a/src/com/android/wallpaper/module/WallpaperPreferences.java b/src/com/android/wallpaper/module/WallpaperPreferences.java index aa964cd..f009f59 100755 --- a/src/com/android/wallpaper/module/WallpaperPreferences.java +++ b/src/com/android/wallpaper/module/WallpaperPreferences.java @@ -18,11 +18,11 @@ package com.android.wallpaper.module; import android.annotation.TargetApi; import android.os.Build; -import java.util.List; - import androidx.annotation.IntDef; import androidx.annotation.Nullable; +import java.util.List; + /** * Interface for persisting and retrieving wallpaper specific preferences. */ @@ -108,6 +108,16 @@ public interface WallpaperPreferences { void setHomeWallpaperCollectionId(String collectionId); /** + * Returns the home wallpaper's backing file name if there's one or null. + */ + String getHomeWallpaperBackingFileName(); + + /** + * Sets the home wallpaper's backing file name + */ + void setHomeWallpaperBackingFileName(String fileName); + + /** * Removes all home metadata from SharedPreferences. */ void clearHomeWallpaperMetadata(); @@ -197,6 +207,16 @@ public interface WallpaperPreferences { void setLockWallpaperCollectionId(String collectionId); /** + * Returns the home wallpaper's backing file name if there's one or null. + */ + String getLockWallpaperBackingFileName(); + + /** + * Sets the home wallpaper's backing file name + */ + void setLockWallpaperBackingFileName(String fileName); + + /** * Returns the lock screen attributions as a list. */ List<String> getLockWallpaperAttributions(); |
