mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-02-28 15:56:49 +00:00
Instead linking it to the packages/apps/WallpaperPicker project Change-Id: Ib6830b180a22c22afece01e0a4f6e94e89d6452b
115 lines
4.4 KiB
Java
115 lines
4.4 KiB
Java
/*
|
|
* Copyright (C) 2016 The Android Open Source Project
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
package com.android.launcher3;
|
|
|
|
import android.content.Intent;
|
|
import android.content.pm.ApplicationInfo;
|
|
import android.content.pm.PackageManager;
|
|
import android.content.res.Resources;
|
|
import android.graphics.Bitmap;
|
|
import android.graphics.BitmapFactory;
|
|
import android.graphics.drawable.BitmapDrawable;
|
|
import android.os.Bundle;
|
|
import android.util.Pair;
|
|
|
|
import com.android.wallpaperpicker.tileinfo.DefaultWallpaperInfo;
|
|
import com.android.wallpaperpicker.tileinfo.FileWallpaperInfo;
|
|
import com.android.wallpaperpicker.tileinfo.WallpaperTileInfo;
|
|
|
|
import java.io.File;
|
|
import java.util.ArrayList;
|
|
|
|
public class WallpaperPickerActivity extends com.android.wallpaperpicker.WallpaperPickerActivity {
|
|
|
|
@Override
|
|
public void startActivityForResultSafely(Intent intent, int requestCode) {
|
|
Utilities.startActivityForResultSafely(this, intent, requestCode);
|
|
}
|
|
|
|
@Override
|
|
public boolean enableRotation() {
|
|
return super.enableRotation() ||
|
|
getContentResolver().call(LauncherSettings.Settings.CONTENT_URI,
|
|
LauncherSettings.Settings.METHOD_GET_BOOLEAN,
|
|
Utilities.ALLOW_ROTATION_PREFERENCE_KEY, new Bundle())
|
|
.getBoolean(LauncherSettings.Settings.EXTRA_VALUE);
|
|
}
|
|
|
|
@Override
|
|
public ArrayList<WallpaperTileInfo> findBundledWallpapers() {
|
|
final PackageManager pm = getPackageManager();
|
|
final ArrayList<WallpaperTileInfo> bundled = new ArrayList<WallpaperTileInfo>(24);
|
|
|
|
Partner partner = Partner.get(pm);
|
|
if (partner != null) {
|
|
final Resources partnerRes = partner.getResources();
|
|
final int resId = partnerRes.getIdentifier(Partner.RES_WALLPAPERS, "array",
|
|
partner.getPackageName());
|
|
if (resId != 0) {
|
|
addWallpapers(bundled, partnerRes, partner.getPackageName(), resId);
|
|
}
|
|
|
|
// Add system wallpapers
|
|
File systemDir = partner.getWallpaperDirectory();
|
|
if (systemDir != null && systemDir.isDirectory()) {
|
|
for (File file : systemDir.listFiles()) {
|
|
if (!file.isFile()) {
|
|
continue;
|
|
}
|
|
String name = file.getName();
|
|
int dotPos = name.lastIndexOf('.');
|
|
String extension = "";
|
|
if (dotPos >= -1) {
|
|
extension = name.substring(dotPos);
|
|
name = name.substring(0, dotPos);
|
|
}
|
|
|
|
if (name.endsWith("_small")) {
|
|
// it is a thumbnail
|
|
continue;
|
|
}
|
|
|
|
File thumbnail = new File(systemDir, name + "_small" + extension);
|
|
Bitmap thumb = BitmapFactory.decodeFile(thumbnail.getAbsolutePath());
|
|
if (thumb != null) {
|
|
bundled.add(new FileWallpaperInfo(
|
|
file, new BitmapDrawable(getResources(), thumb)));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
Pair<ApplicationInfo, Integer> r = getWallpaperArrayResourceId();
|
|
if (r != null) {
|
|
try {
|
|
Resources wallpaperRes = pm.getResourcesForApplication(r.first);
|
|
addWallpapers(bundled, wallpaperRes, r.first.packageName, r.second);
|
|
} catch (PackageManager.NameNotFoundException e) {
|
|
}
|
|
}
|
|
|
|
if (partner == null || !partner.hideDefaultWallpaper()) {
|
|
// Add an entry for the default wallpaper (stored in system resources)
|
|
WallpaperTileInfo defaultWallpaperInfo = DefaultWallpaperInfo.get(this);
|
|
if (defaultWallpaperInfo != null) {
|
|
bundled.add(0, defaultWallpaperInfo);
|
|
}
|
|
}
|
|
return bundled;
|
|
}
|
|
}
|