Added notification badge for unread inbox messages. Added marked pms read

This commit is contained in:
Keith Holliday 2016-07-07 18:49:57 -05:00
parent eb21f18867
commit b13f1d3a29
3 changed files with 39 additions and 0 deletions

View file

@ -63,9 +63,12 @@ import com.magicmicky.habitrpgwrapper.lib.models.tasks.TaskTag;
import com.mikepenz.materialdrawer.AccountHeader;
import com.mikepenz.materialdrawer.Drawer;
import com.mikepenz.materialdrawer.DrawerBuilder;
import com.mikepenz.materialdrawer.holder.BadgeStyle;
import com.mikepenz.materialdrawer.holder.StringHolder;
import com.mikepenz.materialdrawer.model.PrimaryDrawerItem;
import com.mikepenz.materialdrawer.model.interfaces.IDrawerItem;
import com.mikepenz.materialdrawer.model.interfaces.IProfile;
import com.mikepenz.materialdrawer.model.utils.BadgeDrawableBuilder;
import com.raizlabs.android.dbflow.runtime.TransactionManager;
import com.raizlabs.android.dbflow.runtime.transaction.BaseTransaction;
import com.raizlabs.android.dbflow.runtime.transaction.TransactionListener;
@ -97,6 +100,7 @@ import android.database.sqlite.SQLiteDoneException;
import android.databinding.DataBindingUtil;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Rect;
import android.graphics.drawable.BitmapDrawable;
@ -346,6 +350,9 @@ public class MainActivity extends BaseActivity implements Action1<Throwable>, Ha
displayDeathDialogIfNeeded();
if (!fromLocalDb) {
displayNewInboxMessagesBadge();
// Update the oldEntries
new Thread(() -> {
@ -441,6 +448,31 @@ public class MainActivity extends BaseActivity implements Action1<Throwable>, Ha
}
}
private void displayNewInboxMessagesBadge() {
Integer numberOfUnreadPms = this.user.getInbox().getNewMessages();
IDrawerItem newInboxItem;
if (numberOfUnreadPms <= 0) {
newInboxItem = new PrimaryDrawerItem()
.withName(this.getString(R.string.sidebar_inbox))
.withIdentifier(MainDrawerBuilder.SIDEBAR_INBOX);
} else {
String numberOfUnreadPmsLabel = String.valueOf(numberOfUnreadPms);
BadgeStyle badgeStyle = new BadgeStyle()
.withTextColor(Color.WHITE)
.withColorRes(R.color.md_red_700);
newInboxItem = new PrimaryDrawerItem()
.withName(this.getString(R.string.sidebar_inbox))
.withIdentifier(MainDrawerBuilder.SIDEBAR_INBOX)
.withBadge(numberOfUnreadPmsLabel)
.withBadgeStyle(badgeStyle);
}
this.drawer.updateItemAtPosition(newInboxItem, MainDrawerBuilder.SIDEBAR_INBOX + 2);
}
private void loadAndRemoveOldChecklists(final List<ChecklistItem> onlineEntries) {
final ArrayList<String> onlineChecklistItemIdList = new ArrayList<>();

View file

@ -43,6 +43,10 @@ public class InboxFragment extends BaseMainFragment
Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState);
this.apiHelper.apiService.markPrivateMessagesRead()
.compose(apiHelper.configureApiCallObserver())
.subscribe(aVoid -> {}, throwable -> {});
View v = inflater.inflate(R.layout.fragment_inbox, container, false);
unbinder = ButterKnife.bind(this, v);

View file

@ -144,6 +144,9 @@ public interface ApiService {
@POST("user/disable-classes")
Observable<HabitRPGUser> disableClasses();
@POST("user/mark-pms-read")
Observable<Void> markPrivateMessagesRead();
/* Group API */
@GET("groups")