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;
		}
		
	}

	
}