diff options
Diffstat (limited to 'src/com/android/launcher2/LiveFolder.java')
-rw-r--r-- | src/com/android/launcher2/LiveFolder.java | 167 |
1 files changed, 0 insertions, 167 deletions
diff --git a/src/com/android/launcher2/LiveFolder.java b/src/com/android/launcher2/LiveFolder.java deleted file mode 100644 index b6929538d..000000000 --- a/src/com/android/launcher2/LiveFolder.java +++ /dev/null @@ -1,167 +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.launcher2; - -import android.content.Context; -import android.content.Intent; -import android.util.AttributeSet; -import android.view.LayoutInflater; -import android.view.View; -import android.widget.AdapterView; -import android.widget.BaseAdapter; -import android.net.Uri; -import android.provider.LiveFolders; -import android.os.AsyncTask; -import android.database.Cursor; -import android.widget.GridView; - -import java.lang.ref.WeakReference; - -import com.android.launcher.R; - -public class LiveFolder extends Folder { - private AsyncTask<LiveFolderInfo,Void,Cursor> mLoadingTask; - protected GridView mContent; - - public LiveFolder(Context context, AttributeSet attrs) { - super(context, attrs); - } - - static LiveFolder fromXml(Context context, FolderInfo folderInfo) { - final int layout = isDisplayModeList(folderInfo) ? - R.layout.live_folder_list : R.layout.live_folder_grid; - return (LiveFolder) LayoutInflater.from(context).inflate(layout, null); - } - - @Override - protected void onFinishInflate() { - super.onFinishInflate(); - - mContent = (GridView) findViewById(R.id.folder_content); - mContent.setOnItemClickListener(this); - mContent.setOnItemLongClickListener(this); - } - - private static boolean isDisplayModeList(FolderInfo folderInfo) { - return ((LiveFolderInfo) folderInfo).displayMode == - LiveFolders.DISPLAY_MODE_LIST; - } - - @Override - public void onItemClick(AdapterView parent, View v, int position, long id) { - LiveFolderAdapter.ViewHolder holder = (LiveFolderAdapter.ViewHolder) v.getTag(); - - if (holder.useBaseIntent) { - final Intent baseIntent = ((LiveFolderInfo) mInfo).baseIntent; - if (baseIntent != null) { - final Intent intent = new Intent(baseIntent); - Uri uri = baseIntent.getData(); - uri = uri.buildUpon().appendPath(Long.toString(holder.id)).build(); - intent.setData(uri); - mLauncher.startActivitySafely(intent, "(position=" + position + ", id=" + id + ")"); - } - } else if (holder.intent != null) { - mLauncher.startActivitySafely(holder.intent, - "(position=" + position + ", id=" + id + ")"); - } - } - - /** - * Sets the adapter used to populate the content area. The adapter must only - * contains ShortcutInfo items. - * - * @param adapter The list of applications to display in the folder. - */ - void setContentAdapter(BaseAdapter adapter) { - mContent.setAdapter(adapter); - } - - @Override - void notifyDataSetChanged() { - ((BaseAdapter) mContent.getAdapter()).notifyDataSetChanged(); - } - - @Override - public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) { - return false; - } - - void bind(FolderInfo info) { - super.bind(info); - if (mLoadingTask != null && mLoadingTask.getStatus() == AsyncTask.Status.RUNNING) { - mLoadingTask.cancel(true); - } - mLoadingTask = new FolderLoadingTask(this).execute((LiveFolderInfo) info); - } - - @Override - void onOpen() { - super.onOpen(); - // When the folder opens, we need to refresh the GridView's selection by - // forcing a layout - mContent.requestLayout(); - requestFocus(); - } - - @Override - void onClose() { - super.onClose(); - if (mLoadingTask != null && mLoadingTask.getStatus() == AsyncTask.Status.RUNNING) { - mLoadingTask.cancel(true); - } - - // The adapter can be null if onClose() is called before FolderLoadingTask - // is done querying the provider - final LiveFolderAdapter adapter = (LiveFolderAdapter) mContent.getAdapter(); - if (adapter != null) { - adapter.cleanup(); - } - } - - static class FolderLoadingTask extends AsyncTask<LiveFolderInfo, Void, Cursor> { - private final WeakReference<LiveFolder> mFolder; - private LiveFolderInfo mInfo; - - FolderLoadingTask(LiveFolder folder) { - mFolder = new WeakReference<LiveFolder>(folder); - } - - protected Cursor doInBackground(LiveFolderInfo... params) { - final LiveFolder folder = mFolder.get(); - if (folder != null) { - mInfo = params[0]; - return LiveFolderAdapter.query(folder.mLauncher, mInfo); - } - return null; - } - - @Override - protected void onPostExecute(Cursor cursor) { - if (!isCancelled()) { - if (cursor != null) { - final LiveFolder folder = mFolder.get(); - if (folder != null) { - final Launcher launcher = folder.mLauncher; - folder.setContentAdapter(new LiveFolderAdapter(launcher, mInfo, cursor)); - } - } - } else if (cursor != null) { - cursor.close(); - } - } - } -} |