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