package com.baidu.adfolder; import java.util.ArrayList; import java.util.List; import android.content.Context; import android.content.Intent; import android.content.pm.ApplicationInfo; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.AdapterView.OnItemLongClickListener; import android.widget.Button; import android.widget.GridView; import android.widget.LinearLayout; public class FloatWindow extends LinearLayout { public static int viewWidth; public static int viewHeight; private GridView appWall; private Context mContext; public FloatWindow(final Context context) { super(context); LayoutInflater.from(context).inflate(R.layout.float_folder, this); View view = findViewById(R.id.big_window_layout); viewWidth = view.getLayoutParams().width; viewHeight = view.getLayoutParams().height; Button close = (Button) findViewById(R.id.finishBtn); close.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // close float window,stop service. MyWindowManager.removeBigWindow(context); Intent intent = new Intent(getContext(), FloatWindowService.class); context.stopService(intent); } }); appWall = (GridView) findViewById(R.id.app_wall); List<AppInfo> apps = getAllInstalledSysApps(context); AppWallAdapter adapter = new AppWallAdapter(context, 0, apps, appWall); appWall.setAdapter(adapter); appWall.setOnItemClickListener(new ItemClickListener() ); appWall.setOnItemLongClickListener(new ItemLongClickListener()); } /** * @param context * @return All none system Appinfo * */ public static List<AppInfo> getAllInstalledSysApps(Context context) { List<AppInfo> appList = new ArrayList<AppInfo>(); PackageManager packageManager = context.getPackageManager(); List<PackageInfo> packlist = packageManager.getInstalledPackages(0); for (int i = 0; i < packlist.size(); i++) { ApplicationInfo appInfo = packlist.get(i).applicationInfo; if ((appInfo.flags & ApplicationInfo.FLAG_SYSTEM) <= 0) { AppInfo info = new AppInfo(); info.setIcon(appInfo.loadIcon(packageManager)); info.setName((String) appInfo.loadLabel(packageManager)); info.setPackgeName(appInfo.packageName); appList.add(info); } } return appList; } class ItemClickListener implements OnItemClickListener { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // TODO Auto-generated method stub } } class ItemLongClickListener implements OnItemLongClickListener{ @Override public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) { // TODO Auto-generated method stub return false; } } }