package cn.koolcloud.ipos.appstore.fragment.tab;
import java.util.ArrayList;
import java.util.List;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
import cn.koolcloud.ipos.appstore.R;
import cn.koolcloud.ipos.appstore.adapter.LocalSoftListAdapter;
import cn.koolcloud.ipos.appstore.entity.AppInfo;
import cn.koolcloud.ipos.appstore.fragment.base.BaseFragment;
import cn.koolcloud.ipos.appstore.utils.Env;
public class LocalSoftwareManagerFragment extends BaseFragment implements OnItemClickListener {
private final int LOCAL_SOFT_LOADED = 0;
private LayoutInflater inflater; //view inflater
private ListView localSoftListView; //the list view of local software
private static List<AppInfo> localSoftDataSource = new ArrayList<AppInfo>(); //local soft data source.
private static LocalSoftListAdapter mSoftListAdapter; //adapter for local soft list view
public static LocalSoftwareManagerFragment getInstance() {
LocalSoftwareManagerFragment localSoftFragment = new LocalSoftwareManagerFragment();
//save params
// Bundle args = new Bundle();
// args.putInt("index", index);
// localSoftFragment.setArguments(args);
return localSoftFragment;
}
@Override
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflate, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
this.inflater = inflate;
return inflate.inflate(R.layout.content_list, container, false);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onActivityCreated(savedInstanceState);
initViews();
}
@Override
public void onStart() {
// TODO Auto-generated method stub
super.onStart();
showLoading();
new LocalSoftLoading().start();
}
private void initViews() {
localSoftListView = (ListView) getActivity().findViewById(R.id.contentListView);
localSoftListView.setOnItemClickListener(this);
}
Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
super.handleMessage(msg);
switch (msg.what) {
case LOCAL_SOFT_LOADED:
dismissLoading();
mSoftListAdapter = new LocalSoftListAdapter(application, localSoftDataSource);
localSoftListView.setAdapter(mSoftListAdapter);
//rescan installed apps to cache
application.initApps();
mSoftListAdapter.notifyDataSetChanged();
break;
default:
break;
}
}
};
public static void notifyDataSetChanged(List<AppInfo> dataSource) {
if (localSoftDataSource != null) {
localSoftDataSource.clear();
localSoftDataSource.addAll(dataSource);
}
if (mSoftListAdapter != null) {
mSoftListAdapter.notifyDataSetChanged();
}
}
//thread for loading local apps
class LocalSoftLoading extends Thread {
@Override
public void run() {
localSoftDataSource = Env.getInstalledAppsToList(application, false);
Message msg = mHandler.obtainMessage();
msg.what = LOCAL_SOFT_LOADED;
mHandler.sendMessage(msg);
}
}
@Override
public void onItemClick(AdapterView<?> adapterViwe, View view, int position, long arg3) {
AppInfo appInfo = localSoftDataSource.get(position);
}
}