BookmarkItem.java revision 9907efcdb03d1e038b3923d6c58f907b1fda4c5e
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 Projectpackage com.android.browser; 180c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project 190c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Projectimport android.content.Context; 200c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Projectimport android.graphics.Bitmap; 210c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Projectimport android.view.LayoutInflater; 220c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Projectimport android.view.View; 230c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Projectimport android.widget.ImageView; 240c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Projectimport android.widget.LinearLayout; 250c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Projectimport android.widget.TextView; 260c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project 270c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project/** 280c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project * Custom layout for an item representing a bookmark in the browser. 290c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project */ 300c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Projectclass BookmarkItem extends LinearLayout { 310c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project 320c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project protected TextView mTextView; 330c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project protected TextView mUrlText; 340c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project protected ImageView mImageView; 350c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project protected String mUrl; 369907efcdb03d1e038b3923d6c58f907b1fda4c5eBen Murdoch protected String mTitle; 370c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project 380c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project /** 390c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project * Instantiate a bookmark item, including a default favicon. 400c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project * 410c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project * @param context The application context for the item. 420c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project */ 430c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project BookmarkItem(Context context) { 440c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project super(context); 450c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project 460c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project LayoutInflater factory = LayoutInflater.from(context); 470c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project factory.inflate(R.layout.history_item, this); 480c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project mTextView = (TextView) findViewById(R.id.title); 490c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project mUrlText = (TextView) findViewById(R.id.url); 500c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project mImageView = (ImageView) findViewById(R.id.favicon); 510c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project View star = findViewById(R.id.star); 520c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project star.setVisibility(View.GONE); 530c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project } 540c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project 550c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project /** 560c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project * Copy this BookmarkItem to item. 570c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project * @param item BookmarkItem to receive the info from this BookmarkItem. 580c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project */ 590c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project /* package */ void copyTo(BookmarkItem item) { 600c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project item.mTextView.setText(mTextView.getText()); 610c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project item.mUrlText.setText(mUrlText.getText()); 620c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project item.mImageView.setImageDrawable(mImageView.getDrawable()); 630c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project } 640c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project 650c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project /** 660c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project * Return the name assigned to this bookmark item. 670c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project */ 680c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project /* package */ String getName() { 699907efcdb03d1e038b3923d6c58f907b1fda4c5eBen Murdoch return mTitle; 700c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project } 710c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project 720c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project /** 730c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project * Return the TextView which holds the name of this bookmark item. 740c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project */ 750c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project /* package */ TextView getNameTextView() { 760c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project return mTextView; 770c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project } 780c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project 790c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project /* package */ String getUrl() { 800c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project return mUrl; 810c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project } 820c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project 830c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project /** 840c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project * Set the favicon for this item. 850c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project * 860c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project * @param b The new bitmap for this item. 870c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project * If it is null, will use the default. 880c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project */ 890c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project /* package */ void setFavicon(Bitmap b) { 900c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project if (b != null) { 910c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project mImageView.setImageBitmap(b); 920c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project } else { 930c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project mImageView.setImageResource(R.drawable.app_web_browser_sm); 940c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project } 950c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project } 960c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project 970c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project /** 980c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project * Set the new name for the bookmark item. 990c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project * 1000c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project * @param name The new name for the bookmark item. 1010c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project */ 1020c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project /* package */ void setName(String name) { 1039907efcdb03d1e038b3923d6c58f907b1fda4c5eBen Murdoch if (name == null) { 1049907efcdb03d1e038b3923d6c58f907b1fda4c5eBen Murdoch return; 1059907efcdb03d1e038b3923d6c58f907b1fda4c5eBen Murdoch } 1069907efcdb03d1e038b3923d6c58f907b1fda4c5eBen Murdoch 1079907efcdb03d1e038b3923d6c58f907b1fda4c5eBen Murdoch mTitle = name; 1089907efcdb03d1e038b3923d6c58f907b1fda4c5eBen Murdoch 1099907efcdb03d1e038b3923d6c58f907b1fda4c5eBen Murdoch if (name.length() > BrowserSettings.MAX_TEXTVIEW_LEN) { 1109907efcdb03d1e038b3923d6c58f907b1fda4c5eBen Murdoch name = name.substring(0, BrowserSettings.MAX_TEXTVIEW_LEN); 1119907efcdb03d1e038b3923d6c58f907b1fda4c5eBen Murdoch } 1129907efcdb03d1e038b3923d6c58f907b1fda4c5eBen Murdoch 1130c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project mTextView.setText(name); 1140c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project } 1150c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project 1160c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project /** 1170c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project * Set the new url for the bookmark item. 1180c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project * @param url The new url for the bookmark item. 1190c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project */ 1200c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project /* package */ void setUrl(String url) { 1219907efcdb03d1e038b3923d6c58f907b1fda4c5eBen Murdoch if (url == null) { 1229907efcdb03d1e038b3923d6c58f907b1fda4c5eBen Murdoch return; 1239907efcdb03d1e038b3923d6c58f907b1fda4c5eBen Murdoch } 1249907efcdb03d1e038b3923d6c58f907b1fda4c5eBen Murdoch 1250c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project mUrl = url; 1269907efcdb03d1e038b3923d6c58f907b1fda4c5eBen Murdoch 1279907efcdb03d1e038b3923d6c58f907b1fda4c5eBen Murdoch if (url.length() > BrowserSettings.MAX_TEXTVIEW_LEN) { 1289907efcdb03d1e038b3923d6c58f907b1fda4c5eBen Murdoch url = url.substring(0, BrowserSettings.MAX_TEXTVIEW_LEN); 1299907efcdb03d1e038b3923d6c58f907b1fda4c5eBen Murdoch } 1309907efcdb03d1e038b3923d6c58f907b1fda4c5eBen Murdoch 1319907efcdb03d1e038b3923d6c58f907b1fda4c5eBen Murdoch mUrlText.setText(url); 1320c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project } 1330c90888c75eed12f6e2e14a9044faf50bd4af8edThe Android Open Source Project} 134