HistoryItem.java revision b1402a5c3e1617867c58d32d1fe9782cf6de423f
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;
210c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Projectimport android.view.View;
220c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Projectimport android.widget.CompoundButton;
230c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project
240c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project/**
250c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project *  Layout representing a history item in the classic history viewer.
260c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project */
270c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project/* package */ class HistoryItem extends BookmarkItem {
280c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project
290c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project    private CompoundButton  mStar;      // Star for bookmarking
300c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project    private CompoundButton.OnCheckedChangeListener  mListener;
310c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project    /**
320c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project     *  Create a new HistoryItem.
330c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project     *  @param context  Context for this HistoryItem.
340c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project     */
350c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project    /* package */ HistoryItem(Context context) {
360c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project        super(context);
370c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project
380c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project        mStar = (CompoundButton) findViewById(R.id.star);
390c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project        mStar.setVisibility(View.VISIBLE);
400c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project        mListener = new CompoundButton.OnCheckedChangeListener() {
410c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project            public void onCheckedChanged(CompoundButton buttonView,
420c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project                    boolean isChecked) {
430c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project                if (isChecked) {
44052ce667ce77c4fb3208c0b0dacba7be79c072d9Leon Scroggins III                    // FIXME: For now, add at the root level.  Should we
45052ce667ce77c4fb3208c0b0dacba7be79c072d9Leon Scroggins III                    // open AddBookmark from here?
46b1402a5c3e1617867c58d32d1fe9782cf6de423fBjorn Bringert                    Bookmarks.addBookmark(getContext(), true, mUrl, getName(), null, true, 0);
470a1d838ccd16ac08300bb8ac89b61ee0c956a49bKristian Monsen                    LogTag.logBookmarkAdded(mUrl, "history");
480c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project                } else {
49b1402a5c3e1617867c58d32d1fe9782cf6de423fBjorn Bringert                    Bookmarks.removeFromBookmarks(getContext(),
50b1402a5c3e1617867c58d32d1fe9782cf6de423fBjorn Bringert                            getContext().getContentResolver(), mUrl, getName());
510c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project                }
520c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project            }
530c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project        };
540c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project    }
550c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project
56186e593776c396bde3d720addd6f6842fe880a7cLeon Scroggins    /* package */ void copyTo(HistoryItem item) {
570c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project        item.mTextView.setText(mTextView.getText());
580c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project        item.mUrlText.setText(mUrlText.getText());
590c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project        item.setIsBookmark(mStar.isChecked());
600c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project        item.mImageView.setImageDrawable(mImageView.getDrawable());
610c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project    }
620c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project
630c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project    /**
64186e593776c396bde3d720addd6f6842fe880a7cLeon Scroggins     * Whether or not this item represents a bookmarked site
65186e593776c396bde3d720addd6f6842fe880a7cLeon Scroggins     */
66186e593776c396bde3d720addd6f6842fe880a7cLeon Scroggins    /* package */ boolean isBookmark() {
67186e593776c396bde3d720addd6f6842fe880a7cLeon Scroggins        return mStar.isChecked();
68186e593776c396bde3d720addd6f6842fe880a7cLeon Scroggins    }
69186e593776c396bde3d720addd6f6842fe880a7cLeon Scroggins
70186e593776c396bde3d720addd6f6842fe880a7cLeon Scroggins    /**
710c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project     *  Set whether or not this represents a bookmark, and make sure the star
720c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project     *  behaves appropriately.
730c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project     */
74186e593776c396bde3d720addd6f6842fe880a7cLeon Scroggins    /* package */ void setIsBookmark(boolean isBookmark) {
750c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project        mStar.setOnCheckedChangeListener(null);
760c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project        mStar.setChecked(isBookmark);
770c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project        mStar.setOnCheckedChangeListener(mListener);
780c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project    }
790c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project}
80