package org.qii.weiciyuan.othercomponent;
import org.qii.weiciyuan.support.debug.AppLogger;
import org.qii.weiciyuan.support.settinghelper.SettingUtility;
import org.qii.weiciyuan.support.utils.Utility;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Handler;
import android.os.Looper;
/**
* User: Jiang Qi
* Date: 12-8-6
*/
public class ConnectionChangeReceiver extends BroadcastReceiver {
//handler and task must be static, otherwise removeCallbacks will cant remove previous task
private static Handler handler = new Handler(Looper.getMainLooper());
private static Runnable task = null;
//receive multi broadcasts at the same time
@Override
public void onReceive(final Context context, Intent intent) {
AppLogger.i("Network status changed");
if (task != null) {
AppLogger.i("Remove previous receiver task");
handler.removeCallbacks(task);
}
task = new Runnable() {
@Override
public void run() {
AppLogger.i("Execute current receiver task");
judgeNetworkStatus(context, true);
task = null;
}
};
handler.postDelayed(task, 4000);
}
public static void judgeNetworkStatus(Context context,
boolean forceStartFetchNewUnreadBackgroundService) {
if (Utility.isConnected(context)) {
if (forceStartFetchNewUnreadBackgroundService) {
if (SettingUtility.getEnableFetchMSG()) {
AppNewMsgAlarm.startAlarm(context, true);
} else {
AppNewMsgAlarm.stopAlarm(context, false);
}
}
decideTimeLineBigPic(context);
decideCommentRepostAvatar(context);
} else {
AppNewMsgAlarm.stopAlarm(context, false);
}
}
private static void decideTimeLineBigPic(Context context) {
if (SettingUtility.getListAvatarMode() == 3) {
SettingUtility.setEnableBigAvatar(Utility.isWifi(context));
}
if (SettingUtility.getListPicMode() == 3) {
SettingUtility.setEnableBigPic(Utility.isWifi(context));
}
}
private static void decideCommentRepostAvatar(Context context) {
if (SettingUtility.getCommentRepostAvatar() == 3) {
SettingUtility.setEnableCommentRepostAvatar(Utility.isWifi(context));
}
}
}