From 7afbda9e2006fc8861ac8cdf60e014696255f969 Mon Sep 17 00:00:00 2001 From: Danny Baumann Date: Mon, 11 Feb 2013 15:41:03 +0100 Subject: [PATCH] Regularly trigger a title and folder update while activity is resumed. This makes sure the relative times are kept up-to-date. --- src/com/fsck/k9/activity/Accounts.java | 2 ++ src/com/fsck/k9/activity/ActivityListener.java | 17 +++++++++++++++++ src/com/fsck/k9/activity/FolderList.java | 3 +++ .../fsck/k9/fragment/MessageListFragment.java | 2 ++ 4 files changed, 24 insertions(+) diff --git a/src/com/fsck/k9/activity/Accounts.java b/src/com/fsck/k9/activity/Accounts.java index 1de1cc0ba..b835dc29b 100644 --- a/src/com/fsck/k9/activity/Accounts.java +++ b/src/com/fsck/k9/activity/Accounts.java @@ -478,6 +478,7 @@ public class Accounts extends K9ListActivity implements OnItemClickListener { refresh(); MessagingController.getInstance(getApplication()).addListener(mListener); StorageManager.getInstance(getApplication()).addListener(storageListener); + mListener.onResume(this); } @Override @@ -485,6 +486,7 @@ public class Accounts extends K9ListActivity implements OnItemClickListener { super.onPause(); MessagingController.getInstance(getApplication()).removeListener(mListener); StorageManager.getInstance(getApplication()).removeListener(storageListener); + mListener.onPause(this); } /** diff --git a/src/com/fsck/k9/activity/ActivityListener.java b/src/com/fsck/k9/activity/ActivityListener.java index 998062565..a4e1bce3c 100644 --- a/src/com/fsck/k9/activity/ActivityListener.java +++ b/src/com/fsck/k9/activity/ActivityListener.java @@ -1,6 +1,9 @@ package com.fsck.k9.activity; +import android.content.BroadcastReceiver; import android.content.Context; +import android.content.Intent; +import android.content.IntentFilter; import android.text.format.DateUtils; import com.fsck.k9.Account; @@ -20,6 +23,12 @@ public class ActivityListener extends MessagingListener { private String mProcessingAccountDescription = null; private String mProcessingCommandTitle = null; + private BroadcastReceiver mTickReceiver = new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + informUserOfStatus(); + } + }; public String getOperation(Context context) { String operation; @@ -72,6 +81,14 @@ public class ActivityListener extends MessagingListener { return operation; } + public void onResume(Context context) { + context.registerReceiver(mTickReceiver, new IntentFilter(Intent.ACTION_TIME_TICK)); + } + + public void onPause(Context context) { + context.unregisterReceiver(mTickReceiver); + } + public void informUserOfStatus() { } diff --git a/src/com/fsck/k9/activity/FolderList.java b/src/com/fsck/k9/activity/FolderList.java index cf44d1be9..5a3a03997 100644 --- a/src/com/fsck/k9/activity/FolderList.java +++ b/src/com/fsck/k9/activity/FolderList.java @@ -396,6 +396,7 @@ public class FolderList extends K9ListActivity implements OnNavigationListener { @Override public void onPause() { super.onPause(); MessagingController.getInstance(getApplication()).removeListener(mAdapter.mListener); + mAdapter.mListener.onPause(this); } /** @@ -424,6 +425,7 @@ public class FolderList extends K9ListActivity implements OnNavigationListener { onRefresh(!REFRESH_REMOTE); MessagingController.getInstance(getApplication()).notifyAccountCancel(this, mAccount); + mAdapter.mListener.onResume(this); } @Override @@ -729,6 +731,7 @@ public class FolderList extends K9ListActivity implements OnNavigationListener { @Override public void informUserOfStatus() { mHandler.refreshTitle(); + mHandler.dataChanged(); } @Override public void accountStatusChanged(BaseAccount account, AccountStats stats) { diff --git a/src/com/fsck/k9/fragment/MessageListFragment.java b/src/com/fsck/k9/fragment/MessageListFragment.java index a76845423..c48ec2a23 100644 --- a/src/com/fsck/k9/fragment/MessageListFragment.java +++ b/src/com/fsck/k9/fragment/MessageListFragment.java @@ -960,6 +960,7 @@ public class MessageListFragment extends SherlockFragment implements OnItemClick @Override public void onPause() { super.onPause(); + mListener.onPause(getActivity()); mController.removeListener(mListener); } @@ -1000,6 +1001,7 @@ public class MessageListFragment extends SherlockFragment implements OnItemClick } } + mListener.onResume(getActivity()); mController.addListener(mListener); //Cancel pending new mail notifications when we open an account