Bug 1251362 - Part 13 - Only enable swipe to refresh within the Synced devices smart folder. r=liuche
Recently closed tabs aren't synced, therefore being able to swipe to refresh within the Recent tabs folder isn't necessary. To avoid triggering a refresh by accident, we restrict swipe to refresh to the Synced devices folder itself.
MozReview-Commit-ID: YwekSwQr2q
--- a/mobile/android/base/java/org/mozilla/gecko/home/ClientsAdapter.java
+++ b/mobile/android/base/java/org/mozilla/gecko/home/ClientsAdapter.java
@@ -140,16 +140,20 @@ public class ClientsAdapter extends Recy
}
}
@Override
public int getItemViewType(int position) {
return CombinedHistoryItem.ItemType.itemTypeToViewType(getItemTypeForPosition(position));
}
+ public int getClientsCount() {
+ return hiddenClients.size() + visibleClients.size();
+ }
+
@UiThread
public void setClients(List<RemoteClient> clients) {
adapterList.clear();
adapterList.add(null);
hiddenClients.clear();
visibleClients.clear();
--- a/mobile/android/base/java/org/mozilla/gecko/home/CombinedHistoryPanel.java
+++ b/mobile/android/base/java/org/mozilla/gecko/home/CombinedHistoryPanel.java
@@ -180,16 +180,17 @@ public class CombinedHistoryPanel extend
}
});
registerForContextMenu(mRecyclerView);
}
private void setUpRefreshLayout() {
mRefreshLayout.setColorSchemeResources(R.color.fennec_ui_orange, R.color.action_orange);
mRefreshLayout.setOnRefreshListener(new RemoteTabsRefreshListener());
+ mRefreshLayout.setEnabled(false);
}
private void setUpEmptyViews() {
// Set up history empty view.
final ImageView historyIcon = (ImageView) mHistoryEmptyView.findViewById(R.id.home_empty_image);
historyIcon.setVisibility(View.GONE);
final TextView historyText = (TextView) mHistoryEmptyView.findViewById(R.id.home_empty_text);
@@ -299,17 +300,16 @@ public class CombinedHistoryPanel extend
case LOADER_ID_HISTORY:
mHistoryAdapter.setHistory(c);
break;
case LOADER_ID_REMOTE:
final List<RemoteClient> clients = mDB.getTabsAccessor().getClientsFromCursor(c);
mHistoryAdapter.getDeviceUpdateHandler().onDeviceCountUpdated(clients.size());
mClientsAdapter.setClients(clients);
- mRefreshLayout.setEnabled(clients.size() > 0);
break;
}
updateEmptyView();
updateButtonFromLevel();
}
@Override
@@ -342,19 +342,21 @@ public class CombinedHistoryPanel extend
if (level == mPanelLevel) {
return false;
}
mPanelLevel = level;
switch (level) {
case PARENT:
mRecyclerView.swapAdapter(mHistoryAdapter, true);
+ mRefreshLayout.setEnabled(false);
break;
case CHILD_SYNC:
mRecyclerView.swapAdapter(mClientsAdapter, true);
+ mRefreshLayout.setEnabled(mClientsAdapter.getClientsCount() > 0);
break;
case CHILD_RECENT_TABS:
mRecyclerView.swapAdapter(mRecentTabsAdapter, true);
break;
}
updateEmptyView();
updateButtonFromLevel();