OLD | NEW |
1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 package org.chromium.chrome.browser.download; | 5 package org.chromium.chrome.browser.download; |
6 | 6 |
7 import android.Manifest.permission; | 7 import android.Manifest.permission; |
8 import android.app.Activity; | 8 import android.app.Activity; |
9 import android.content.DialogInterface; | 9 import android.content.DialogInterface; |
10 import android.content.pm.PackageManager; | 10 import android.content.pm.PackageManager; |
11 import android.support.v7.app.AlertDialog; | 11 import android.support.v7.app.AlertDialog; |
12 import android.view.View; | 12 import android.view.View; |
13 import android.widget.TextView; | 13 import android.widget.TextView; |
14 | 14 |
15 import org.chromium.base.ApplicationStatus; | 15 import org.chromium.base.ApplicationStatus; |
| 16 import org.chromium.base.ContextUtils; |
16 import org.chromium.base.annotations.CalledByNative; | 17 import org.chromium.base.annotations.CalledByNative; |
17 import org.chromium.chrome.R; | 18 import org.chromium.chrome.R; |
18 import org.chromium.chrome.browser.ChromeActivity; | 19 import org.chromium.chrome.browser.ChromeActivity; |
| 20 import org.chromium.chrome.browser.tab.Tab; |
| 21 import org.chromium.chrome.browser.tabmodel.TabModelSelector; |
| 22 import org.chromium.content_public.browser.WebContents; |
19 import org.chromium.ui.base.WindowAndroid; | 23 import org.chromium.ui.base.WindowAndroid; |
20 import org.chromium.ui.base.WindowAndroid.PermissionCallback; | 24 import org.chromium.ui.base.WindowAndroid.PermissionCallback; |
21 | 25 |
22 /** | 26 /** |
23 * Java counterpart of android DownloadController. | 27 * Java counterpart of android DownloadController. |
24 * | 28 * |
25 * Its a singleton class instantiated by the C++ DownloadController. | 29 * Its a singleton class instantiated by the C++ DownloadController. |
26 */ | 30 */ |
27 public class DownloadController { | 31 public class DownloadController { |
28 private static final String LOGTAG = "DownloadController"; | 32 private static final String LOGTAG = "DownloadController"; |
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
179 }) | 183 }) |
180 .setOnCancelListener(new DialogInterface.OnCancelListene
r() { | 184 .setOnCancelListener(new DialogInterface.OnCancelListene
r() { |
181 @Override | 185 @Override |
182 public void onCancel(DialogInterface dialog) { | 186 public void onCancel(DialogInterface dialog) { |
183 nativeOnAcquirePermissionResult(callbackId, fals
e, null); | 187 nativeOnAcquirePermissionResult(callbackId, fals
e, null); |
184 } | 188 } |
185 }); | 189 }); |
186 builder.create().show(); | 190 builder.create().show(); |
187 } | 191 } |
188 | 192 |
| 193 /** |
| 194 * Called when a download is started. |
| 195 */ |
| 196 @CalledByNative |
| 197 private void onDownloadStarted() { |
| 198 DownloadUtils.showDownloadStartToast(ContextUtils.getApplicationContext(
)); |
| 199 } |
| 200 |
| 201 /** |
| 202 * Close a tab if it is blank. Returns true if it is or already closed. |
| 203 * @param Tab Tab to close. |
| 204 * @return true iff the tab was (already) closed. |
| 205 */ |
| 206 @CalledByNative |
| 207 static boolean closeTabIfBlank(Tab tab) { |
| 208 if (tab == null) return true; |
| 209 WebContents contents = tab.getWebContents(); |
| 210 boolean isInitialNavigation = contents == null |
| 211 || contents.getNavigationController().isInitialNavigation(); |
| 212 if (isInitialNavigation) { |
| 213 // Tab is created just for download, close it. |
| 214 TabModelSelector selector = tab.getTabModelSelector(); |
| 215 if (selector == null) return true; |
| 216 if (selector.getModel(tab.isIncognito()).getCount() == 1) return fal
se; |
| 217 boolean closed = selector.closeTab(tab); |
| 218 assert closed; |
| 219 return true; |
| 220 } |
| 221 return false; |
| 222 } |
| 223 |
189 // native methods | 224 // native methods |
190 private native void nativeInit(); | 225 private native void nativeInit(); |
191 private native void nativeOnAcquirePermissionResult( | 226 private native void nativeOnAcquirePermissionResult( |
192 long callbackId, boolean granted, String permissionToUpdate); | 227 long callbackId, boolean granted, String permissionToUpdate); |
193 } | 228 } |
OLD | NEW |