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; 24177746d05e1ceefe8421a4fdab7407e1d17b46d6John Reckimport android.widget.CompoundButton.OnCheckedChangeListener; 250c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project 260c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project/** 270c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project * Layout representing a history item in the classic history viewer. 280c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project */ 29177746d05e1ceefe8421a4fdab7407e1d17b46d6John Reck/* package */ class HistoryItem extends BookmarkItem 30177746d05e1ceefe8421a4fdab7407e1d17b46d6John Reck implements OnCheckedChangeListener { 310c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project 320c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project private CompoundButton mStar; // Star for bookmarking 330c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project /** 340c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project * Create a new HistoryItem. 350c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project * @param context Context for this HistoryItem. 360c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project */ 370c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project /* package */ HistoryItem(Context context) { 38177746d05e1ceefe8421a4fdab7407e1d17b46d6John Reck this(context, true); 39177746d05e1ceefe8421a4fdab7407e1d17b46d6John Reck } 40177746d05e1ceefe8421a4fdab7407e1d17b46d6John Reck 41177746d05e1ceefe8421a4fdab7407e1d17b46d6John Reck /* package */ HistoryItem(Context context, boolean showStar) { 420c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project super(context); 430c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project 440c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project mStar = (CompoundButton) findViewById(R.id.star); 45177746d05e1ceefe8421a4fdab7407e1d17b46d6John Reck mStar.setOnCheckedChangeListener(this); 46177746d05e1ceefe8421a4fdab7407e1d17b46d6John Reck if (showStar) { 47177746d05e1ceefe8421a4fdab7407e1d17b46d6John Reck mStar.setVisibility(View.VISIBLE); 48177746d05e1ceefe8421a4fdab7407e1d17b46d6John Reck } else { 49177746d05e1ceefe8421a4fdab7407e1d17b46d6John Reck mStar.setVisibility(View.GONE); 50177746d05e1ceefe8421a4fdab7407e1d17b46d6John Reck } 510c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project } 520c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project 53186e593776c396bde3d720addd6f6842fe880a7cLeon Scroggins /* package */ void copyTo(HistoryItem item) { 540c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project item.mTextView.setText(mTextView.getText()); 550c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project item.mUrlText.setText(mUrlText.getText()); 560c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project item.setIsBookmark(mStar.isChecked()); 570c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project item.mImageView.setImageDrawable(mImageView.getDrawable()); 580c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project } 590c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project 600c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project /** 61186e593776c396bde3d720addd6f6842fe880a7cLeon Scroggins * Whether or not this item represents a bookmarked site 62186e593776c396bde3d720addd6f6842fe880a7cLeon Scroggins */ 63186e593776c396bde3d720addd6f6842fe880a7cLeon Scroggins /* package */ boolean isBookmark() { 64186e593776c396bde3d720addd6f6842fe880a7cLeon Scroggins return mStar.isChecked(); 65186e593776c396bde3d720addd6f6842fe880a7cLeon Scroggins } 66186e593776c396bde3d720addd6f6842fe880a7cLeon Scroggins 67186e593776c396bde3d720addd6f6842fe880a7cLeon Scroggins /** 680c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project * Set whether or not this represents a bookmark, and make sure the star 690c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project * behaves appropriately. 700c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project */ 71186e593776c396bde3d720addd6f6842fe880a7cLeon Scroggins /* package */ void setIsBookmark(boolean isBookmark) { 720c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project mStar.setOnCheckedChangeListener(null); 730c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project mStar.setChecked(isBookmark); 74177746d05e1ceefe8421a4fdab7407e1d17b46d6John Reck mStar.setOnCheckedChangeListener(this); 75177746d05e1ceefe8421a4fdab7407e1d17b46d6John Reck } 76177746d05e1ceefe8421a4fdab7407e1d17b46d6John Reck 77177746d05e1ceefe8421a4fdab7407e1d17b46d6John Reck @Override 78177746d05e1ceefe8421a4fdab7407e1d17b46d6John Reck public void onCheckedChanged(CompoundButton buttonView, 79177746d05e1ceefe8421a4fdab7407e1d17b46d6John Reck boolean isChecked) { 80177746d05e1ceefe8421a4fdab7407e1d17b46d6John Reck if (isChecked) { 81177746d05e1ceefe8421a4fdab7407e1d17b46d6John Reck // Uncheck ourseves. When the bookmark is actually added, 82177746d05e1ceefe8421a4fdab7407e1d17b46d6John Reck // we will be notified 83177746d05e1ceefe8421a4fdab7407e1d17b46d6John Reck setIsBookmark(false); 84177746d05e1ceefe8421a4fdab7407e1d17b46d6John Reck Browser.saveBookmark(getContext(), getName(), mUrl); 85177746d05e1ceefe8421a4fdab7407e1d17b46d6John Reck } else { 86177746d05e1ceefe8421a4fdab7407e1d17b46d6John Reck Bookmarks.removeFromBookmarks(getContext(), 87177746d05e1ceefe8421a4fdab7407e1d17b46d6John Reck getContext().getContentResolver(), mUrl, getName()); 88177746d05e1ceefe8421a4fdab7407e1d17b46d6John Reck } 890c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project } 900c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project} 91