Android Open Source - dissertation-project Connectivity Broadcast Receiver






From Project

Back to project page dissertation-project.

License

The source code is released under:

MIT License

If you think the Android project dissertation-project listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.fyp.resilience.receiver;
/*w  ww  . j  av a  2  s.c om*/
import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.wifi.WifiManager;
import android.util.Log;

import com.fyp.resilience.Constants;
import com.fyp.resilience.ResilienceController;
import com.fyp.resilience.service.PieceUploadService;
import com.fyp.resilience.swarm.helper.NsdHelper;
import com.fyp.resilience.swarm.helper.SwarmHelperInterface;
import com.fyp.resilience.swarm.helper.WifiDirectSdHelper;
import com.fyp.resilience.util.Utils;

public class ConnectivityBroadcastReceiver extends AbstractConnectivityBroadcastReceiver {

    private static final String TAG = ConnectivityBroadcastReceiver.class.getSimpleName();

    private SwarmHelperInterface mNsdHelper;
    private SwarmHelperInterface mWifiDirectHelper;

    private final ResilienceController mController;
    private final WifiManager mWifiMgr;
    private final PieceUploadService mService;

    private boolean mNsdDiscovering;
    private boolean mWifiDiscovering;

    public ConnectivityBroadcastReceiver(final ResilienceController controller, final WifiManager wifiMgr,
            final PieceUploadService service) {
        mController = controller;
        mWifiMgr = wifiMgr;
        mService = service;
    }

    @Override
    public void onReceive(final Context context, final Intent intent) {
        final String action = intent.getAction();
        if (action.equals(ConnectivityManager.CONNECTIVITY_ACTION)) {
            if (Utils.canUploadToServer(context)) {
                context.startService(new Intent(context, PieceUploadService.class));
            }

            if (ConnectivityBroadcastReceiver.isConnectedToWifi(context)) {
                if (!mNsdDiscovering) {
                    Log.d(TAG, "Starting NSDHelper");
                    mNsdHelper = new NsdHelper(mController, mWifiMgr);
                    mNsdHelper.initialise();
                    mNsdHelper.register(Constants.CLIENT_DATA_PORT, true, context);
                    mNsdDiscovering = true;
                }
            } else {
                /*
                 * If the Wi-Fi has been disconnected then clear the client list
                 * as it is no longer valid
                 */
                ResilienceController.getInstance(context).clearClientList();

                /* Check to ensure it hasn't already been destroyed */
                if (null != mNsdHelper) {
                    Log.d(TAG, "Destroying NSDHelper");
                    mNsdDiscovering = false;
                    mNsdHelper.tearDown();
                    mNsdHelper = null;
                }
            }
        } else if (action.equals(WifiManager.WIFI_STATE_CHANGED_ACTION)) {
            if (isWifiOnline(context)) {
                if (!mWifiDiscovering) {
                    Log.d(TAG, "Starting WifiDirectHelper");
                    mWifiDirectHelper = new WifiDirectSdHelper(mService);
                    mWifiDirectHelper.initialise();
                    mWifiDirectHelper.register(Constants.CLIENT_DATA_PORT, true, context);
                    mWifiDiscovering = true;
                }
            } else {
                if (null != mWifiDirectHelper) {
                    Log.d(TAG, "Destroying WifiDirectHelper");
                    mWifiDiscovering = false;
                    mWifiDirectHelper.tearDown();
                    mWifiDirectHelper = null;
                }
            }
        }
    }

    @Override
    public void onDestroy() {
        mNsdDiscovering = false;
        mNsdHelper.tearDown();
        mNsdHelper = null;

        mWifiDiscovering = false;
        mWifiDirectHelper.tearDown();
        mWifiDirectHelper = null;
    }

    /**
     * Indicates whether the device is currently connected to the Internet.
     * 
     * @param {@link Context}
     * @return A boolean indicating whether the device is connected to the
     *         Internet.
     */
    public static boolean isConnected(final Context context) {
        final ConnectivityManager connMgr = (ConnectivityManager) context
                .getSystemService(Context.CONNECTIVITY_SERVICE);
        final NetworkInfo netInfo = connMgr.getActiveNetworkInfo();
        return null != netInfo && netInfo.isConnected();
    }

    /**
     * @param context
     * @return
     */
    public static boolean isWifiOnline(final Context context) {
        final WifiManager wifiMgr = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
        return wifiMgr.isWifiEnabled();
    }

    /**
     * @param context
     * @return
     */
    public static boolean isConnectedToWifi(final Context context) {
        final ConnectivityManager connMgr = (ConnectivityManager) context
                .getSystemService(Context.CONNECTIVITY_SERVICE);
        final NetworkInfo wifiInfo = connMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI);

        return (null != wifiInfo && wifiInfo.isConnected());
    }
}




Java Source Code List

com.fyp.resilience.Constants.java
com.fyp.resilience.Flags.java
com.fyp.resilience.GCMIntentService.java
com.fyp.resilience.PreferenceConstants.java
com.fyp.resilience.ResilienceApplication.java
com.fyp.resilience.ResilienceController.java
com.fyp.resilience.activity.LicenceActivity.java
com.fyp.resilience.activity.ResilienceActivity.java
com.fyp.resilience.activity.SettingsActivity.java
com.fyp.resilience.adapter.ClientListAdapter.java
com.fyp.resilience.adapter.ConnectionListAdapter.java
com.fyp.resilience.adapter.FileListAdapter.java
com.fyp.resilience.connection.Connectable.java
com.fyp.resilience.connection.ServerDownloadConnectable.java
com.fyp.resilience.connection.ServerUploadConnectable.java
com.fyp.resilience.connection.UploadConnectable.java
com.fyp.resilience.connection.WifiDownloadConnectable.java
com.fyp.resilience.connection.WifiUploadConnectable.java
com.fyp.resilience.database.ResilienceDbHelper.java
com.fyp.resilience.database.ResilienceDbManager.java
com.fyp.resilience.database.model.DataPiece.java
com.fyp.resilience.database.model.DataWhole.java
com.fyp.resilience.event.ClientListChanged.java
com.fyp.resilience.event.ClientModified.java
com.fyp.resilience.event.ConnectionProgressChange.java
com.fyp.resilience.event.ConnectionStateChange.java
com.fyp.resilience.event.ConnectionsModified.java
com.fyp.resilience.event.PieceStateChange.java
com.fyp.resilience.event.ServerRegistrationChanged.java
com.fyp.resilience.event.ServerUploadFinished.java
com.fyp.resilience.event.WholeModified.java
com.fyp.resilience.event.WifiDownloadFinished.java
com.fyp.resilience.event.WifiUploadFinished.java
com.fyp.resilience.fragment.ClientsFragment.java
com.fyp.resilience.fragment.ConnectionsFragment.java
com.fyp.resilience.fragment.FilesFragment.java
com.fyp.resilience.interfaces.Messagable.java
com.fyp.resilience.interfaces.Partialable.java
com.fyp.resilience.proto.ProtoBuffSpecification.java
com.fyp.resilience.receiver.AbstractConnectivityBroadcastReceiver.java
com.fyp.resilience.receiver.BootReceiver.java
com.fyp.resilience.receiver.ConnectivityBroadcastReceiver.java
com.fyp.resilience.receiver.WiFiDirectBroadcastReceiver.java
com.fyp.resilience.register.RegisterRequestInitializer.java
com.fyp.resilience.register.RegisterRequest.java
com.fyp.resilience.register.RegisterScopes.java
com.fyp.resilience.register.Register.java
com.fyp.resilience.register.model.DeviceInfo.java
com.fyp.resilience.service.PieceUploadService.java
com.fyp.resilience.stream.PiecedRandomAccessFile.java
com.fyp.resilience.swarm.helper.NsdHelper.java
com.fyp.resilience.swarm.helper.SwarmHelperInterface.java
com.fyp.resilience.swarm.helper.WifiDirectSdHelper.java
com.fyp.resilience.swarm.model.SwarmClient.java
com.fyp.resilience.thread.ResilienceRunnable.java
com.fyp.resilience.thread.ResilienceThreadFactory.java
com.fyp.resilience.util.ConnectionUtils.java
com.fyp.resilience.util.Utils.java
com.fyp.resilience.view.ClientView.java
com.fyp.resilience.view.ConnectionView.java
com.fyp.resilience.view.FileView.java
com.fyp.resilience.view.PieceProgressIndicator.java
com.fyp.resilience.widerst.WiderstRequestInitializer.java
com.fyp.resilience.widerst.WiderstRequest.java
com.fyp.resilience.widerst.WiderstScopes.java
com.fyp.resilience.widerst.Widerst.java
com.fyp.resilience.widerst.model.DataPiecePartial.java
com.fyp.resilience.widerst.model.DataWholePartial.java
com.fyp.resilience.widerst.model.PostResponse.java
com.fyp.widerst.Constants.java
com.fyp.widerst.WiderstObjectifyService.java
com.fyp.widerst.backend.FileJoinerBackend.java
com.fyp.widerst.cron.CronJobServlet.java
com.fyp.widerst.endpoint.DataPieceEndpoint.java
com.fyp.widerst.endpoint.DeviceInfoEndpoint.java
com.fyp.widerst.entity.DataPiece.java
com.fyp.widerst.entity.DataWhole.java
com.fyp.widerst.entity.DeviceInfo.java
com.fyp.widerst.handler.BlobstoreUploadHandler.java
com.fyp.widerst.partial.DataPiecePartial.java
com.fyp.widerst.partial.DataWholePartial.java
com.fyp.widerst.response.PostResponse.java
com.fyp.widerst.servlet.WholeFileServer.java
com.fyp.widerst.util.DbHelper.java
com.fyp.widerst.util.GcmHelper.java