From 6241609bd6b0c2de50d0130815a5df72b10e587c Mon Sep 17 00:00:00 2001 From: Daniel Sandler Date: Thu, 11 Jul 2013 14:42:43 -0500 Subject: Remove built-in wallpaper picker. Note that we don't yet have a solution for the user's initial wallpaper. Bother! Bug: 9626042 Change-Id: I07ab09a3d10434e444dc27051034d387e692e469 --- .../android/launcher3/UserInitializeReceiver.java | 33 +- src/com/android/launcher3/WallpaperChooser.java | 47 --- .../launcher3/WallpaperChooserDialogFragment.java | 360 --------------------- 3 files changed, 1 insertion(+), 439 deletions(-) delete mode 100644 src/com/android/launcher3/WallpaperChooser.java delete mode 100644 src/com/android/launcher3/WallpaperChooserDialogFragment.java (limited to 'src') diff --git a/src/com/android/launcher3/UserInitializeReceiver.java b/src/com/android/launcher3/UserInitializeReceiver.java index 5cd518190..9ccefe492 100644 --- a/src/com/android/launcher3/UserInitializeReceiver.java +++ b/src/com/android/launcher3/UserInitializeReceiver.java @@ -34,37 +34,6 @@ import android.content.res.Resources; 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); - } - } + // TODO: initial wallpaper now that wallpapers are owned by another app } } diff --git a/src/com/android/launcher3/WallpaperChooser.java b/src/com/android/launcher3/WallpaperChooser.java deleted file mode 100644 index fe81ccbb5..000000000 --- a/src/com/android/launcher3/WallpaperChooser.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (C) 2008 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 com.android.launcher3.R; - -import android.app.Activity; -import android.app.DialogFragment; -import android.app.Fragment; -import android.os.Bundle; - -public class WallpaperChooser extends Activity { - @SuppressWarnings("unused") - private static final String TAG = "Launcher.WallpaperChooser"; - - @Override - public void onCreate(Bundle icicle) { - super.onCreate(icicle); - setContentView(R.layout.wallpaper_chooser_base); - - Fragment fragmentView = - getFragmentManager().findFragmentById(R.id.wallpaper_chooser_fragment); - // TODO: The following code is currently not exercised. Leaving it here in case it - // needs to be revived again. - if (fragmentView == null) { - /* When the screen is XLarge, the fragment is not included in the layout, so show it - * as a dialog - */ - DialogFragment fragment = WallpaperChooserDialogFragment.newInstance(); - fragment.show(getFragmentManager(), "dialog"); - } - } -} diff --git a/src/com/android/launcher3/WallpaperChooserDialogFragment.java b/src/com/android/launcher3/WallpaperChooserDialogFragment.java deleted file mode 100644 index 99de815f9..000000000 --- a/src/com/android/launcher3/WallpaperChooserDialogFragment.java +++ /dev/null @@ -1,360 +0,0 @@ -/* - * 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. - */ -package com.android.launcher3; - -import android.app.Activity; -import android.app.Dialog; -import android.app.DialogFragment; -import android.app.WallpaperManager; -import android.content.Context; -import android.content.DialogInterface; -import android.content.res.Resources; -import android.graphics.Bitmap; -import android.graphics.BitmapFactory; -import android.graphics.Canvas; -import android.graphics.ColorFilter; -import android.graphics.drawable.Drawable; -import android.os.AsyncTask; -import android.os.Bundle; -import android.util.Log; -import android.view.LayoutInflater; -import android.view.View; -import android.view.View.OnClickListener; -import android.view.ViewGroup; -import android.widget.AdapterView; -import android.widget.BaseAdapter; -import android.widget.Gallery; -import android.widget.ImageView; -import android.widget.ListAdapter; -import android.widget.SpinnerAdapter; - -import com.android.launcher3.R; - -import java.io.IOException; -import java.util.ArrayList; - -public class WallpaperChooserDialogFragment extends DialogFragment implements - AdapterView.OnItemSelectedListener, AdapterView.OnItemClickListener { - - private static final String TAG = "Launcher.WallpaperChooserDialogFragment"; - private static final String EMBEDDED_KEY = "com.android.launcher3." - + "WallpaperChooserDialogFragment.EMBEDDED_KEY"; - - private boolean mEmbedded; - private Bitmap mBitmap = null; - - private ArrayList mThumbs; - private ArrayList mImages; - private WallpaperLoader mLoader; - private WallpaperDrawable mWallpaperDrawable = new WallpaperDrawable(); - - public static WallpaperChooserDialogFragment newInstance() { - WallpaperChooserDialogFragment fragment = new WallpaperChooserDialogFragment(); - fragment.setCancelable(true); - return fragment; - } - - @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); - } - - private void cancelLoader() { - if (mLoader != null && mLoader.getStatus() != WallpaperLoader.Status.FINISHED) { - mLoader.cancel(true); - mLoader = null; - } - } - - @Override - public void onDetach() { - super.onDetach(); - - cancelLoader(); - } - - @Override - public void onDestroy() { - super.onDestroy(); - - cancelLoader(); - } - - @Override - public void onDismiss(DialogInterface dialog) { - super.onDismiss(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(); - } - } - - /* This will only be called when in XLarge mode, since this Fragment is invoked like - * a dialog in that mode - */ - @Override - public Dialog onCreateDialog(Bundle savedInstanceState) { - findWallpapers(); - - return null; - } - - @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) { - findWallpapers(); - - /* 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) { - View view = inflater.inflate(R.layout.wallpaper_chooser, container, false); - view.setBackground(mWallpaperDrawable); - - final Gallery gallery = (Gallery) view.findViewById(R.id.gallery); - gallery.setCallbackDuringFling(false); - gallery.setOnItemSelectedListener(this); - gallery.setAdapter(new ImageAdapter(getActivity())); - - View setButton = view.findViewById(R.id.set); - setButton.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - selectWallpaper(gallery.getSelectedItemPosition()); - } - }); - return view; - } - return null; - } - - private void selectWallpaper(int position) { - try { - WallpaperManager wpm = (WallpaperManager) getActivity().getSystemService( - Context.WALLPAPER_SERVICE); - wpm.setResource(mImages.get(position)); - Activity activity = getActivity(); - activity.setResult(Activity.RESULT_OK); - activity.finish(); - } catch (IOException e) { - Log.e(TAG, "Failed to set wallpaper: " + e); - } - } - - // Click handler for the Dialog's GridView - @Override - public void onItemClick(AdapterView parent, View view, int position, long id) { - selectWallpaper(position); - } - - // Selection handler for the embedded Gallery view - @Override - public void onItemSelected(AdapterView parent, View view, int position, long id) { - if (mLoader != null && mLoader.getStatus() != WallpaperLoader.Status.FINISHED) { - mLoader.cancel(); - } - mLoader = (WallpaperLoader) new WallpaperLoader().execute(position); - } - - @Override - public void onNothingSelected(AdapterView parent) { - } - - private void findWallpapers() { - mThumbs = new ArrayList(24); - mImages = new ArrayList(24); - - final Resources resources = 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); - - addWallpapers(resources, packageName, R.array.wallpapers); - addWallpapers(resources, packageName, R.array.extra_wallpapers); - } - - private void addWallpapers(Resources resources, String packageName, int list) { - final String[] extras = resources.getStringArray(list); - for (String extra : extras) { - int res = resources.getIdentifier(extra, "drawable", packageName); - if (res != 0) { - final int thumbRes = resources.getIdentifier(extra + "_small", - "drawable", packageName); - - if (thumbRes != 0) { - mThumbs.add(thumbRes); - mImages.add(res); - // Log.d(TAG, "add: [" + packageName + "]: " + extra + " (" + res + ")"); - } - } - } - } - - private class ImageAdapter extends BaseAdapter implements ListAdapter, SpinnerAdapter { - private LayoutInflater mLayoutInflater; - - ImageAdapter(Activity activity) { - mLayoutInflater = activity.getLayoutInflater(); - } - - public int getCount() { - return mThumbs.size(); - } - - public Object getItem(int position) { - return position; - } - - public long getItemId(int position) { - return position; - } - - public View getView(int position, View convertView, ViewGroup parent) { - View view; - - if (convertView == null) { - view = mLayoutInflater.inflate(R.layout.wallpaper_item, parent, false); - } else { - view = convertView; - } - - ImageView image = (ImageView) view.findViewById(R.id.wallpaper_image); - - int thumbRes = mThumbs.get(position); - image.setImageResource(thumbRes); - Drawable thumbDrawable = image.getDrawable(); - if (thumbDrawable != null) { - thumbDrawable.setDither(true); - } else { - Log.e(TAG, "Error decoding thumbnail resId=" + thumbRes + " for wallpaper #" - + position); - } - - return view; - } - } - - class WallpaperLoader extends AsyncTask { - BitmapFactory.Options mOptions; - - WallpaperLoader() { - mOptions = new BitmapFactory.Options(); - mOptions.inDither = false; - mOptions.inPreferredConfig = Bitmap.Config.ARGB_8888; - } - - @Override - protected Bitmap doInBackground(Integer... params) { - if (isCancelled()) return null; - try { - return BitmapFactory.decodeResource(getResources(), - mImages.get(params[0]), mOptions); - } catch (OutOfMemoryError e) { - return null; - } - } - - @Override - protected void onPostExecute(Bitmap b) { - if (b == null) return; - - if (!isCancelled() && !mOptions.mCancel) { - // Help the GC - if (mBitmap != null) { - mBitmap.recycle(); - } - - View v = getView(); - if (v != null) { - mBitmap = b; - mWallpaperDrawable.setBitmap(b); - v.postInvalidate(); - } else { - mBitmap = null; - mWallpaperDrawable.setBitmap(null); - } - mLoader = null; - } else { - b.recycle(); - } - } - - void cancel() { - mOptions.requestCancelDecode(); - super.cancel(true); - } - } - - /** - * Custom drawable that centers the bitmap fed to it. - */ - static class WallpaperDrawable extends Drawable { - - Bitmap mBitmap; - int mIntrinsicWidth; - int mIntrinsicHeight; - - /* package */void setBitmap(Bitmap bitmap) { - mBitmap = bitmap; - if (mBitmap == null) - return; - mIntrinsicWidth = mBitmap.getWidth(); - mIntrinsicHeight = mBitmap.getHeight(); - } - - @Override - public void draw(Canvas canvas) { - if (mBitmap == null) return; - int width = canvas.getWidth(); - int height = canvas.getHeight(); - int x = (width - mIntrinsicWidth) / 2; - int y = (height - mIntrinsicHeight) / 2; - canvas.drawBitmap(mBitmap, x, y, null); - } - - @Override - public int getOpacity() { - return android.graphics.PixelFormat.OPAQUE; - } - - @Override - public void setAlpha(int alpha) { - // Ignore - } - - @Override - public void setColorFilter(ColorFilter cf) { - // Ignore - } - } -} -- cgit v1.2.3