summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSantiago Etchebehere <santie@google.com>2019-06-14 18:42:46 -0700
committerSantiago Etchebehere <santie@google.com>2019-06-14 18:42:46 -0700
commite6d69b51279347246f7b7c347b893fe9d7064c11 (patch)
tree0020da85370e9fa633f933dbdf3ea36bcd1aaede /src
parentcd27f4c1d43309ae799b561a87dbe46198510e4c (diff)
downloadandroid_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')
-rwxr-xr-xsrc/com/android/wallpaper/asset/ContentUriAsset.java4
-rwxr-xr-xsrc/com/android/wallpaper/model/CurrentWallpaperInfoVN.java10
-rwxr-xr-xsrc/com/android/wallpaper/model/WallpaperMetadata.java17
-rwxr-xr-xsrc/com/android/wallpaper/module/DefaultWallpaperPreferences.java38
-rwxr-xr-xsrc/com/android/wallpaper/module/DefaultWallpaperRefresher.java3
-rwxr-xr-xsrc/com/android/wallpaper/module/WallpaperPreferenceKeys.java2
-rwxr-xr-xsrc/com/android/wallpaper/module/WallpaperPreferences.java24
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();