diff --git a/src/org/fdroid/fdroid/FDroid.java b/src/org/fdroid/fdroid/FDroid.java index bb7f3ac70..12b47e122 100644 --- a/src/org/fdroid/fdroid/FDroid.java +++ b/src/org/fdroid/fdroid/FDroid.java @@ -26,6 +26,7 @@ import org.fdroid.fdroid.R; import android.app.AlertDialog; import android.app.AlertDialog.Builder; +import android.app.NotificationManager; import android.app.ProgressDialog; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; @@ -328,4 +329,10 @@ public class FDroid extends FragmentActivity { getTabManager().refreshTabLabel(TabManager.INDEX_CAN_UPDATE); } + public void removeNotification(int id) { + NotificationManager nMgr = (NotificationManager) getBaseContext() + .getSystemService(Context.NOTIFICATION_SERVICE); + nMgr.cancel(1); + } + } diff --git a/src/org/fdroid/fdroid/compat/TabManager.java b/src/org/fdroid/fdroid/compat/TabManager.java index 35b966545..d4f05f688 100644 --- a/src/org/fdroid/fdroid/compat/TabManager.java +++ b/src/org/fdroid/fdroid/compat/TabManager.java @@ -44,6 +44,10 @@ public abstract class TabManager extends Compatibility { protected CharSequence getLabel(int index) { return pager.getAdapter().getPageTitle(index); } + + public void removeNotification(int id) { + parent.removeNotification(id); + } } class OldTabManagerImpl extends TabManager { @@ -113,7 +117,10 @@ class OldTabManagerImpl extends TabManager { tabHost.setOnTabChangedListener( new TabHost.OnTabChangeListener() { @Override public void onTabChanged(String tabId) { - pager.setCurrentItem(tabHost.getCurrentTab()); + int pos = tabHost.getCurrentTab(); + pager.setCurrentItem(pos); + if (pos == 2) + removeNotification(1); } }); } @@ -121,6 +128,8 @@ class OldTabManagerImpl extends TabManager { public void selectTab(int index) { tabHost.setCurrentTab(index); + if (index == 2) + removeNotification(1); } public void refreshTabLabel(int index) { @@ -164,7 +173,10 @@ class HoneycombTabManagerImpl extends TabManager { .setTabListener(new ActionBar.TabListener() { public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) { - pager.setCurrentItem(tab.getPosition()); + int pos = tab.getPosition(); + pager.setCurrentItem(pos); + if (pos == 2) + removeNotification(1); } @Override @@ -184,6 +196,8 @@ class HoneycombTabManagerImpl extends TabManager { if (actionBarSpinner != null) { actionBarSpinner.setSelection(index); } + if (index == 2) + removeNotification(1); } public void refreshTabLabel(int index) {