summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSunny Goyal <sunnygoyal@google.com>2015-08-31 16:51:34 -0700
committerSunny Goyal <sunnygoyal@google.com>2015-08-31 17:28:09 -0700
commit702996867bf80dd6652a46303cc06568e6f78369 (patch)
treec124e34ce19a20146288d6fd93104d448f7dd5c8
parent03412672d141629593561031e331739c28bc7476 (diff)
downloadandroid_packages_wallpapers_LivePicker-702996867bf80dd6652a46303cc06568e6f78369.tar.gz
android_packages_wallpapers_LivePicker-702996867bf80dd6652a46303cc06568e6f78369.tar.bz2
android_packages_wallpapers_LivePicker-702996867bf80dd6652a46303cc06568e6f78369.zip
Updating the LiveWallpaperPicker UI
> Using the settings theme > Removing GirdLayout usage, using ListView with appropriate padding > Removing trampoline activity when starting wallpaper preview Change-Id: Iea12a8c1c6d6cdc0682add07e1b9565827da71c8
-rw-r--r--res/layout-xlarge/live_wallpaper_base.xml19
-rw-r--r--res/layout-xlarge/live_wallpaper_entry.xml45
-rw-r--r--res/layout-xlarge/live_wallpaper_list.xml51
-rw-r--r--res/layout/live_wallpaper_base.xml20
-rw-r--r--res/layout/live_wallpaper_entry.xml10
-rw-r--r--res/layout/live_wallpaper_list.xml38
-rw-r--r--res/values-xlarge/dimensions.xml4
-rw-r--r--res/values-xlarge/styles.xml22
-rw-r--r--res/values/dimensions.xml5
-rw-r--r--res/values/strings.xml2
-rw-r--r--res/values/styles.xml14
-rw-r--r--src/com/android/wallpaper/livepicker/LiveWallpaperActivity.java125
-rw-r--r--src/com/android/wallpaper/livepicker/LiveWallpaperChange.java44
-rw-r--r--src/com/android/wallpaper/livepicker/LiveWallpaperListAdapter.java3
-rw-r--r--src/com/android/wallpaper/livepicker/LiveWallpaperPreview.java37
15 files changed, 68 insertions, 371 deletions
diff --git a/res/layout-xlarge/live_wallpaper_base.xml b/res/layout-xlarge/live_wallpaper_base.xml
deleted file mode 100644
index 3c1888c..0000000
--- a/res/layout-xlarge/live_wallpaper_base.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2010 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.
--->
-
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content" /> \ No newline at end of file
diff --git a/res/layout-xlarge/live_wallpaper_entry.xml b/res/layout-xlarge/live_wallpaper_entry.xml
deleted file mode 100644
index cecdf59..0000000
--- a/res/layout-xlarge/live_wallpaper_entry.xml
+++ /dev/null
@@ -1,45 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2010 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.
--->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:orientation="vertical"
- android:padding="8dp">
- <ImageView
- android:id="@+id/thumbnail"
- android:layout_width="@dimen/live_wallpaper_grid_item_width"
- android:layout_height="@dimen/live_wallpaper_grid_item_height"
- android:layout_gravity="center"
- android:layout_weight="1"
- android:scaleType="centerCrop" />
- <TextView
- android:id="@+id/title"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_weight="0"
- android:layout_gravity="center"
- android:gravity="bottom"
- android:singleLine="true"
- android:ellipsize="marquee"
-
- android:textColor="#FFFFFFFF"
- android:textSize="14sp"
- android:shadowColor="#FF000000"
- android:shadowDx="0.0"
- android:shadowDy="1.0"
- android:shadowRadius="1.0" />
-</LinearLayout>
diff --git a/res/layout-xlarge/live_wallpaper_list.xml b/res/layout-xlarge/live_wallpaper_list.xml
deleted file mode 100644
index 49a1786..0000000
--- a/res/layout-xlarge/live_wallpaper_list.xml
+++ /dev/null
@@ -1,51 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2010 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.
--->
-
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:paddingLeft="24dp"
- android:paddingRight="24dp"
- android:paddingTop="24dp"
- android:paddingBottom="24dp"
- android:gravity="center">
- <GridView
- android:id="@android:id/list"
- android:layout_width="702dp"
- android:layout_height="wrap_content"
- android:layout_gravity="center"
- android:numColumns="3"
- android:stretchMode="none"
- android:columnWidth="@dimen/live_wallpaper_grid_item_width"
- android:verticalSpacing="0dp"
- android:horizontalSpacing="0dp"
- android:drawSelectorOnTop="false" />
- <TextView
- android:id="@android:id/empty"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
-
- android:gravity="center"
- android:visibility="gone"
-
- android:text="@string/live_wallpaper_empty"
- android:textColor="#FFFFFFFF"
- android:textSize="14sp"
- android:shadowColor="#FF000000"
- android:shadowDx="0.0"
- android:shadowDy="1.0"
- android:shadowRadius="1.0" />
-</FrameLayout> \ No newline at end of file
diff --git a/res/layout/live_wallpaper_base.xml b/res/layout/live_wallpaper_base.xml
index bb4c960..dfbd212 100644
--- a/res/layout/live_wallpaper_base.xml
+++ b/res/layout/live_wallpaper_base.xml
@@ -16,9 +16,21 @@
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
- android:layout_height="match_parent">
- <fragment class="com.android.wallpaper.livepicker.LiveWallpaperActivity$WallpaperDialog"
- android:id="@+id/live_wallpaper_fragment"
+ android:layout_height="match_parent"
+ android:paddingLeft="@dimen/screen_margin_sides"
+ android:paddingRight="@dimen/screen_margin_sides">
+ <ListView
+ android:id="@android:id/list"
android:layout_width="match_parent"
- android:layout_height="match_parent" />
+ android:layout_height="match_parent"
+ android:drawSelectorOnTop="false" />
+
+ <TextView
+ android:id="@android:id/empty"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:gravity="center"
+ android:visibility="gone"
+ android:text="@string/live_wallpaper_empty"
+ android:textAppearance="?android:attr/textAppearanceMedium" />
</FrameLayout>
diff --git a/res/layout/live_wallpaper_entry.xml b/res/layout/live_wallpaper_entry.xml
index df75e84..a133841 100644
--- a/res/layout/live_wallpaper_entry.xml
+++ b/res/layout/live_wallpaper_entry.xml
@@ -17,43 +17,33 @@
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
-
android:paddingStart="6dip"
android:paddingEnd="6dip"
android:paddingTop="6dip"
android:paddingBottom="6dip"
-
android:minHeight="?android:attr/listPreferredItemHeight">
<ImageView
android:id="@+id/thumbnail"
-
android:layout_width="@dimen/live_wallpaper_thumbnail_width"
android:layout_height="@dimen/live_wallpaper_thumbnail_height"
-
android:layout_gravity="center_vertical"
-
android:scaleType="centerCrop" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
-
android:layout_marginStart="10dip"
android:layout_marginEnd="8dip"
android:layout_centerVertical="true"
android:layout_toEndOf="@id/thumbnail"
-
android:orientation="vertical">
<TextView
android:id="@+id/title"
-
android:layout_width="match_parent"
android:layout_height="wrap_content"
-
android:textAppearance="?android:attr/textAppearanceMedium"
-
android:singleLine="true"
android:ellipsize="marquee" />
diff --git a/res/layout/live_wallpaper_list.xml b/res/layout/live_wallpaper_list.xml
deleted file mode 100644
index a3c22bb..0000000
--- a/res/layout/live_wallpaper_list.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2009 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.
--->
-
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="match_parent"
- android:layout_height="match_parent">
- <ListView
- android:id="@android:id/list"
-
- android:layout_width="match_parent"
- android:layout_height="match_parent"
-
- android:drawSelectorOnTop="false" />
-
- <TextView
- android:id="@android:id/empty"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
-
- android:gravity="center"
- android:visibility="gone"
-
- android:text="@string/live_wallpaper_empty"
- android:textAppearance="?android:attr/textAppearanceMedium" />
-</FrameLayout> \ No newline at end of file
diff --git a/res/values-xlarge/dimensions.xml b/res/values-xlarge/dimensions.xml
index b60f099..14edc8e 100644
--- a/res/values-xlarge/dimensions.xml
+++ b/res/values-xlarge/dimensions.xml
@@ -18,7 +18,5 @@
-->
<resources>
- <dimen name="live_wallpaper_grid_item_width">224dip</dimen>
- <dimen name="live_wallpaper_grid_item_height">192dip</dimen>
- <dimen name="live_wallpaper_preview_button_width">200dip</dimen>
+ <dimen name="screen_margin_sides">128dip</dimen>
</resources>
diff --git a/res/values-xlarge/styles.xml b/res/values-xlarge/styles.xml
deleted file mode 100644
index c7e0e33..0000000
--- a/res/values-xlarge/styles.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-* Copyright (C) 2010 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.
-*/
--->
-
-<resources>
- <style name="LivePickerTheme" parent="@*android:Theme.Holo.Dialog.NoFrame" />
-</resources>
diff --git a/res/values/dimensions.xml b/res/values/dimensions.xml
index 89074de..d08e573 100644
--- a/res/values/dimensions.xml
+++ b/res/values/dimensions.xml
@@ -22,6 +22,7 @@
<dimen name="live_wallpaper_thumbnail_text_offset">12dip</dimen>
<dimen name="live_wallpaper_thumbnail_width">75dip</dimen>
<dimen name="live_wallpaper_thumbnail_height">75dip</dimen>
- <dimen name="dialog_content_inset">0dip</dimen>
- <dimen name="live_wallpaper_preview_button_width">160dip</dimen>
+
+ <dimen name="screen_margin_sides">0dip</dimen>
+
</resources>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 7af69c7..9c508de 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -41,7 +41,5 @@
<string name="wallpaper_title_and_author"><xliff:g id="title" example="Galaxy">%1$s</xliff:g> by <xliff:g id="author" example="Google">%2$s</xliff:g></string>
<!-- Message, tells the user the selected live wallpaper is loading. -->
<string name="live_wallpaper_loading">Loading live wallpaper…</string>
- <!-- Button label, action, cancels the wallpaper picker dialog [CHAR_LIMIT=40]-->
- <string name="wallpaper_cancel">Cancel</string>
</resources>
diff --git a/res/values/styles.xml b/res/values/styles.xml
index b908235..01747e7 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -19,19 +19,7 @@
<resources>
- <style name="WallpaperTitle">
- <item name="android:textSize">20dip</item>
- <item name="android:shadowColor">#FF000000</item>
- <item name="android:shadowRadius">2.5</item>
- <item name="android:shadowDx">0</item>
- <item name="android:shadowDy">0</item>
- <item name="android:textColor">#FFFFFFFF</item>
- <item name="android:gravity">left</item>
- </style>
-
- <style name="LivePickerTheme" parent="android:style/Theme.Holo">
- <item name="android:windowNoTitle">true</item>
- </style>
+ <style name="LivePickerTheme" parent="@android:style/Theme.DeviceDefault.Settings" />
<style name="Preview" parent="@android:style/Theme.DeviceDefault">
<item name="android:actionBarStyle">@style/PreviewActionBar</item>
diff --git a/src/com/android/wallpaper/livepicker/LiveWallpaperActivity.java b/src/com/android/wallpaper/livepicker/LiveWallpaperActivity.java
index d8de4e1..9dd29c4 100644
--- a/src/com/android/wallpaper/livepicker/LiveWallpaperActivity.java
+++ b/src/com/android/wallpaper/livepicker/LiveWallpaperActivity.java
@@ -16,39 +16,25 @@
package com.android.wallpaper.livepicker;
-import android.app.Activity;
-import android.app.AlertDialog;
-import android.app.Dialog;
-import android.app.DialogFragment;
-import android.app.Fragment;
+import android.app.ListActivity;
import android.app.WallpaperInfo;
-import android.os.Bundle;
-import android.content.DialogInterface;
import android.content.Intent;
-import android.util.Log;
-import android.view.LayoutInflater;
+import android.os.Bundle;
import android.view.View;
-import android.view.ViewGroup;
-import android.widget.AdapterView;
-import android.widget.BaseAdapter;
+import android.widget.ListView;
-public class LiveWallpaperActivity extends Activity {
- private static final String LOG_TAG = "LiveWallpapersPicker";
+public class LiveWallpaperActivity extends ListActivity {
private static final int REQUEST_PREVIEW = 100;
+ private LiveWallpaperListAdapter mAdapter;
+
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.live_wallpaper_base);
- Fragment fragmentView = getFragmentManager().findFragmentById(R.id.live_wallpaper_fragment);
- if (fragmentView == null) {
- /* When the screen is XLarge, the fragment is not included in the layout, so show it
- * as a dialog
- */
- DialogFragment fragment = WallpaperDialog.newInstance();
- fragment.show(getFragmentManager(), "dialog");
- }
+ mAdapter = new LiveWallpaperListAdapter(this);
+ setListAdapter(mAdapter);
}
@Override
@@ -60,91 +46,16 @@ public class LiveWallpaperActivity extends Activity {
}
}
- public static class WallpaperDialog extends DialogFragment implements
- AdapterView.OnItemClickListener{
- private static final String EMBEDDED_KEY = "com.android.wallpaper.livepicker."
- + "LiveWallpaperActivity$WallpaperDialog.EMBEDDED_KEY";
- private LiveWallpaperListAdapter mAdapter;
- private boolean mEmbedded;
-
- public static WallpaperDialog newInstance() {
- WallpaperDialog dialog = new WallpaperDialog();
- dialog.setCancelable(true);
- return dialog;
- }
-
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- if (savedInstanceState != null && savedInstanceState.containsKey(EMBEDDED_KEY)) {
- mEmbedded = savedInstanceState.getBoolean(EMBEDDED_KEY);
- } else {
- mEmbedded = isInLayout();
- }
- }
-
- @Override
- public void onSaveInstanceState(Bundle outState) {
- outState.putBoolean(EMBEDDED_KEY, mEmbedded);
- }
-
- @Override
- public void onDismiss(DialogInterface dialog) {
- /* On orientation changes, the dialog is effectively "dismissed" so this is called
- * when the activity is no longer associated with this dying dialog fragment. We
- * should just safely ignore this case by checking if getActivity() returns null
- */
- Activity activity = getActivity();
- if (activity != null) {
- activity.finish();
- }
- }
-
- @Override
- public Dialog onCreateDialog(Bundle savedInstanceState) {
- final int contentInset = getResources().getDimensionPixelSize(
- R.dimen.dialog_content_inset);
- View view = generateView(getActivity().getLayoutInflater(), null);
-
- AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
- builder.setNegativeButton(R.string.wallpaper_cancel, null);
- builder.setTitle(R.string.live_wallpaper_picker_title);
- builder.setView(view, contentInset, contentInset, contentInset, contentInset);
- return builder.create();
- }
-
- @Override
- public View onCreateView(LayoutInflater inflater, ViewGroup container,
- Bundle savedInstanceState) {
- /* If this fragment is embedded in the layout of this activity, then we should
- * generate a view to display. Otherwise, a dialog will be created in
- * onCreateDialog()
- */
- if (mEmbedded) {
- return generateView(inflater, container);
- }
- return null;
- }
-
- @SuppressWarnings("unchecked")
- private View generateView(LayoutInflater inflater, ViewGroup container) {
- View layout = inflater.inflate(R.layout.live_wallpaper_list, container, false);
-
- mAdapter = new LiveWallpaperListAdapter(getActivity());
- AdapterView<BaseAdapter> adapterView =
- (AdapterView<BaseAdapter>) layout.findViewById(android.R.id.list);
- adapterView.setAdapter(mAdapter);
- adapterView.setOnItemClickListener(this);
- adapterView.setEmptyView(layout.findViewById(android.R.id.empty));
- return layout;
- }
-
- public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
- LiveWallpaperListAdapter.LiveWallpaperInfo wallpaperInfo =
- (LiveWallpaperListAdapter.LiveWallpaperInfo) mAdapter.getItem(position);
- final Intent intent = wallpaperInfo.intent;
- final WallpaperInfo info = wallpaperInfo.info;
- LiveWallpaperPreview.showPreview(getActivity(), REQUEST_PREVIEW, intent, info);
+ @Override
+ protected void onListItemClick(ListView l, View v, int position, long id) {
+ LiveWallpaperListAdapter.LiveWallpaperInfo wallpaperInfo =
+ (LiveWallpaperListAdapter.LiveWallpaperInfo) mAdapter.getItem(position);
+ final WallpaperInfo info = wallpaperInfo.info;
+ if (info != null) {
+ Intent preview = new Intent(this, LiveWallpaperPreview.class);
+ preview.putExtra(LiveWallpaperPreview.EXTRA_LIVE_WALLPAPER_INFO, info);
+ startActivityForResult(preview, REQUEST_PREVIEW);
}
}
+
}
diff --git a/src/com/android/wallpaper/livepicker/LiveWallpaperChange.java b/src/com/android/wallpaper/livepicker/LiveWallpaperChange.java
index 586bdb0..efaf563 100644
--- a/src/com/android/wallpaper/livepicker/LiveWallpaperChange.java
+++ b/src/com/android/wallpaper/livepicker/LiveWallpaperChange.java
@@ -16,32 +16,26 @@
package com.android.wallpaper.livepicker;
-import java.io.IOException;
-import java.util.List;
-
-import org.xmlpull.v1.XmlPullParserException;
-
-import android.app.Activity;
import android.app.WallpaperInfo;
import android.app.WallpaperManager;
-import android.os.Bundle;
-import android.os.Parcelable;
import android.content.ComponentName;
import android.content.Intent;
import android.content.pm.PackageManager;
-import android.content.pm.PackageManager.NameNotFoundException;
import android.content.pm.ResolveInfo;
-import android.content.pm.ServiceInfo;
+import android.os.Parcelable;
import android.service.wallpaper.WallpaperService;
import android.util.Log;
-public class LiveWallpaperChange extends Activity {
+import org.xmlpull.v1.XmlPullParserException;
+
+import java.io.IOException;
+import java.util.List;
+
+public class LiveWallpaperChange extends LiveWallpaperPreview {
private static final String TAG = "CHANGE_LIVE_WALLPAPER";
@Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
-
+ protected void init() {
Parcelable obj = getIntent().getParcelableExtra(
WallpaperManager.EXTRA_LIVE_WALLPAPER_COMPONENT);
if (obj == null || !(obj instanceof ComponentName)) {
@@ -63,21 +57,16 @@ public class LiveWallpaperChange extends Activity {
for (int i=0; i<list.size(); i++) {
ResolveInfo ri = list.get(i);
if (ri.serviceInfo.name.equals(comp.getClassName())) {
- WallpaperInfo info = null;
+ WallpaperInfo info;
try {
info = new WallpaperInfo(this, ri);
- } catch (XmlPullParserException e) {
- Log.w(TAG, "Bad wallpaper " + ri.serviceInfo, e);
- finish();
- return;
- } catch (IOException e) {
+ } catch (XmlPullParserException|IOException e) {
Log.w(TAG, "Bad wallpaper " + ri.serviceInfo, e);
finish();
return;
}
- Intent intent = new Intent(WallpaperService.SERVICE_INTERFACE);
- intent.setClassName(info.getPackageName(), info.getServiceName());
- LiveWallpaperPreview.showPreview(this, 0, intent, info);
+
+ initUI(info);
return;
}
}
@@ -86,13 +75,4 @@ public class LiveWallpaperChange extends Activity {
Log.w(TAG, "Not a live wallpaper: " + comp);
finish();
}
-
- @Override
- protected void onActivityResult(int requestCode, int resultCode, Intent data) {
- super.onActivityResult(requestCode, resultCode, data);
-
- // forward result code
- setResult(resultCode);
- finish();
- }
}
diff --git a/src/com/android/wallpaper/livepicker/LiveWallpaperListAdapter.java b/src/com/android/wallpaper/livepicker/LiveWallpaperListAdapter.java
index e526f9e..b245fb6 100644
--- a/src/com/android/wallpaper/livepicker/LiveWallpaperListAdapter.java
+++ b/src/com/android/wallpaper/livepicker/LiveWallpaperListAdapter.java
@@ -127,7 +127,6 @@ public class LiveWallpaperListAdapter extends BaseAdapter implements ListAdapter
public class LiveWallpaperInfo {
public Drawable thumbnail;
public WallpaperInfo info;
- public Intent intent;
}
private class ViewHolder {
@@ -185,8 +184,6 @@ public class LiveWallpaperListAdapter extends BaseAdapter implements ListAdapter
}
LiveWallpaperInfo wallpaper = new LiveWallpaperInfo();
- wallpaper.intent = new Intent(WallpaperService.SERVICE_INTERFACE);
- wallpaper.intent.setClassName(info.getPackageName(), info.getServiceName());
wallpaper.info = info;
Drawable thumb = info.loadThumbnail(packageManager);
diff --git a/src/com/android/wallpaper/livepicker/LiveWallpaperPreview.java b/src/com/android/wallpaper/livepicker/LiveWallpaperPreview.java
index 31fff0f..2f32e36 100644
--- a/src/com/android/wallpaper/livepicker/LiveWallpaperPreview.java
+++ b/src/com/android/wallpaper/livepicker/LiveWallpaperPreview.java
@@ -34,6 +34,7 @@ import android.os.RemoteException;
import android.os.IBinder;
import android.os.ParcelFileDescriptor;
import android.os.Bundle;
+import android.service.wallpaper.WallpaperService;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MotionEvent;
@@ -46,9 +47,7 @@ import android.util.Log;
import android.widget.TextView;
public class LiveWallpaperPreview extends Activity {
- static final String EXTRA_LIVE_WALLPAPER_INTENT = "android.live_wallpaper.intent";
- static final String EXTRA_LIVE_WALLPAPER_SETTINGS = "android.live_wallpaper.settings";
- static final String EXTRA_LIVE_WALLPAPER_PACKAGE = "android.live_wallpaper.package";
+ static final String EXTRA_LIVE_WALLPAPER_INFO = "android.live_wallpaper.info";
private static final String LOG_TAG = "LiveWallpaperPreview";
@@ -58,40 +57,38 @@ public class LiveWallpaperPreview extends Activity {
private String mSettings;
private String mPackageName;
private Intent mWallpaperIntent;
+
private View mView;
private Dialog mDialog;
- static void showPreview(Activity activity, int code, Intent intent, WallpaperInfo info) {
- if (info == null) {
- Log.w(LOG_TAG, "Failure showing preview", new Throwable());
- return;
- }
- Intent preview = new Intent(activity, LiveWallpaperPreview.class);
- preview.putExtra(EXTRA_LIVE_WALLPAPER_INTENT, intent);
- preview.putExtra(EXTRA_LIVE_WALLPAPER_SETTINGS, info.getSettingsActivity());
- preview.putExtra(EXTRA_LIVE_WALLPAPER_PACKAGE, info.getPackageName());
- activity.startActivityForResult(preview, code);
- }
-
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
+ init();
+ }
+ protected void init() {
Bundle extras = getIntent().getExtras();
- mWallpaperIntent = (Intent) extras.get(EXTRA_LIVE_WALLPAPER_INTENT);
- if (mWallpaperIntent == null) {
+ WallpaperInfo info = extras.getParcelable(EXTRA_LIVE_WALLPAPER_INFO);
+ if (info == null) {
setResult(RESULT_CANCELED);
finish();
}
+ initUI(info);
+ }
+
+ protected void initUI(WallpaperInfo info) {
+ mSettings = info.getSettingsActivity();
+ mPackageName = info.getPackageName();
+ mWallpaperIntent = new Intent(WallpaperService.SERVICE_INTERFACE)
+ .setClassName(info.getPackageName(), info.getServiceName());
+
final ActionBar actionBar = getActionBar();
actionBar.setCustomView(R.layout.live_wallpaper_preview);
mView = actionBar.getCustomView();
- mSettings = extras.getString(EXTRA_LIVE_WALLPAPER_SETTINGS);
- mPackageName = extras.getString(EXTRA_LIVE_WALLPAPER_PACKAGE);
mWallpaperManager = WallpaperManager.getInstance(this);
-
mWallpaperConnection = new WallpaperConnection(mWallpaperIntent);
}