Wallpaper settings

Added an option in Screen settings to choose a wallpaper.
It then shows a list of wallpaper sources and launches the
corresponding intent on selecting.

Bug: 4691375
Change-Id: I9de9edf56ae4cdd5145a1c5d836df66b893a05fe
This commit is contained in:
Amith Yamasani
2011-06-16 16:55:28 -07:00
parent 0ae7893ab9
commit fcbf7cffb6
4 changed files with 88 additions and 1 deletions

View File

@@ -1450,6 +1450,8 @@
<string name="screen_timeout">Timeout</string>
<!-- Sound & display settings screen, setting option summary to change screen timeout -->
<string name="screen_timeout_summary">Screen turns off automatically after <xliff:g id="timeout_description">%1$s</xliff:g></string>
<!-- Wallpaper settings title [CHAR LIMIT=30] -->
<string name="wallpaper_settings_title">Wallpaper</string>
<!-- Display settings screen, trigger for screen saver options -->
<string name="dream_settings_title">Android Dreams</string>
<!-- Display settings screen, summary for screen saver options -->

View File

@@ -41,7 +41,13 @@
android:persistent="false"
android:entries="@array/screen_timeout_entries"
android:entryValues="@array/screen_timeout_values" />
<PreferenceScreen
android:key="wallpaper"
android:title="@string/wallpaper_settings_title"
android:fragment="com.android.settings.WallpaperTypeSettings"
/>
<PreferenceScreen
android:title="@string/dream_settings_title"
android:summary="@string/dream_settings_summary"

View File

@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2011 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.
-->
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
android:title="@string/wallpaper_settings_title">
</PreferenceScreen>

View File

@@ -0,0 +1,59 @@
/*
* Copyright (C) 2011 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.settings;
import android.content.ComponentName;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.preference.Preference;
import java.util.List;
public class WallpaperTypeSettings extends SettingsPreferenceFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.wallpaper_settings);
populateWallpaperTypes();
}
private void populateWallpaperTypes() {
// Search for activities that satisfy the ACTION_SET_WALLPAPER action
Intent intent = new Intent(Intent.ACTION_SET_WALLPAPER);
final PackageManager pm = getPackageManager();
List<ResolveInfo> rList = pm.queryIntentActivities(intent,
PackageManager.MATCH_DEFAULT_ONLY);
// Add Preference items for each of the matching activities
for (ResolveInfo info : rList) {
Preference pref = new Preference(getActivity());
Intent prefIntent = new Intent(intent);
prefIntent.setComponent(new ComponentName(
info.activityInfo.packageName, info.activityInfo.name));
pref.setIntent(prefIntent);
CharSequence label = info.loadLabel(pm);
if (label == null) label = info.activityInfo.packageName;
pref.setTitle(label);
getPreferenceScreen().addPreference(pref);
}
}
}