diff options
Diffstat (limited to 'src/com/android/browser/WallpaperHandler.java')
-rw-r--r-- | src/com/android/browser/WallpaperHandler.java | 127 |
1 files changed, 0 insertions, 127 deletions
diff --git a/src/com/android/browser/WallpaperHandler.java b/src/com/android/browser/WallpaperHandler.java deleted file mode 100644 index 0c88a50..0000000 --- a/src/com/android/browser/WallpaperHandler.java +++ /dev/null @@ -1,127 +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.browser; - -import android.app.ProgressDialog; -import android.app.WallpaperManager; -import android.content.Context; -import android.content.DialogInterface; -import android.graphics.Bitmap; -import android.graphics.Canvas; -import android.graphics.drawable.Drawable; -import android.util.Log; -import android.view.MenuItem; -import android.view.MenuItem.OnMenuItemClickListener; - -import java.io.IOException; -import java.io.InputStream; -import java.net.MalformedURLException; -import java.net.URL; - -/** - * Handle setWallpaper requests - * - */ -public class WallpaperHandler extends Thread - implements OnMenuItemClickListener, DialogInterface.OnCancelListener { - - - private static final String LOGTAG = "WallpaperHandler"; - - private Context mContext; - private URL mUrl; - private ProgressDialog mWallpaperProgress; - private boolean mCanceled = false; - - public WallpaperHandler(Context context, String url) { - mContext = context; - try { - mUrl = new URL(url); - } catch (MalformedURLException e) { - mUrl = null; - } - } - - @Override - public void onCancel(DialogInterface dialog) { - mCanceled = true; - } - - @Override - public boolean onMenuItemClick(MenuItem item) { - if (mUrl != null) { - // The user may have tried to set a image with a large file size as - // their background so it may take a few moments to perform the - // operation. - // Display a progress spinner while it is working. - mWallpaperProgress = new ProgressDialog(mContext); - mWallpaperProgress.setIndeterminate(true); - mWallpaperProgress.setMessage(mContext.getResources() - .getText(R.string.progress_dialog_setting_wallpaper)); - mWallpaperProgress.setCancelable(true); - mWallpaperProgress.setOnCancelListener(this); - mWallpaperProgress.show(); - start(); - } - return true; - } - - @Override - public void run() { - Drawable oldWallpaper = - WallpaperManager.getInstance(mContext).getDrawable(); - try { - // TODO: This will cause the resource to be downloaded again, when - // we should in most cases be able to grab it from the cache. To fix - // this we should query WebCore to see if we can access a cached - // version and instead open an input stream on that. This pattern - // could also be used in the download manager where the same problem - // exists. - InputStream inputstream = mUrl.openStream(); - if (inputstream != null) { - WallpaperManager.getInstance(mContext).setStream(inputstream); - } - } catch (IOException e) { - Log.e(LOGTAG, "Unable to set new wallpaper"); - // Act as though the user canceled the operation so we try to - // restore the old wallpaper. - mCanceled = true; - } - - if (mCanceled) { - // Restore the old wallpaper if the user cancelled whilst we were - // setting - // the new wallpaper. - int width = oldWallpaper.getIntrinsicWidth(); - int height = oldWallpaper.getIntrinsicHeight(); - Bitmap bm = Bitmap.createBitmap(width, height, Bitmap.Config.RGB_565); - Canvas canvas = new Canvas(bm); - oldWallpaper.setBounds(0, 0, width, height); - oldWallpaper.draw(canvas); - try { - WallpaperManager.getInstance(mContext).setBitmap(bm); - } catch (IOException e) { - Log.e(LOGTAG, "Unable to restore old wallpaper."); - } - mCanceled = false; - } - - if (mWallpaperProgress.isShowing()) { - mWallpaperProgress.dismiss(); - } - } -} |