HistoryItem.java revision 4b59db8bc6b609307dfcb346283378c5ea993d7c
10c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project/* 20c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project * Copyright (C) 2008 The Android Open Source Project 30c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project * 40c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 50c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project * you may not use this file except in compliance with the License. 60c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project * You may obtain a copy of the License at 70c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project * 80c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 90c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project * 100c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project * Unless required by applicable law or agreed to in writing, software 110c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 120c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 130c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project * See the License for the specific language governing permissions and 140c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project * limitations under the License. 150c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project */ 160c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project 170c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project 180c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Projectpackage com.android.browser; 190c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project 200c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Projectimport android.content.Context; 214b59db8bc6b609307dfcb346283378c5ea993d7cJohn Reckimport android.provider.Browser; 220c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Projectimport android.view.View; 230c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Projectimport android.widget.CompoundButton; 240c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project 250c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project/** 260c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project * Layout representing a history item in the classic history viewer. 270c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project */ 280c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project/* package */ class HistoryItem extends BookmarkItem { 290c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project 300c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project private CompoundButton mStar; // Star for bookmarking 310c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project private CompoundButton.OnCheckedChangeListener mListener; 320c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project /** 330c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project * Create a new HistoryItem. 340c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project * @param context Context for this HistoryItem. 350c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project */ 360c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project /* package */ HistoryItem(Context context) { 370c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project super(context); 380c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project 390c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project mStar = (CompoundButton) findViewById(R.id.star); 400c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project mStar.setVisibility(View.VISIBLE); 410c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project mListener = new CompoundButton.OnCheckedChangeListener() { 420c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project public void onCheckedChanged(CompoundButton buttonView, 430c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project boolean isChecked) { 440c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project if (isChecked) { 454b59db8bc6b609307dfcb346283378c5ea993d7cJohn Reck // Uncheck ourseves. When the bookmark is actually added, 464b59db8bc6b609307dfcb346283378c5ea993d7cJohn Reck // we will be notified 474b59db8bc6b609307dfcb346283378c5ea993d7cJohn Reck setIsBookmark(false); 484b59db8bc6b609307dfcb346283378c5ea993d7cJohn Reck Browser.saveBookmark(getContext(), getName(), mUrl); 490c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project } else { 50b1402a5c3e1617867c58d32d1fe9782cf6de423fBjorn Bringert Bookmarks.removeFromBookmarks(getContext(), 51b1402a5c3e1617867c58d32d1fe9782cf6de423fBjorn Bringert getContext().getContentResolver(), mUrl, getName()); 520c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project } 530c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project } 540c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project }; 550c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project } 560c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project 57186e593776c396bde3d720addd6f6842fe880a7cLeon Scroggins /* package */ void copyTo(HistoryItem item) { 580c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project item.mTextView.setText(mTextView.getText()); 590c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project item.mUrlText.setText(mUrlText.getText()); 600c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project item.setIsBookmark(mStar.isChecked()); 610c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project item.mImageView.setImageDrawable(mImageView.getDrawable()); 620c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project } 630c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project 640c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project /** 65186e593776c396bde3d720addd6f6842fe880a7cLeon Scroggins * Whether or not this item represents a bookmarked site 66186e593776c396bde3d720addd6f6842fe880a7cLeon Scroggins */ 67186e593776c396bde3d720addd6f6842fe880a7cLeon Scroggins /* package */ boolean isBookmark() { 68186e593776c396bde3d720addd6f6842fe880a7cLeon Scroggins return mStar.isChecked(); 69186e593776c396bde3d720addd6f6842fe880a7cLeon Scroggins } 70186e593776c396bde3d720addd6f6842fe880a7cLeon Scroggins 71186e593776c396bde3d720addd6f6842fe880a7cLeon Scroggins /** 720c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project * Set whether or not this represents a bookmark, and make sure the star 730c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project * behaves appropriately. 740c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project */ 75186e593776c396bde3d720addd6f6842fe880a7cLeon Scroggins /* package */ void setIsBookmark(boolean isBookmark) { 760c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project mStar.setOnCheckedChangeListener(null); 770c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project mStar.setChecked(isBookmark); 780c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project mStar.setOnCheckedChangeListener(mListener); 790c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project } 800c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project} 81