のねのBlog

パソコンの問題や、ソフトウェアの開発で起きた問題など書いていきます。よろしくお願いします^^。

Snapshot(Saved pages)を開く動作

    124     @Override
    125     public void openSnapshot(long id) {
    126         Intent i = new Intent();
    127         i.putExtra(EXTRA_OPEN_SNAPSHOT, id);
    128         setResult(RESULT_OK, i);
    129         finish();
    130     }

こちらで、コールバックを登録している。
この画面は、SAVED PAGESのタブを押すとonCreate()される。

    205     @Override
    206     public void onItemClick(AdapterView<?> parent, View view, int position,
    207             long id) {
    208         mCallback.openSnapshot(id);
    209     }


Controller.javaで、intentに、EXTRA_OPEN_SNAPSHOTがあるかチェックする。

   1176             case COMBO_VIEW:
   1177                 if (intent == null || resultCode != Activity.RESULT_OK) {
   1178                     break;
   1179                 }
   1180                 mUi.showWeb(false);
   1181                 if (Intent.ACTION_VIEW.equals(intent.getAction())) {
   1182                     Tab t = getCurrentTab();
   1183                     Uri uri = intent.getData();
   1184                     loadUrl(t, uri.toString());
   1185                 } else if (intent.hasExtra(ComboViewActivity.EXTRA_OPEN_ALL)) {
   1186                     String[] urls = intent.getStringArrayExtra(
   1187                             ComboViewActivity.EXTRA_OPEN_ALL);
   1188                     Tab parent = getCurrentTab();
   1189                     for (String url : urls) {
   1190                         parent = openTab(url, parent,
   1191                                 !mSettings.openInBackground(), true);
   1192                     }
   1193                 } else if (intent.hasExtra(ComboViewActivity.EXTRA_OPEN_SNAPSHOT)) { <==
   1194                     long id = intent.getLongExtra(
   1195                             ComboViewActivity.EXTRA_OPEN_SNAPSHOT, -1);
   1196                     if (id >= 0) {
   1197                         createNewSnapshotTab(id, true);
   1198                     }
   1199                 }
   1200                 break;
   2440     @Override
   2441     public SnapshotTab createNewSnapshotTab(long snapshotId, boolean setActive) {
   2442         SnapshotTab tab = null;
   2443         if (mTabControl.canCreateNewTab()) {
   2444             tab = mTabControl.createSnapshotTab(snapshotId);
   2445             addTab(tab);
   2446             if (setActive) {
   2447                 setActiveTab(tab);
   2448             }
   2449         } else {
   2450             mUi.showMaxTabsWarning();
   2451         }
   2452         return tab;
   2453     }
   2271     @Override
   2272     public void setActiveTab(Tab tab) {
   2273         // monkey protection against delayed start
   2274         if (tab != null) {
   2275             mTabControl.setCurrentTab(tab);
   2276             // the tab is guaranteed to have a webview after setCurrentTab
   2277             mUi.setActiveTab(tab);
   2278         }
   2279     }
    129     @Override
    130     public void setActiveTab(final Tab tab) {
    131         mTitleBar.cancelTitleBarAnimation(true);
    132         mTitleBar.setSkipTitleBarAnimations(true);
    133         super.setActiveTab(tab);
    134         BrowserWebView view = (BrowserWebView) tab.getWebView();
    135         // TabControl.setCurrentTab has been called before this,
    136         // so the tab is guaranteed to have a webview
    137         if (view == null) {
    138             Log.e(LOGTAG, "active tab with no webview detected");
    139             return;
    140         }
    141         // Request focus on the top window.
    142         if (mUseQuickControls) {
    143             mPieControl.forceToTop(mContentView);
    144             view.setTitleBar(null);
    145             mTitleBar.setShowProgressOnly(true);
    146         } else {
    147             view.setTitleBar(mTitleBar);
    148         }
    149         // update nav bar state
    150         mNavigationBar.onStateChanged(StateListener.STATE_NORMAL);
    151         updateLockIconToLatest(tab);
    152         mTitleBar.setSkipTitleBarAnimations(false);
    153     }