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