From 8aca9aa6b2e815f353d9b39edb16ba03ed801e27 Mon Sep 17 00:00:00 2001 From: neslihanturan Date: Mon, 10 Sep 2018 15:02:23 +0300 Subject: [PATCH] Change notification icon (add blue dot) whenever a notification comes --- .../contributions/ContributionsActivity.java | 27 +++++++++++++-- .../contributions/ContributionsFragment.java | 1 + .../drawable/ic_notifications_white_24dp.xml | 6 ++++ .../ic_notifications_white_with_marker.xml | 18 ++++++++++ ...ontribution_activity_notification_menu.xml | 8 +++++ .../res/menu/fragment_contributions_list.xml | 34 ------------------- 6 files changed, 58 insertions(+), 36 deletions(-) create mode 100644 app/src/main/res/drawable/ic_notifications_white_24dp.xml create mode 100644 app/src/main/res/drawable/ic_notifications_white_with_marker.xml create mode 100644 app/src/main/res/menu/contribution_activity_notification_menu.xml delete mode 100644 app/src/main/res/menu/fragment_contributions_list.xml diff --git a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsActivity.java b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsActivity.java index 5784aa237..05c52c870 100644 --- a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsActivity.java @@ -1,14 +1,16 @@ package fr.free.nrw.commons.contributions; import android.content.Intent; +import android.content.pm.PackageManager; import android.os.Bundle; import android.support.design.widget.TabLayout; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; +import android.support.v4.content.ContextCompat; import android.support.v4.view.ViewPager; import android.view.Menu; -import android.view.MenuItem; +import android.view.MenuInflater; import android.view.View; import javax.inject.Inject; @@ -44,6 +46,7 @@ public class ContributionsActivity extends AuthenticatedActivity implements Frag public ContributionsFragment contributionsFragment; private NearbyFragment nearbyFragment; public boolean isContributionsFragmentVisible = true; // False means nearby fragment is visible + private Menu menu; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -199,7 +202,27 @@ public class ContributionsActivity extends AuthenticatedActivity implements Frag @Override public boolean onCreateOptionsMenu(Menu menu) { - return super.onCreateOptionsMenu(menu); + MenuInflater inflater = getMenuInflater(); + inflater.inflate(R.menu.contribution_activity_notification_menu, menu); + if (!deviceHasCamera()) { + menu.findItem(R.id.notifications).setEnabled(false); + } + this.menu = menu; + return true; + } + + private boolean deviceHasCamera() { + PackageManager pm = getPackageManager(); + return pm.hasSystemFeature(PackageManager.FEATURE_CAMERA) || + pm.hasSystemFeature(PackageManager.FEATURE_CAMERA_FRONT); + } + + public void updateNotificationIcon(int unreadNotificationListSize) { + if (unreadNotificationListSize==0) { + menu.findItem(R.id.notifications).setIcon(ContextCompat.getDrawable(this, R.drawable.ic_notifications_white_24dp)); + } else { + menu.findItem(R.id.notifications).setIcon(ContextCompat.getDrawable(this, R.drawable.ic_notifications_white_with_marker)); + } } public class ContributionsActivityPagerAdapter extends FragmentPagerAdapter { diff --git a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsFragment.java b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsFragment.java index e66ee43ba..892238772 100644 --- a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsFragment.java @@ -392,6 +392,7 @@ public class ContributionsFragment */ public void updateNotificationsNotification(List unreadNotifications) { Log.d("deneme","notification updates are called"); + ((ContributionsActivity)getActivity()).updateNotificationIcon(unreadNotifications.size()); } /** diff --git a/app/src/main/res/drawable/ic_notifications_white_24dp.xml b/app/src/main/res/drawable/ic_notifications_white_24dp.xml new file mode 100644 index 000000000..120895c4f --- /dev/null +++ b/app/src/main/res/drawable/ic_notifications_white_24dp.xml @@ -0,0 +1,6 @@ + + + + diff --git a/app/src/main/res/drawable/ic_notifications_white_with_marker.xml b/app/src/main/res/drawable/ic_notifications_white_with_marker.xml new file mode 100644 index 000000000..8d64fd531 --- /dev/null +++ b/app/src/main/res/drawable/ic_notifications_white_with_marker.xml @@ -0,0 +1,18 @@ + + + + diff --git a/app/src/main/res/menu/contribution_activity_notification_menu.xml b/app/src/main/res/menu/contribution_activity_notification_menu.xml new file mode 100644 index 000000000..9a4c140dd --- /dev/null +++ b/app/src/main/res/menu/contribution_activity_notification_menu.xml @@ -0,0 +1,8 @@ + + + diff --git a/app/src/main/res/menu/fragment_contributions_list.xml b/app/src/main/res/menu/fragment_contributions_list.xml deleted file mode 100644 index b623447fd..000000000 --- a/app/src/main/res/menu/fragment_contributions_list.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - -