1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
|
/*
* Copyright (C) 2008 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.android.browser;
import android.content.Context;
import android.view.View;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.ExpandableListView;
import com.android.browser.platformsupport.Browser;
/**
* Layout representing a history item in the classic history viewer.
*/
/* package */ class HistoryItem extends BookmarkItem
implements OnCheckedChangeListener, View.OnClickListener {
private CompoundButton mStar; // Star for bookmarking
/**
* Create a new HistoryItem.
* @param context Context for this HistoryItem.
*/
/* package */ HistoryItem(Context context) {
this(context, true);
}
/* package */ HistoryItem(Context context, boolean showStar) {
super(context);
mStar = (CompoundButton) findViewById(R.id.star);
mStar.setOnCheckedChangeListener(this);
if (showStar) {
mStar.setVisibility(View.VISIBLE);
} else {
mStar.setVisibility(View.GONE);
}
mTileView.setOnClickListener(this);
}
/* package */ void copyTo(HistoryItem item) {
item.mTextView.setText(mTextView.getText());
item.mUrlText.setText(mUrlText.getText());
item.setIsBookmark(mStar.isChecked());
item.mTileView.replaceFavicon(mBitmap);
}
/**
* Whether or not this item represents a bookmarked site
*/
/* package */ boolean isBookmark() {
return mStar.isChecked();
}
/**
* Set whether or not this represents a bookmark, and make sure the star
* behaves appropriately.
*/
/* package */ void setIsBookmark(boolean isBookmark) {
mStar.setOnCheckedChangeListener(null);
mStar.setChecked(isBookmark);
mStar.setOnCheckedChangeListener(this);
}
@Override
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
if (isChecked) {
// Uncheck ourseves. When the bookmark is actually added,
// we will be notified
setIsBookmark(false);
Browser.saveBookmark(getContext(), getName(), mUrl);
} else {
Bookmarks.removeFromBookmarks(getContext(),
getContext().getContentResolver(), mUrl, getName());
}
}
@Override
public void onClick(View v) {
if (v == mTileView) {
ExpandableListView list = (ExpandableListView) getTag(R.id.combo_view_container);
int group = (int) getTag(R.id.group_position);
int pos = (int) getTag(R.id.child_position);
if (list != null) {
long packedPos = list.getPackedPositionForChild(group, pos);
int flatPos = list.getFlatListPosition(packedPos);
list.performItemClick(
list.getAdapter().getView(flatPos, null, null),
flatPos, list.getAdapter().getItemId(flatPos));
}
performClick();
}
}
}
|