Change notification icon (add blue dot) whenever a notification comes

This commit is contained in:
neslihanturan 2018-09-10 15:02:23 +03:00
parent b5e5165165
commit 8aca9aa6b2
6 changed files with 58 additions and 36 deletions

View file

@ -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 {

View file

@ -392,6 +392,7 @@ public class ContributionsFragment
*/
public void updateNotificationsNotification(List<Notification> unreadNotifications) {
Log.d("deneme","notification updates are called");
((ContributionsActivity)getActivity()).updateNotificationIcon(unreadNotifications.size());
}
/**

View file

@ -0,0 +1,6 @@
<vector android:height="24dp" android:tint="#FFFFFF"
android:viewportHeight="24.0" android:viewportWidth="24.0"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#FF000000" android:pathData="M12,22c1.1,0 2,-0.9 2,-2h-4c0,1.1 0.89,2 2,2zM18,16v-5c0,-3.07 -1.64,-5.64 -4.5,-6.32L13.5,4c0,-0.83 -0.67,-1.5 -1.5,-1.5s-1.5,0.67 -1.5,1.5v0.68C7.63,5.36 6,7.92 6,11v5l-2,2v1h16v-1l-2,-2z"/>
</vector>

View file

@ -0,0 +1,18 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M9.2129,5.1699C7.1556,6.2211 6,8.4207 6,11L6,16L4,18L4,19L20,19L20,18L18,16L18,11C18,10.5563 17.9559,10.1276 17.8887,9.709A6,6 0,0 1,12.8535 9.9141A6,6 0,0 1,9.2129 5.1699zM10,20C10,21.1 10.89,22 12,22C13.1,22 14,21.1 14,20L10,20z"
android:fillColor="#ffffff"/>
<path
android:pathData="M11.0547,1.9841A4.7712,4.7712 0,0 1,17.4041 0.8668,4.7712 4.7712,0 0,1 19.0701,7.0949 4.7712,4.7712 0,0 1,13.0108 9.2969,4.7712 4.7712,0 0,1 10.2895,3.4523"
android:strokeAlpha="1"
android:strokeWidth="3"
android:fillColor="#0c609c"
android:strokeColor="#00000000"
android:fillType="nonZero"
android:fillAlpha="1"
android:strokeLineCap="round"/>
</vector>

View file

@ -0,0 +1,8 @@
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item android:id="@+id/notifications"
android:title="@string/notifications_mention"
app:showAsAction="ifRoom|withText"
android:icon="@drawable/ic_notifications_white_24dp"
/>
</menu>

View file

@ -1,34 +0,0 @@
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item android:id="@+id/menu_from_camera"
android:title="@string/menu_from_camera"
app:showAsAction="ifRoom|withText"
android:icon="@drawable/ic_photo_camera_white_24dp"
/>
<item android:id="@+id/menu_from_gallery"
android:title="@string/menu_from_gallery"
app:showAsAction="ifRoom|withText"
android:icon="@drawable/ic_photo_white_24dp"
/>
<!--<item android:id="@+id/menu_nearby"-->
<!--android:title="@string/menu_nearby"-->
<!--app:showAsAction="never"-->
<!--/>-->
<!--<item android:id="@+id/menu_refresh"-->
<!--android:title="@string/menu_refresh"-->
<!--app:showAsAction="never"-->
<!--/>-->
<!--<item android:id="@+id/menu_about"-->
<!--android:title="@string/menu_about"-->
<!--app:showAsAction="never"-->
<!--/>-->
<!--<item android:id="@+id/menu_settings"-->
<!--android:title="@string/menu_settings"-->
<!--app:showAsAction="never"-->
<!--/>-->
<!--<item android:id="@+id/menu_feedback"-->
<!--android:title="@string/menu_feedback"-->
<!--app:showAsAction="never"-->
<!--/>-->
</menu>