updates counters

This commit is contained in:
tom79 2017-09-13 08:47:59 +02:00
parent 6ffce804e9
commit c1fd4b1d59
3 changed files with 21 additions and 23 deletions

View File

@ -133,8 +133,8 @@ public class MainActivity extends AppCompatActivity
private DisplayNotificationsFragment notificationsFragment;
private BroadcastReceiver receive_data;
private boolean display_local, display_global;
private int countNewStatus = 0;
private int countNewNotifications = 0;
public static int countNewStatus = 0;
public static int countNewNotifications = 0;
public MainActivity() {
}

View File

@ -29,6 +29,8 @@ import android.widget.RelativeLayout;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.List;
import fr.gouv.etalab.mastodon.activities.MainActivity;
import fr.gouv.etalab.mastodon.client.APIResponse;
import fr.gouv.etalab.mastodon.client.Entities.Account;
import fr.gouv.etalab.mastodon.drawers.NotificationsListAdapter;
@ -60,6 +62,8 @@ public class DisplayNotificationsFragment extends Fragment implements OnRetrieve
private SwipeRefreshLayout swipeRefreshLayout;
private boolean swiped;
private ListView lv_notifications;
private String userId;
private String lastReadNotifications;
public DisplayNotificationsFragment(){
}
@ -85,6 +89,8 @@ public class DisplayNotificationsFragment extends Fragment implements OnRetrieve
nextElementLoader.setVisibility(View.GONE);
boolean isOnWifi = Helper.isOnWIFI(context);
int behaviorWithAttachments = sharedpreferences.getInt(Helper.SET_ATTACHMENT_ACTION, Helper.ATTACHMENT_ALWAYS);
userId = sharedpreferences.getString(Helper.PREF_KEY_ID, null);
lastReadNotifications = sharedpreferences.getString(Helper.LAST_NOTIFICATION_MAX_ID + userId, null);
notificationsListAdapter = new NotificationsListAdapter(context,isOnWifi, behaviorWithAttachments,this.notifications);
lv_notifications.setAdapter(notificationsListAdapter);
lv_notifications.setOnScrollListener(new AbsListView.OnScrollListener() {
@ -186,17 +192,13 @@ public class DisplayNotificationsFragment extends Fragment implements OnRetrieve
lv_notifications.setAdapter(notificationsListAdapter);
swiped = false;
}
ArrayList<String> added = new ArrayList<>();
for(Notification notification : this.notifications){
added.add(notification.getId());
}
if( notifications != null && notifications.size() > 0) {
for(Notification tmpNotification: notifications){
if( !added.contains(tmpNotification.getId())) {
this.notifications.add(tmpNotification);
added.add(tmpNotification.getId());
}
if( Long.parseLong(tmpNotification.getId()) > Long.parseLong(lastReadNotifications))
MainActivity.countNewNotifications++;
this.notifications.add(tmpNotification);
}
((MainActivity)context).updateNotifCounter();
notificationsListAdapter.notifyDataSetChanged();
}
swipeRefreshLayout.setRefreshing(false);

View File

@ -34,6 +34,8 @@ import android.widget.RelativeLayout;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.List;
import fr.gouv.etalab.mastodon.activities.MainActivity;
import fr.gouv.etalab.mastodon.asynctasks.RetrieveRepliesAsyncTask;
import fr.gouv.etalab.mastodon.client.APIResponse;
import fr.gouv.etalab.mastodon.client.Entities.Account;
@ -272,24 +274,18 @@ public class DisplayStatusFragment extends Fragment implements OnRetrieveFeedsIn
lv_status.setAdapter(statusListAdapter);
swiped = false;
}
//Avoids to add a second time the same status, can happen due call in on resume
ArrayList<String> added = new ArrayList<>();
for(Status status : this.statuses){
added.add(status.getId());
}
if( statuses != null && statuses.size() > 0) {
for(Status tmpStatus: statuses){
if( !added.contains(tmpStatus.getId())) {
this.statuses.add(tmpStatus);
added.add(tmpStatus.getId());
if( Long.parseLong(tmpStatus.getId()) > Long.parseLong(lastReadStatus)){
tmpStatus.setNew(true);
}else {
tmpStatus.setNew(false);
}
if( type == RetrieveFeedsAsyncTask.Type.HOME && firstLoad && Long.parseLong(tmpStatus.getId()) > Long.parseLong(lastReadStatus)){
tmpStatus.setNew(true);
MainActivity.countNewStatus++;
}else {
tmpStatus.setNew(false);
}
this.statuses.add(tmpStatus);
}
statusListAdapter.notifyDataSetChanged();
((MainActivity)context).updateHomeCounter();
}
swipeRefreshLayout.setRefreshing(false);