/* * 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.provider.Browser; import android.view.View; import android.widget.CompoundButton; import android.widget.CompoundButton.OnCheckedChangeListener; /** * Layout representing a history item in the classic history viewer. */ /* package */ class HistoryItem extends BookmarkItem implements OnCheckedChangeListener { 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); } } /* package */ void copyTo(HistoryItem item) { item.mTextView.setText(mTextView.getText()); item.mUrlText.setText(mUrlText.getText()); item.setIsBookmark(mStar.isChecked()); item.mImageView.setImageDrawable(mImageView.getDrawable()); } /** * 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()); } } }