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 }