updates counters
This commit is contained in:
parent
6ffce804e9
commit
c1fd4b1d59
|
@ -133,8 +133,8 @@ public class MainActivity extends AppCompatActivity
|
||||||
private DisplayNotificationsFragment notificationsFragment;
|
private DisplayNotificationsFragment notificationsFragment;
|
||||||
private BroadcastReceiver receive_data;
|
private BroadcastReceiver receive_data;
|
||||||
private boolean display_local, display_global;
|
private boolean display_local, display_global;
|
||||||
private int countNewStatus = 0;
|
public static int countNewStatus = 0;
|
||||||
private int countNewNotifications = 0;
|
public static int countNewNotifications = 0;
|
||||||
|
|
||||||
public MainActivity() {
|
public MainActivity() {
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,6 +29,8 @@ import android.widget.RelativeLayout;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import fr.gouv.etalab.mastodon.activities.MainActivity;
|
||||||
import fr.gouv.etalab.mastodon.client.APIResponse;
|
import fr.gouv.etalab.mastodon.client.APIResponse;
|
||||||
import fr.gouv.etalab.mastodon.client.Entities.Account;
|
import fr.gouv.etalab.mastodon.client.Entities.Account;
|
||||||
import fr.gouv.etalab.mastodon.drawers.NotificationsListAdapter;
|
import fr.gouv.etalab.mastodon.drawers.NotificationsListAdapter;
|
||||||
|
@ -60,6 +62,8 @@ public class DisplayNotificationsFragment extends Fragment implements OnRetrieve
|
||||||
private SwipeRefreshLayout swipeRefreshLayout;
|
private SwipeRefreshLayout swipeRefreshLayout;
|
||||||
private boolean swiped;
|
private boolean swiped;
|
||||||
private ListView lv_notifications;
|
private ListView lv_notifications;
|
||||||
|
private String userId;
|
||||||
|
private String lastReadNotifications;
|
||||||
|
|
||||||
public DisplayNotificationsFragment(){
|
public DisplayNotificationsFragment(){
|
||||||
}
|
}
|
||||||
|
@ -85,6 +89,8 @@ public class DisplayNotificationsFragment extends Fragment implements OnRetrieve
|
||||||
nextElementLoader.setVisibility(View.GONE);
|
nextElementLoader.setVisibility(View.GONE);
|
||||||
boolean isOnWifi = Helper.isOnWIFI(context);
|
boolean isOnWifi = Helper.isOnWIFI(context);
|
||||||
int behaviorWithAttachments = sharedpreferences.getInt(Helper.SET_ATTACHMENT_ACTION, Helper.ATTACHMENT_ALWAYS);
|
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);
|
notificationsListAdapter = new NotificationsListAdapter(context,isOnWifi, behaviorWithAttachments,this.notifications);
|
||||||
lv_notifications.setAdapter(notificationsListAdapter);
|
lv_notifications.setAdapter(notificationsListAdapter);
|
||||||
lv_notifications.setOnScrollListener(new AbsListView.OnScrollListener() {
|
lv_notifications.setOnScrollListener(new AbsListView.OnScrollListener() {
|
||||||
|
@ -186,17 +192,13 @@ public class DisplayNotificationsFragment extends Fragment implements OnRetrieve
|
||||||
lv_notifications.setAdapter(notificationsListAdapter);
|
lv_notifications.setAdapter(notificationsListAdapter);
|
||||||
swiped = false;
|
swiped = false;
|
||||||
}
|
}
|
||||||
ArrayList<String> added = new ArrayList<>();
|
|
||||||
for(Notification notification : this.notifications){
|
|
||||||
added.add(notification.getId());
|
|
||||||
}
|
|
||||||
if( notifications != null && notifications.size() > 0) {
|
if( notifications != null && notifications.size() > 0) {
|
||||||
for(Notification tmpNotification: notifications){
|
for(Notification tmpNotification: notifications){
|
||||||
if( !added.contains(tmpNotification.getId())) {
|
if( Long.parseLong(tmpNotification.getId()) > Long.parseLong(lastReadNotifications))
|
||||||
this.notifications.add(tmpNotification);
|
MainActivity.countNewNotifications++;
|
||||||
added.add(tmpNotification.getId());
|
this.notifications.add(tmpNotification);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
((MainActivity)context).updateNotifCounter();
|
||||||
notificationsListAdapter.notifyDataSetChanged();
|
notificationsListAdapter.notifyDataSetChanged();
|
||||||
}
|
}
|
||||||
swipeRefreshLayout.setRefreshing(false);
|
swipeRefreshLayout.setRefreshing(false);
|
||||||
|
|
|
@ -34,6 +34,8 @@ import android.widget.RelativeLayout;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import fr.gouv.etalab.mastodon.activities.MainActivity;
|
||||||
import fr.gouv.etalab.mastodon.asynctasks.RetrieveRepliesAsyncTask;
|
import fr.gouv.etalab.mastodon.asynctasks.RetrieveRepliesAsyncTask;
|
||||||
import fr.gouv.etalab.mastodon.client.APIResponse;
|
import fr.gouv.etalab.mastodon.client.APIResponse;
|
||||||
import fr.gouv.etalab.mastodon.client.Entities.Account;
|
import fr.gouv.etalab.mastodon.client.Entities.Account;
|
||||||
|
@ -272,24 +274,18 @@ public class DisplayStatusFragment extends Fragment implements OnRetrieveFeedsIn
|
||||||
lv_status.setAdapter(statusListAdapter);
|
lv_status.setAdapter(statusListAdapter);
|
||||||
swiped = false;
|
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) {
|
if( statuses != null && statuses.size() > 0) {
|
||||||
for(Status tmpStatus: statuses){
|
for(Status tmpStatus: statuses){
|
||||||
if( !added.contains(tmpStatus.getId())) {
|
if( type == RetrieveFeedsAsyncTask.Type.HOME && firstLoad && Long.parseLong(tmpStatus.getId()) > Long.parseLong(lastReadStatus)){
|
||||||
this.statuses.add(tmpStatus);
|
tmpStatus.setNew(true);
|
||||||
added.add(tmpStatus.getId());
|
MainActivity.countNewStatus++;
|
||||||
if( Long.parseLong(tmpStatus.getId()) > Long.parseLong(lastReadStatus)){
|
}else {
|
||||||
tmpStatus.setNew(true);
|
tmpStatus.setNew(false);
|
||||||
}else {
|
|
||||||
tmpStatus.setNew(false);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
this.statuses.add(tmpStatus);
|
||||||
}
|
}
|
||||||
statusListAdapter.notifyDataSetChanged();
|
statusListAdapter.notifyDataSetChanged();
|
||||||
|
((MainActivity)context).updateHomeCounter();
|
||||||
}
|
}
|
||||||
swipeRefreshLayout.setRefreshing(false);
|
swipeRefreshLayout.setRefreshing(false);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue