public
class
FavoriteActivity
extends
Activity
implements
OnNavigationListener {
public
static
ListView list;
public
static
ArrayList<FavoriteFile> arSrc;
public
static
FavoriteFile data;
public
static
FavoriteDBHelper dbHelper;
public
static
ListAdapter adapter;
public
static
String newText =
""
;
private
ActionBar actionBar;
private
ArrayList<SpinnerNavItem> navSpinner;
private
TitleNavigationAdapter nadapter;
public
void
onCreate(
final
Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.favorite_main);
list = (ListView) findViewById( R.id.file_list );
dbHelper =
new
FavoriteDBHelper(
this
);
arSrc = FavoriteDB.selectAllFile(dbHelper);
arSrc=
new
ArrayList<FavoriteFile>();
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
ByteArrayOutputStream stream =
new
ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG,
100
, stream);
byte
[] bitMapData = stream.toByteArray();
adapter=
new
ListAdapter(
this
, R.layout.favorite_list_view_layout,arSrc, arSrc,
null
);
arSrc.add(
new
FavoriteFile(
0
,bitMapData,
"sdfsdf"
,
"sdfsdf"
));
list.setAdapter( adapter );
list.setOnItemClickListener(
new
OnItemClickListener() {
@Override
public
void
onItemClick(AdapterView<?> parent, View v,
int
position,
long
id){
WebViewActivity.webUrl=mData.favUrl;
Intent myIntent =
new
Intent(FavoriteActivity.
this
,WebViewActivity.
class
);
startActivity(myIntent);
}
});
SwipeDismissListViewTouchListener touchListener =
new
SwipeDismissListViewTouchListener(list,
new
SwipeDismissListViewTouchListener.DismissCallbacks() {
@Override
public
boolean
canDismiss(
int
position) {
return
true
;
}
@Override
public
void
onDismiss(ListView list,
int
[] reverseSortedPositions) {
for
(
int
position : reverseSortedPositions) {
FavoriteFile mData = adapter.arSrc.get(position);
FavoriteDB.deleteFile(mData.getId(),dbHelper);
adapter.arSrc.remove(position);
}
adapter.notifyDataSetChanged();
}
});
list.setOnTouchListener(touchListener);
list.setOnScrollListener(touchListener.makeScrollListener());
}
class
ListAdapter
extends
CursorAdapter
implements
Runnable {
Context maincon;
LayoutInflater Inflater;
ArrayList<FavoriteFile> arSrc =
new
ArrayList<FavoriteFile>();
ArrayList<FavoriteFile> OriginarSrc = arSrc;
private
Filter ListFilter;
int
layout;
public
ListAdapter(Context context,
int
layout,ArrayList<FavoriteFile> OriginarSrc, ArrayList<FavoriteFile> arSrc, Cursor cs) {
super
(context, cs, layout);
this
.maincon = context;
this
.Inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
this
.arSrc = arSrc;
this
.layout = layout;
}
public
int
getCount() {
return
arSrc.size();
}
public
String getItem(
int
position) {
return
arSrc.get(position).getFileName();
}
public
long
getItemId(
int
position) {
return
position;
}
public
int
getId(
int
position) {
return
OriginarSrc.get(position).getId();
}
public
View getView(
int
position, View convertView, ViewGroup parent) {
if
(convertView ==
null
) {
convertView = Inflater.inflate(layout, parent,
false
);
}
Runnable start =
new
ListAdapter(maincon, position, OriginarSrc, OriginarSrc, mCursor);
Thread T =
new
Thread(start);
T.start();
byte
[] outImage = arSrc.get(position).getIcon();
ByteArrayInputStream imageStream =
new
ByteArrayInputStream(outImage);
Bitmap theImage = BitmapFactory.decodeStream(imageStream);
ImageView img = (ImageView) convertView.findViewById(R.id.filelist_img);
img.setImageBitmap(theImage);
TextView textFilename = (TextView) convertView
.findViewById(R.id.filelist_filename);
textFilename.setText(arSrc.get(position).getFileName());
TextView textFilesize = (TextView) convertView
.findViewById(R.id.filelist_filesize);
textFilesize.setText(arSrc.get(position).getFavUrl() );
return
convertView;
}
public
Filter getFilter() {
if
(ListFilter ==
null
)
ListFilter =
new
ListFilter();
return
ListFilter;
}
private
class
ListFilter
extends
Filter {
@Override
protected
FilterResults performFiltering(CharSequence constraint) {
FilterResults results =
new
FilterResults();
if
(constraint ==
null
|| constraint.length() ==
0
) {
results.values = OriginarSrc;
results.count = OriginarSrc.size();
}
else
{
ArrayList<FavoriteFile> nListDataList =
new
ArrayList<FavoriteFile>();
for
(FavoriteFile p : arSrc) {
if
(p.getFileName().toUpperCase().indexOf( constraint.toString().toUpperCase() ) >=
0
)
nListDataList.add(p);
}
results.values = nListDataList;
results.count = nListDataList.size();
}
return
results;
}
@Override
protected
void
publishResults(CharSequence constraint,
FilterResults results) {
if
(results.count ==
0
){
notifyDataSetInvalidated();
arSrc = FavoriteDB.selectAllFile(FavoriteActivity.dbHelper);
FavoriteActivity.list.setAdapter( FavoriteActivity.adapter );
}
else
{
arSrc = (ArrayList<FavoriteFile>) results.values;
notifyDataSetChanged();
}
}
}
}