ComboViewActivity.java revision d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779
1d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck/* 2d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck * Copyright (C) 2011 The Android Open Source Project 3d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck * 4d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck * Licensed under the Apache License, Version 2.0 (the "License"); 5d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck * you may not use this file except in compliance with the License. 6d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck * You may obtain a copy of the License at 7d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck * 8d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck * http://www.apache.org/licenses/LICENSE-2.0 9d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck * 10d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck * Unless required by applicable law or agreed to in writing, software 11d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck * distributed under the License is distributed on an "AS IS" BASIS, 12d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck * See the License for the specific language governing permissions and 14d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck * limitations under the License. 15d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck */ 16d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reckpackage com.android.browser; 17d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck 18d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reckimport android.app.Activity; 19d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reckimport android.content.Intent; 20d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reckimport android.net.Uri; 21d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reckimport android.os.Bundle; 22d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reckimport android.view.Menu; 23d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reckimport android.view.MenuItem; 24d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck 25d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reckimport com.android.browser.CombinedBookmarkHistoryView.CombinedBookmarksCallbacks; 26d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reckimport com.android.browser.UI.ComboViews; 27d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck 28d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reckpublic class ComboViewActivity extends Activity implements CombinedBookmarksCallbacks { 29d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck 30d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck public static final String EXTRA_COMBO_ARGS = "combo_args"; 31d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck public static final String EXTRA_INITIAL_VIEW = "initial_view"; 32d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck 33d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck public static final String EXTRA_OPEN_SNAPSHOT = "snapshot_id"; 34d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck public static final String EXTRA_OPEN_ALL = "open_all"; 35d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck public static final String EXTRA_CURRENT_URL = "url"; 36d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck public static final String EXTRA_BOOKMARK_PAGE = "create_bookmark"; 37d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck 38d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck private CombinedBookmarkHistoryView mComboView; 39d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck 40d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck @Override 41d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck protected void onCreate(Bundle savedInstanceState) { 42d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck super.onCreate(savedInstanceState); 43d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck setResult(RESULT_CANCELED); 44d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck Bundle extras = getIntent().getExtras(); 45d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck Bundle args = extras.getBundle(EXTRA_COMBO_ARGS); 46d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck String svStr = extras.getString(EXTRA_INITIAL_VIEW, null); 47d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck ComboViews startingView = svStr != null 48d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck ? ComboViews.valueOf(svStr) 49d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck : ComboViews.Bookmarks; 50d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck mComboView = new CombinedBookmarkHistoryView(this, this, 51d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck startingView, args); 52d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck setContentView(mComboView); 53d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck } 54d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck 55d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck @Override 56d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck public void openUrl(String url) { 57d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); 58d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck setResult(RESULT_OK, i); 59d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck finish(); 60d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck } 61d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck 62d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck @Override 63d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck public void openInNewTab(String... urls) { 64d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck Intent i = new Intent(); 65d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck i.putExtra(EXTRA_OPEN_ALL, urls); 66d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck setResult(RESULT_OK, i); 67d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck finish(); 68d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck } 69d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck 70d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck @Override 71d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck public void close() { 72d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck finish(); 73d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck } 74d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck 75d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck @Override 76d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck public void openSnapshot(long id) { 77d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck Intent i = new Intent(); 78d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck i.putExtra(EXTRA_OPEN_SNAPSHOT, id); 79d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck setResult(RESULT_OK, i); 80d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck finish(); 81d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck } 82d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck 83d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck @Override 84d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck public void onBackPressed() { 85d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck if (!mComboView.onBackPressed()) { 86d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck super.onBackPressed(); 87d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck } 88d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck } 89d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck 90d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck @Override 91d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck public boolean onCreateOptionsMenu(Menu menu) { 92d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck getMenuInflater().inflate(R.menu.combined, menu); 93d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck return super.onCreateOptionsMenu(menu); 94d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck } 95d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck 96d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck @Override 97d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck public boolean onOptionsItemSelected(MenuItem item) { 98d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck if (item.getItemId() == android.R.id.home) { 99d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck finish(); 100d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck return true; 101d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck } else if (item.getItemId() == R.id.preferences_menu_id) { 102d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck String url = getIntent().getStringExtra(EXTRA_CURRENT_URL); 103d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck Intent intent = new Intent(this, BrowserPreferencesPage.class); 104d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck intent.putExtra(BrowserPreferencesPage.CURRENT_PAGE, url); 105d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck startActivityForResult(intent, Controller.PREFERENCES_PAGE); 106d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck return true; 107d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck } 108d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck return super.onOptionsItemSelected(item); 109d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck } 110d3e4d5b4ffdf374b836ec9d4d3e315040c8c3779John Reck} 111