diff --git a/app/src/main/java/com/github/dfa/diaspora_android/activity/MainActivity.java b/app/src/main/java/com/github/dfa/diaspora_android/activity/MainActivity.java index 34ffb569..586d786d 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/activity/MainActivity.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/activity/MainActivity.java @@ -121,8 +121,6 @@ public class MainActivity extends AppCompatActivity private App app; private String podDomain; private Menu menu; - private int notificationCount = 0; - private int conversationCount = 0; private ValueCallback mFilePathCallback; private String mCameraPhotoPath; private WebSettings webSettings; @@ -603,14 +601,14 @@ public class MainActivity extends AppCompatActivity this.menu = menu; MenuItem itemNotification = menu.findItem(R.id.action_notifications); if (itemNotification != null) { - if (notificationCount > 0) { + if (podUserProfile.getNotificationCount() > 0) { itemNotification.setIcon(R.drawable.ic_notifications_colored_48px); } else { itemNotification.setIcon(R.drawable.ic_notifications_white_48px); } MenuItem itemConversation = menu.findItem(R.id.action_conversations); - if (conversationCount > 0) { + if (podUserProfile.getUnreadMessagesCount() > 0) { itemConversation.setIcon(R.drawable.ic_email_colored_48px); } else { itemConversation.setIcon(R.drawable.ic_mail_white_48px); @@ -920,76 +918,42 @@ public class MainActivity extends AppCompatActivity // TODO: Move from Javascript interface @Override public void onNotificationCountChanged(int notificationCount) { + MenuItem item = menu.findItem(R.id.action_notifications); + if (item != null) { + if (notificationCount > 0) { + item.setIcon(R.drawable.ic_notifications_colored_48px); + if (!snackbarNewNotification.isShown() && !webView.getUrl().equals("https://" + podDomain + "/notifications")) + snackbarNewNotification.show(); + } else { + item.setIcon(R.drawable.ic_notifications_white_48px); + } + } } // TODO: Move from Javascript interface @Override public void onUnreadMessageCountChanged(int unreadMessageCount) { + MenuItem item = menu.findItem(R.id.action_conversations); + if (item != null) { + if (unreadMessageCount > 0) { + item.setIcon(R.drawable.ic_email_colored_48px); + if (!snackbarNewNotification.isShown() && !webView.getUrl().equals("https://" + podDomain + "/conversations")) + snackbarNewNotification.show(); + } else { + item.setIcon(R.drawable.ic_mail_white_48px); + } + } } private class JavaScriptInterface { - @JavascriptInterface - public void setNotificationCount(final String webMessage) { - uiHandler.post(new Runnable() { - @Override - public void run() { - if (menu == null) { - return; - } - notificationCount = Integer.valueOf(webMessage); - - MenuItem item = menu.findItem(R.id.action_notifications); - - if (item != null) { - if (notificationCount > 0) { - item.setIcon(R.drawable.ic_notifications_colored_48px); - if (!snackbarNewNotification.isShown() && !webView.getUrl().equals("https://" + podDomain + "/notifications")) - snackbarNewNotification.show(); - } else { - item.setIcon(R.drawable.ic_notifications_white_48px); - } - } - - - } - }); - } - @JavascriptInterface public void setUserProfile(final String webMessage) throws JSONException { if (podUserProfile.isRefreshNeeded()) { podUserProfile.parseJson(webMessage); } } - - @JavascriptInterface - public void setConversationCount(final String webMessage) { - uiHandler.post(new Runnable() { - @Override - public void run() { - if (menu == null) { - return; - } - conversationCount = Integer.valueOf(webMessage); - - MenuItem item = menu.findItem(R.id.action_conversations); - - if (item != null) { - if (conversationCount > 0) { - item.setIcon(R.drawable.ic_email_colored_48px); - if (!snackbarNewNotification.isShown() && !webView.getUrl().equals("https://" + podDomain + "/notifications")) - snackbarNewNotification.show(); - } else { - item.setIcon(R.drawable.ic_mail_white_48px); - } - } - - } - }); - } - } @SuppressWarnings("StatementWithEmptyBody") diff --git a/app/src/main/java/com/github/dfa/diaspora_android/util/Helpers.java b/app/src/main/java/com/github/dfa/diaspora_android/util/Helpers.java index fc94d79e..2a77e77e 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/util/Helpers.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/util/Helpers.java @@ -67,23 +67,6 @@ public class Helpers { "})();"); } - public static void getNotificationCount(final WebView wv) { - wv.loadUrl("javascript: ( function() {" + - "if (document.getElementById('notification')) {" + - " var count = document.getElementById('notification').innerHTML;" + - " AndroidBridge.setNotificationCount(count.replace(/(\\r\\n|\\n|\\r)/gm, \"\"));" + - " } else {" + - " AndroidBridge.setNotificationCount('0');" + - " }" + - " if (document.getElementById('conversation')) {" + - " var count = document.getElementById('conversation').innerHTML;" + - " AndroidBridge.setConversationCount(count.replace(/(\\r\\n|\\n|\\r)/gm, \"\"));" + - " } else {" + - " AndroidBridge.setConversationCount('0');" + - " }" + - "})();"); - } - public static void getUserProfile(final WebView wv) { // aspects":[{"id":124934,"name":"Friends","selected":true},{"id":124937,"name":"Liked me","selected":false},{"id":124938,"name":"Follow","selected":false},{"id":128327,"name":"Nur ich","selected":false}] wv.loadUrl("javascript: ( function() {" +