Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4839)

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/physicalweb/ListUrlsActivity.java

Issue 1634213002: Append late URLs at the end of the nearby URL list (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: expand ternary operators, rename notifyOnUrlListChanged Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | chrome/android/java/src/org/chromium/chrome/browser/physicalweb/NearbyUrlsAdapter.java » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/android/java/src/org/chromium/chrome/browser/physicalweb/ListUrlsActivity.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/physicalweb/ListUrlsActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/physicalweb/ListUrlsActivity.java
index d60f5d2c2ef7f5ac9863039e469d5be7dddcdbeb..50cd9cabd62558bfbe39e0651daa64e2b5a6c2c1 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/physicalweb/ListUrlsActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/physicalweb/ListUrlsActivity.java
@@ -28,14 +28,13 @@ import org.chromium.chrome.R;
import org.chromium.chrome.browser.ChromeApplication;
import java.util.Collection;
-import java.util.HashSet;
/**
* This activity displays a list of nearby URLs as stored in the {@link UrlManager}.
* This activity does not and should not rely directly or indirectly on the native library.
*/
-public class ListUrlsActivity extends AppCompatActivity
- implements AdapterView.OnItemClickListener, SwipeRefreshWidget.OnRefreshListener {
+public class ListUrlsActivity extends AppCompatActivity implements AdapterView.OnItemClickListener,
+ SwipeRefreshWidget.OnRefreshListener, UrlManager.Listener {
public static final String REFERER_KEY = "referer";
public static final int NOTIFICATION_REFERER = 1;
public static final int OPTIN_REFERER = 2;
@@ -127,6 +126,12 @@ public class ListUrlsActivity extends AppCompatActivity
startRefresh(true, true);
}
+ @Override
+ protected void onStop() {
+ UrlManager.getInstance(this).removeObserver(this);
+ super.onStop();
+ }
+
private void resolve(Collection<String> urls) {
final long timestamp = SystemClock.elapsedRealtime();
mPwsClient.resolve(urls, new PwsClient.ResolveScanCallback() {
@@ -136,13 +141,11 @@ public class ListUrlsActivity extends AppCompatActivity
PhysicalWebUma.onForegroundPwsResolution(ListUrlsActivity.this, duration);
// filter out duplicate site URLs.
- Collection<String> siteUrls = new HashSet<>();
for (PwsResult pwsResult : pwsResults) {
String siteUrl = pwsResult.siteUrl;
String iconUrl = pwsResult.iconUrl;
- if (siteUrl != null && !siteUrls.contains(siteUrl)) {
- siteUrls.add(siteUrl);
+ if (siteUrl != null && !mAdapter.hasSiteUrl(siteUrl)) {
mAdapter.add(pwsResult);
if (iconUrl != null && !mAdapter.hasIcon(iconUrl)) {
@@ -170,6 +173,15 @@ public class ListUrlsActivity extends AppCompatActivity
mContext.startActivity(intent);
}
+ /**
+ * Called when new nearby URLs are found.
+ * @param urls The set of newly-found nearby URLs.
+ */
+ @Override
+ public void onDisplayableUrlsAdded(Collection<String> urls) {
+ resolve(urls);
+ }
+
private void startRefresh(boolean isUserInitiated, boolean isSwipeInitiated) {
if (mIsRefreshing) {
return;
@@ -181,7 +193,10 @@ public class ListUrlsActivity extends AppCompatActivity
// Clear the list adapter to trigger the empty list display.
mAdapter.clear();
- Collection<String> urls = UrlManager.getInstance(this).getUrls(true);
+ UrlManager urlManager = UrlManager.getInstance(this);
+ urlManager.addObserver(this);
+
+ Collection<String> urls = urlManager.getUrls(true);
if (urls.isEmpty()) {
finishRefresh();
} else {
@@ -208,6 +223,8 @@ public class ListUrlsActivity extends AppCompatActivity
}
private void finishRefresh() {
+ UrlManager.getInstance(this).removeObserver(this);
+
// Hide the busy indicator.
mSwipeRefreshWidget.setRefreshing(false);
« no previous file with comments | « no previous file | chrome/android/java/src/org/chromium/chrome/browser/physicalweb/NearbyUrlsAdapter.java » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698