Remove live wallpaper picker from Launcher2.

Change-Id: I2c48f3624128276c3460939960168163d3c74c08
diff --git a/Android.mk b/Android.mk
index 1bcd412..528e840 100644
--- a/Android.mk
+++ b/Android.mk
@@ -14,21 +14,6 @@
 # limitations under the License.
 #
 
-######################################################
-#
-#    WARNING
-#
-#      /\
-#     /||\
-#    / || \
-#   /      \
-#  /   ||   \
-# /__________\
-#
-# Change the LOCAL_CERTIFICATE back to shared
-#
-######################################################
-
 LOCAL_PATH := $(call my-dir)
 include $(CLEAR_VARS)
 
@@ -37,8 +22,7 @@
 LOCAL_SRC_FILES := $(call all-subdir-java-files)
 
 LOCAL_PACKAGE_NAME := Launcher2
-LOCAL_CERTIFICATE := platform
-# LOCAL_CERTIFICATE := shared
+LOCAL_CERTIFICATE := shared
 
 LOCAL_OVERRIDES_PACKAGES := Launcher
 
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index dfbafde..d2dae88 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -17,11 +17,12 @@
 ** limitations under the License.
 */
 -->
-<!--TODO MAKE THE sharedUserId be uid.system again !! -->
 <manifest
     xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.android.launcher2">
-
+    package="com.android.launcher2"
+    android:sharedUserId="android.uid.shared"
+    android:sharedUserLabel="@string/uid_name">
+    
     <permission
         android:name="com.android.launcher.permission.INSTALL_SHORTCUT"
         android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
@@ -58,16 +59,10 @@
     <uses-permission android:name="android.permission.BIND_APPWIDGET" />
     <uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />
     <uses-permission android:name="com.android.launcher.permission.WRITE_SETTINGS" />
-
-    <!-- these two are only needed for the wallpaper picker -->
-    <uses-permission android:name="android.permission.SET_WALLPAPER_COMPONENT" />
-    <uses-permission android:name="android.permission.BIND_WALLPAPER" />
     
-    <!-- During development, run outside acore
-        android:process="android.process.acore"
-    -->
     <application
         android:name="LauncherApplication"
+        android:process="android.process.acore"
         android:label="@string/application_name"
         android:icon="@drawable/ic_launcher_home">
 
@@ -97,19 +92,6 @@
             </intent-filter>
         </activity>
 
-        <!-- TODO: MOVE TO SETTINGS (or actually maybe to its own package) -->
-        <!-- Standard picker for live wallpapers -->
-        <activity android:name="LiveWallpaperPickActivity"
-                android:icon="@drawable/ic_launcher_appwidget"
-                android:label="@string/live_wallpaper_picker_title"
-                android:theme="@android:style/Theme.Wallpaper">
-            <intent-filter>
-                <action android:name="android.service.wallpaper.LIVE_WALLPAPER_CHOOSER" />
-                <action android:name="android.intent.action.SET_WALLPAPER" />
-                <category android:name="android.intent.category.DEFAULT" />
-            </intent-filter>
-        </activity>
-
         <!-- Enable system-default search mode for any activity in Home -->
         <meta-data
             android:name="android.app.default_searchable"
diff --git a/res/drawable-hdpi/livewallpaper_placeholder.png b/res/drawable-hdpi/livewallpaper_placeholder.png
deleted file mode 100644
index 3743489..0000000
--- a/res/drawable-hdpi/livewallpaper_placeholder.png
+++ /dev/null
Binary files differ
diff --git a/res/layout/live_wallpaper_content.xml b/res/layout/live_wallpaper_content.xml
deleted file mode 100644
index 4dc6dbc..0000000
--- a/res/layout/live_wallpaper_content.xml
+++ /dev/null
@@ -1,72 +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.
--->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:orientation="vertical"
-    android:layout_width="fill_parent"
-    android:layout_height="fill_parent"
-    >
-
-	<FrameLayout
-	    android:layout_width="fill_parent"
-	    android:layout_height="0px"
-	    android:layout_weight="1"
-	    >
-	    <!--
-	    <ListView
-	        android:id="@android:id/list"
-	        android:layout_width="fill_parent"
-	        android:layout_height="fill_parent"
-	        />
-	    -->
-	    <TextView
-	        android:id="@android:id/empty"
-	        android:layout_width="fill_parent"
-	        android:layout_height="fill_parent"
-	        android:gravity="center"
-	        android:text="@string/live_wallpaper_empty"
-	        android:visibility="gone"
-	        android:textAppearance="?android:attr/textAppearanceMedium"
-	        />
-	</FrameLayout>
-	
-    <Gallery android:id="@+id/gallery"
-        android:gravity="fill"
-        android:layout_width="fill_parent"
-        android:layout_height="120dip" />
-        
-    <LinearLayout
-        android:orientation="horizontal"
-        android:layout_width="fill_parent"
-        android:layout_height="wrap_content">
-        
-        <Button android:id="@+id/configure"
-            android:layout_width="0px"
-            android:layout_height="wrap_content"
-            android:layout_weight="1"
-            android:text="@string/configure_wallpaper"
-            android:layout_gravity="center" />
-
-        <Button android:id="@+id/set"
-            android:layout_width="0px"
-            android:layout_height="wrap_content"
-            android:layout_weight="1"
-            android:text="@string/wallpaper_instructions"
-            android:layout_gravity="center" />
-
-    </LinearLayout>
-	
-</LinearLayout>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 89c9b1a..1288f64 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -34,11 +34,6 @@
     <string name="pick_wallpaper">Wallpaper gallery</string>
     <!-- Displayed when user selects a shortcut for an app that was uninstalled -->
     <string name="activity_not_found">Application is not installed on your phone.</string>
-    <!-- Title for the screen that lets the user choose a live wallpaper to use
-         for the system. -->
-    <string name="live_wallpaper_picker_title">Live wallpaper</string>    
-    <!-- List item for configuring the current wallpaper -->
-    <string name="configure_wallpaper">Configure...</string>
 
     <!-- Folders -->
     <skip />
@@ -132,9 +127,4 @@
     <!-- Text to show user in place of a gadget when we can't display it properly -->
     <string name="gadget_error_text">Problem loading widget</string>
 
-
-    <!-- STUFF FOR THE WALLPAPER PICKER. -->
-    <string name="live_wallpaper_empty">No live wallpapers.</string>
-    <string name="set_live_wallpaper">Set wallpaper</string>
-    
 </resources>
diff --git a/src/com/android/launcher2/LiveWallpaperPickActivity.java b/src/com/android/launcher2/LiveWallpaperPickActivity.java
deleted file mode 100644
index b8d8d54..0000000
--- a/src/com/android/launcher2/LiveWallpaperPickActivity.java
+++ /dev/null
@@ -1,400 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.launcher2;
-
-import org.xmlpull.v1.XmlPullParserException;
-
-import android.app.Activity;
-import android.app.ListActivity;
-import android.app.WallpaperInfo;
-import android.app.WallpaperManager;
-import android.content.ComponentName;
-import android.content.Context;
-import android.content.DialogInterface;
-import android.content.Intent;
-import android.content.ServiceConnection;
-import android.content.pm.ComponentInfo;
-import android.content.pm.PackageManager;
-import android.content.pm.ResolveInfo;
-import android.content.pm.ServiceInfo;
-import android.graphics.drawable.Drawable;
-import android.graphics.drawable.BitmapDrawable;
-import android.graphics.Bitmap;
-import android.graphics.Canvas;
-import android.graphics.Paint;
-import android.os.Binder;
-import android.os.Bundle;
-import android.os.IBinder;
-import android.os.ParcelFileDescriptor;
-import android.os.RemoteException;
-import android.os.SystemClock;
-import android.service.wallpaper.IWallpaperConnection;
-import android.service.wallpaper.IWallpaperEngine;
-import android.service.wallpaper.IWallpaperService;
-import android.service.wallpaper.WallpaperService;
-import android.service.wallpaper.WallpaperSettingsActivity;
-import android.util.DisplayMetrics;
-import android.util.Log;
-import android.view.Gravity;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.view.WindowManager;
-import android.widget.AdapterView;
-import android.widget.BaseAdapter;
-import android.widget.Button;
-import android.widget.Gallery;
-import android.widget.ImageView;
-import android.widget.ListView;
-
-import java.io.IOException;
-import java.text.Collator;
-import java.util.List;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-
-/**
- * Displays a list of live wallpapers, allowing the user to select one
- * and make it the system global wallpaper.
- */
-public class LiveWallpaperPickActivity 
-    extends Activity
-    implements AdapterView.OnItemSelectedListener,
-               View.OnClickListener
-{
-    private static final String TAG = "LiveWallpaperPickActivity";
-
-    private PackageManager mPackageManager;
-    private WallpaperManager mWallpaperManager;
-    
-    Intent mSelectedIntent;
-    WallpaperInfo mSelectedInfo;
-    WallpaperConnection mWallpaperConnection;
- 
-    private Gallery mGallery;
-    private Button mConfigureButton;
-    
-    private ArrayList<Intent> mWallpaperIntents;
-    private ArrayList<WallpaperInfo> mWallpaperInfos;
- 
-    private ArrayList<Drawable> mThumbnails;
-
-    class WallpaperConnection extends IWallpaperConnection.Stub
-            implements ServiceConnection {
-        final Intent mIntent;
-        IWallpaperService mService;
-        IWallpaperEngine mEngine;
-        boolean mConnected;
-
-        public WallpaperConnection(Intent intent) {
-            mIntent = intent;
-        }
-        
-        public boolean connect() {
-            synchronized (this) {
-                if (!bindService(mIntent, this, Context.BIND_AUTO_CREATE)) {
-                    return false;
-                }
-                
-                mConnected = true;
-                return true;
-            }
-        }
-        
-        public void disconnect() {
-            synchronized (this) {
-                mConnected = false;
-                if (mEngine != null) {
-                    try {
-                        mEngine.destroy();
-                    } catch (RemoteException e) {
-                    }
-                    mEngine = null;
-                }
-                unbindService(this);
-                mService = null;
-            }
-        }
-        
-        public void onServiceConnected(ComponentName name, IBinder service) {
-            if (mWallpaperConnection == this) {
-                mService = IWallpaperService.Stub.asInterface(service);
-                try {
-                    View button = findViewById(R.id.set);
-                    mService.attach(this, button.getWindowToken(),
-                            WindowManager.LayoutParams.TYPE_APPLICATION_MEDIA,
-                            true,
-                            button.getRootView().getWidth(),
-                            button.getRootView().getHeight());
-                } catch (RemoteException e) {
-                    Log.w(TAG, "Failed attaching wallpaper; clearing", e);
-                }
-            }
-        }
-
-        public void onServiceDisconnected(ComponentName name) {
-            mService = null;
-            mEngine = null;
-            if (mWallpaperConnection == this) {
-                Log.w(TAG, "Wallpaper service gone: " + name);
-            }
-        }
-        
-        public void attachEngine(IWallpaperEngine engine) {
-            synchronized (this) {
-                if (mConnected) {
-                    mEngine = engine;
-                    try {
-                        engine.setVisibility(true);
-                    } catch (RemoteException e) {
-                    }
-                } else {
-                    try {
-                        engine.destroy();
-                    } catch (RemoteException e) {
-                    }
-                }
-            }
-        }
-        
-        public ParcelFileDescriptor setWallpaper(String name) {
-            return null;
-        }
-    }
-
-    private class ImageAdapter extends BaseAdapter {
-        private LayoutInflater mLayoutInflater;
-
-        ImageAdapter(LiveWallpaperPickActivity context) {
-            mLayoutInflater = context.getLayoutInflater();
-        }
-
-        public int getCount() {
-            return mThumbnails.size();
-        }
-
-        public Object getItem(int position) {
-            return position;
-        }
-
-        public long getItemId(int position) {
-            return position;
-        }
-
-        public View getView(int position, View convertView, ViewGroup parent) {
-            ImageView image;
-           
-            if (convertView == null) {
-                image = (ImageView) mLayoutInflater.inflate(R.layout.wallpaper_item, parent, false);
-            } else {
-                image = (ImageView) convertView;
-            }
-          
-            image.setImageDrawable(mThumbnails.get(position));
-            image.getDrawable().setDither(true);
-
-            image.setAdjustViewBounds(true);
-            image.setScaleType(ImageView.ScaleType.FIT_CENTER);
-            image.setLayoutParams(new Gallery.LayoutParams(
-                ViewGroup.LayoutParams.WRAP_CONTENT,
-                ViewGroup.LayoutParams.FILL_PARENT));
-
-            return image;
-        }
-    }
-
-
-    private void findLiveWallpapers() {
-        mThumbnails = new ArrayList<Drawable>(24);
-        List<ResolveInfo> list = 
-                mPackageManager.queryIntentServices(getTargetIntent(),
-                        PackageManager.GET_META_DATA);
-        
-        mWallpaperIntents = new ArrayList<Intent>(list.size());
-        mWallpaperInfos = new ArrayList<WallpaperInfo>(list.size());
-        
-        int listSize = list.size();
-        DisplayMetrics metrics = new DisplayMetrics();
-        getWindowManager().getDefaultDisplay().getMetrics(metrics);
-
-        Drawable galleryIcon = this.getResources().getDrawable(
-            R.drawable.livewallpaper_placeholder);
-        int galleryIconW = galleryIcon.getIntrinsicWidth();
-        int galleryIconH = galleryIcon.getIntrinsicHeight();
-        
-        Paint pt = new Paint(Paint.ANTI_ALIAS_FLAG|Paint.DITHER_FLAG);
-        pt.setTextAlign(Paint.Align.CENTER);
-
-        for (int i = 0; i < listSize; i++) {
-            ResolveInfo resolveInfo = list.get(i);
-            ComponentInfo ci = resolveInfo.serviceInfo;
-            WallpaperInfo winfo;
-            try {
-                winfo = new WallpaperInfo(this, resolveInfo);
-            } catch (XmlPullParserException e) {
-                Log.w(TAG, "Skipping wallpaper " + ci, e);
-                continue;
-            } catch (IOException e) {
-                Log.w(TAG, "Skipping wallpaper " + ci, e);
-                continue;
-            }
-
-            String packageName = winfo.getPackageName();
-            String className = winfo.getServiceName();
-            Intent intent = new Intent(getTargetIntent());
-            intent.setClassName(packageName, className);
-            mWallpaperIntents.add(intent);
-            mWallpaperInfos.add(winfo);
-
-            Drawable thumb = winfo.loadThumbnail(mPackageManager);
-            if (null == thumb) {
-                final int thumbWidth = (int)(180 * metrics.density);
-                final int thumbHeight = (int)(160 * metrics.density);
-                Bitmap thumbBit = Bitmap.createBitmap(
-                    thumbWidth, thumbHeight, 
-                    Bitmap.Config.ARGB_8888);
-                Canvas can = new Canvas(thumbBit);
-                pt.setARGB(204,102,102,102);
-                can.drawPaint(pt);
-
-                galleryIcon.setBounds(0,0,thumbWidth,thumbHeight);
-                ((BitmapDrawable)galleryIcon).setGravity(Gravity.CENTER);
-                galleryIcon.draw(can);
-
-                pt.setARGB(255, 255, 255, 255);
-                pt.setTextSize(20 * metrics.density);
-                can.drawText(className.substring(className.lastIndexOf('.')+1),
-                    (int)(thumbWidth*0.5),
-                    (int)(thumbHeight-22*metrics.density),
-                    pt);
-                thumb = new BitmapDrawable(thumbBit);
-            }
-            mThumbnails.add(thumb);
-        }
-
-
-    }
-
-    
-    @Override
-    public void onCreate(Bundle icicle) {
-        super.onCreate(icicle);
-
-        mPackageManager = getPackageManager();
-        mWallpaperManager = WallpaperManager.getInstance(this);
-        
-        findLiveWallpapers();
-
-        setContentView(R.layout.live_wallpaper_content);
-        
-        mGallery = (Gallery) findViewById(R.id.gallery);
-        mGallery.setAdapter(new ImageAdapter(this));
-        mGallery.setOnItemSelectedListener(this);
-        mGallery.setCallbackDuringFling(false);
-
-        View button = findViewById(R.id.set);
-        button.setOnClickListener(this);
-        
-        mConfigureButton = (Button)findViewById(R.id.configure);
-        mConfigureButton.setEnabled(false);
-        mConfigureButton.setOnClickListener(this);
-      
-        // Set default return data
-        setResult(RESULT_CANCELED);
-    }
-    
-    @Override
-    public void onResume() {
-        super.onResume();
-        if (mWallpaperConnection != null && mWallpaperConnection.mEngine != null) {
-            try {
-                mWallpaperConnection.mEngine.setVisibility(true);
-            } catch (RemoteException e) {
-            }
-        }
-    }
-    
-    @Override
-    public void onPause() {
-        super.onPause();
-        if (mWallpaperConnection != null && mWallpaperConnection.mEngine != null) {
-            try {
-                mWallpaperConnection.mEngine.setVisibility(false);
-            } catch (RemoteException e) {
-            }
-        }
-    }
-    
-    @Override
-    public void onDetachedFromWindow() {
-        super.onDetachedFromWindow();
-        if (mWallpaperConnection != null) {
-            mWallpaperConnection.disconnect();
-        }
-        mWallpaperConnection = null;
-    }
-    
-    protected Intent getTargetIntent() {
-        return new Intent(WallpaperService.SERVICE_INTERFACE);
-    }
-    
-    public void onItemSelected(AdapterView parent, View v, int position, long id) {
-        mSelectedIntent = mWallpaperIntents.get(position);
-        mSelectedInfo = mWallpaperInfos.get(position);
-        mConfigureButton.setEnabled(mSelectedInfo != null
-                && mSelectedInfo.getSettingsActivity() != null);
-        findViewById(R.id.set).setEnabled(true);
-        
-        WallpaperConnection conn = new WallpaperConnection(mSelectedIntent);
-        if (conn.connect()) {
-            if (mWallpaperConnection != null) {
-                mWallpaperConnection.disconnect();
-            }
-            mWallpaperConnection = conn;
-        }
-    }
-    
-    public void onClick(View v) { // "Set" button
-        if (v.getId() == R.id.set) {
-            if (mSelectedIntent != null) {
-                try {
-                    mWallpaperManager.getIWallpaperManager().setWallpaperComponent(
-                            mSelectedIntent.getComponent());
-                    this.setResult(RESULT_OK);
-                } catch (RemoteException e) {
-                    // do nothing
-                } catch (RuntimeException e) {
-                    Log.w(TAG, "Failure setting wallpaper", e);
-                }
-                finish();
-            }
-        } else if (v.getId() == R.id.configure) {
-            if (mSelectedInfo != null && mSelectedInfo.getSettingsActivity() != null) {
-                Intent intent = new Intent();
-                intent.setComponent(new ComponentName(mSelectedInfo.getPackageName(),
-                        mSelectedInfo.getSettingsActivity()));
-                intent.putExtra(WallpaperSettingsActivity.EXTRA_PREVIEW_MODE, true);
-                startActivity(intent);
-            }
-        }
-    }
-
-    public void onNothingSelected(AdapterView parent) {
-    }
-
-}