/* * Copyright (C) 2012 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 java.io.IOException; import java.util.ArrayList; import com.android.launcher3.R; import android.app.WallpaperManager; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.res.Resources; /** * Takes care of setting initial wallpaper for a user, by selecting the * first wallpaper that is not in use by another user. */ public class UserInitializeReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { final Resources resources = context.getResources(); // Context.getPackageName() may return the "original" package name, // com.android.launcher3; Resources needs the real package name, // com.android.launcher3. So we ask Resources for what it thinks the // package name should be. final String packageName = resources.getResourcePackageName(R.array.wallpapers); ArrayList list = new ArrayList(); addWallpapers(resources, packageName, R.array.wallpapers, list); addWallpapers(resources, packageName, R.array.extra_wallpapers, list); WallpaperManager wpm = (WallpaperManager) context.getSystemService( Context.WALLPAPER_SERVICE); for (int i=1; i outList) { final String[] extras = resources.getStringArray(resid); for (String extra : extras) { int res = resources.getIdentifier(extra, "drawable", packageName); if (res != 0) { outList.add(res); } } } }