private
class
IAAdapter
extends
BaseAdapter {
private
Context mContext =
null
;
private
List<ApplicationInfo> mAppList =
null
;
private
ArrayList<AppInfo> mListData =
new
ArrayList<AppInfo>();
OnClickListener appDelete;
public
IAAdapter(Context mContext) {
super
();
this
.mContext = mContext;
}
public
View getView(
int
position, View convertView, ViewGroup parent) {
ViewHolder holder;
if
(convertView ==
null
) {
holder =
new
ViewHolder();
LayoutInflater inflater = (LayoutInflater) mContext
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.list_item_layout,
null
);
holder.mIcon = (ImageView) convertView
.findViewById(R.id.app_icon);
holder.mName = (TextView) convertView
.findViewById(R.id.app_name);
holder.mPacakge = (TextView) convertView
.findViewById(R.id.app_package);
btn = (Button)convertView.findViewById(R.id.button1);
btn.setOnClickListener(appDelete);
appDelete =
new
OnClickListener() {
@Override
public
void
onClick(View v) {
Uri packageURI = Uri.fromParts(
"package"
, (String) v.getTag() ,
null
);
Intent uninstallIntent =
new
Intent(Intent.ACTION_DELETE, packageURI);
uninstallIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(uninstallIntent);
finish();
}
};
convertView.setTag(holder);
}
else
{
holder = (ViewHolder) convertView.getTag();
}
AppInfo data = mListData.get(position);
if
(data.mIcon !=
null
) {
holder.mIcon.setImageDrawable(data.mIcon);
}
holder.mName.setText(data.mAppNaem);
holder.mPacakge.setText(data.mAppPackge);
return
convertView;
}
public
void
rebuild() {
if
(mAppList ==
null
) {
Log.d(TAG,
"Is Empty Application List"
);
pm = com.example.applist.AppList.
this
.getPackageManager();
mAppList = pm
.getInstalledApplications(PackageManager.GET_UNINSTALLED_PACKAGES
| PackageManager.GET_DISABLED_COMPONENTS);
}
AppFilter filter;
switch
(MENU_MODE) {
case
MENU_DOWNLOAD:
filter = AppInfo.THIRD_PARTY_FILTER;
break
;
default
:
filter =
null
;
break
;
}
if
(filter !=
null
) {
filter.init();
}
mListData.clear();
AppInfo addInfo =
null
;
ApplicationInfo info =
null
;
for
(ApplicationInfo app : mAppList) {
info = app;
if
(filter ==
null
|| filter.filterApp(info)) {
addInfo =
new
AppInfo();
addInfo.mIcon = app.loadIcon(pm);
addInfo.mAppNaem = app.loadLabel(pm).toString();
addInfo.mAppPackge = app.packageName;
btn.setTag(app.packageName);
mListData.add(addInfo);
}
}
Collections.sort(mListData, AppInfo.ALPHA_COMPARATOR);
}
}
private
class
AppTask
extends
AsyncTask<Void, Void, Void> {
};