Yuvipanda has uploaded a new change for review. https://gerrit.wikimedia.org/r/91340
Change subject: Add refresh button only for Campaigns ...................................................................... Add refresh button only for Campaigns Temp. hack to let people see new images when they come through Change-Id: I986bc274ccebd53fef75dbaeffcdff891a4f77bf --- M commons/res/menu/fragment_contributions_list.xml M commons/res/values-qq/strings.xml M commons/res/values/strings.xml M commons/src/main/java/org/wikimedia/commons/contributions/ContributionsActivity.java M commons/src/main/java/org/wikimedia/commons/contributions/ContributionsListFragment.java M commons/src/main/java/org/wikimedia/commons/contributions/MediaListAdapter.java 6 files changed, 43 insertions(+), 5 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/apps/android/commons refs/changes/40/91340/1 diff --git a/commons/res/menu/fragment_contributions_list.xml b/commons/res/menu/fragment_contributions_list.xml index b9382fa..14cc732 100644 --- a/commons/res/menu/fragment_contributions_list.xml +++ b/commons/res/menu/fragment_contributions_list.xml @@ -26,5 +26,9 @@ android:showAsAction="never" android:icon="@android:drawable/ic_menu_send" /> + <item android:id="@+id/menu_refresh" + android:title="@string/menu_refresh" + android:showAsAction="never" + /> </menu> diff --git a/commons/res/values-qq/strings.xml b/commons/res/values-qq/strings.xml index cd783dc..437eb90 100644 --- a/commons/res/values-qq/strings.xml +++ b/commons/res/values-qq/strings.xml @@ -3,6 +3,7 @@ <string name="app_name">The name of the application. {{Identical|Wikimedia Commons}}</string> <string name="app_name_beta">Name of the beta version of the application</string> + <string name="menu_refresh">Label for menu item that refreshes current list of images.</string> <string name="menu_settings">Label for menu item to show settings. {{Identical|Settings}}</string> <string name="username">{{Identical|Username}}</string> diff --git a/commons/res/values/strings.xml b/commons/res/values/strings.xml index 664de85..aedac8d 100644 --- a/commons/res/values/strings.xml +++ b/commons/res/values/strings.xml @@ -141,4 +141,5 @@ <string name="detail_description_empty">No description</string> <string name="detail_license_empty">Unknown license</string> <string name="provider_campaigns">Campaigns</string> + <string name="menu_refresh">Refresh</string> </resources> diff --git a/commons/src/main/java/org/wikimedia/commons/contributions/ContributionsActivity.java b/commons/src/main/java/org/wikimedia/commons/contributions/ContributionsActivity.java index b4236ac..9152cac 100644 --- a/commons/src/main/java/org/wikimedia/commons/contributions/ContributionsActivity.java +++ b/commons/src/main/java/org/wikimedia/commons/contributions/ContributionsActivity.java @@ -29,7 +29,8 @@ AdapterView.OnItemClickListener, MediaDetailPagerFragment.MediaDetailProvider, ContributionsListFragment.CurrentCampaignProvider, - FragmentManager.OnBackStackChangedListener { + FragmentManager.OnBackStackChangedListener, + ContributionsListFragment.SourceRefresher { private Cursor allContributions; @@ -219,7 +220,11 @@ getSupportActionBar().setSubtitle(getResources().getQuantityString(R.plurals.contributions_subtitle, cursor.getCount(), cursor.getCount())); } else { - contributionsList.setAdapter(new MediaListAdapter(this, (ArrayList<Media>) result)); + if(contributionsList.getAdapter() == null) { + contributionsList.setAdapter(new MediaListAdapter(this, (ArrayList<Media>) result)); + } else { + ((MediaListAdapter)contributionsList.getAdapter()).updateMediaList((ArrayList<Media>) result); + } } } @@ -227,8 +232,7 @@ if(campaign == null) { ((CursorAdapter) contributionsList.getAdapter()).swapCursor(null); } else { - //((MediaListAdapter) contributionsList.getAdapter()). - // DO SOMETHING! + contributionsList.setAdapter(null); } } @@ -262,4 +266,8 @@ public Campaign getCurrentCampaign() { return campaign; } + + public void refreshSource() { + getSupportLoaderManager().restartLoader(0, null, this); + } } diff --git a/commons/src/main/java/org/wikimedia/commons/contributions/ContributionsListFragment.java b/commons/src/main/java/org/wikimedia/commons/contributions/ContributionsListFragment.java index fea1c7f..b8c8fcb 100644 --- a/commons/src/main/java/org/wikimedia/commons/contributions/ContributionsListFragment.java +++ b/commons/src/main/java/org/wikimedia/commons/contributions/ContributionsListFragment.java @@ -27,6 +27,10 @@ Campaign getCurrentCampaign(); } + public interface SourceRefresher { + void refreshSource(); + } + private GridView contributionsList; private TextView waitingMessage; private TextView emptyMessage; @@ -87,7 +91,9 @@ feedbackIntent.putExtra(Intent.EXTRA_SUBJECT, String.format(CommonsApplication.FEEDBACK_EMAIL_SUBJECT, CommonsApplication.APPLICATION_VERSION)); startActivity(feedbackIntent); return true; - + case R.id.menu_refresh: + ((SourceRefresher)getActivity()).refreshSource(); + return true; default: return super.onOptionsItemSelected(item); } @@ -102,6 +108,9 @@ if (!app.deviceHasCamera()) { menu.findItem(R.id.menu_from_camera).setEnabled(false); } + if(campaign == null) { + menu.findItem(R.id.menu_refresh).setVisible(false); + } } @Override diff --git a/commons/src/main/java/org/wikimedia/commons/contributions/MediaListAdapter.java b/commons/src/main/java/org/wikimedia/commons/contributions/MediaListAdapter.java index 33f8460..5321202 100644 --- a/commons/src/main/java/org/wikimedia/commons/contributions/MediaListAdapter.java +++ b/commons/src/main/java/org/wikimedia/commons/contributions/MediaListAdapter.java @@ -20,6 +20,21 @@ this.activity = activity; } + public void updateMediaList(ArrayList<Media> newMediaList) { + // FIXME: Hack for now, replace with something more efficient later on + for(Media newMedia: newMediaList) { + boolean isDuplicate = false; + for(Media oldMedia: mediaList ) { + if(newMedia.getFilename().equals(oldMedia.getFilename())) { + isDuplicate = true; + break; + } + } + if(!isDuplicate) { + mediaList.add(0, newMedia); + } + } + } public int getCount() { return mediaList.size(); } -- To view, visit https://gerrit.wikimedia.org/r/91340 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I986bc274ccebd53fef75dbaeffcdff891a4f77bf Gerrit-PatchSet: 1 Gerrit-Project: apps/android/commons Gerrit-Branch: master Gerrit-Owner: Yuvipanda <yuvipa...@gmail.com> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits