summaryrefslogtreecommitdiffstats
path: root/src
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 /src
parent03412672d141629593561031e331739c28bc7476 (diff)
downloadandroid_packages_wallpapers_LivePicker-702996867bf80dd6652a46303cc06568e6f78369.zip
android_packages_wallpapers_LivePicker-702996867bf80dd6652a46303cc06568e6f78369.tar.gz
android_packages_wallpapers_LivePicker-702996867bf80dd6652a46303cc06568e6f78369.tar.bz2
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
Diffstat (limited to 'src')
-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
4 files changed, 47 insertions, 162 deletions
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);
}