Android Open Source - dissertation-project Connectable






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.connection;
// w w  w  . j a  va 2 s .  com
import java.io.IOException;
import java.lang.ref.WeakReference;

import android.content.Context;

import com.fyp.resilience.database.model.DataWhole;
import com.fyp.resilience.event.ConnectionProgressChange;
import com.fyp.resilience.event.ConnectionStateChange;

import de.greenrobot.event.EventBus;

/**
 * An Abstract class used for Connectables. Each Connectable class inherits from
 * this and provides a base for Views i.e. Progress changes and state changes.
 */
public abstract class Connectable implements Runnable {

    /* Constants to specify the type of connection this Connectable relates to */
    public static final int CONNECTION_TYPE_WIFI_DOWNLOAD = 1;
    public static final int CONNECTION_TYPE_WIFI_UPLOAD = 2;
    public static final int CONNECTION_TYPE_SERVER_UPLOAD = 3;
    public static final int CONNECTION_TYPE_SERVER_DOWNLOAD = 4;

    /* Constants to specify the connections up-to-date status */
    public static final int STATUS_IN_PROGRESS = 4;
    public static final int STATUS_WAITING = 5;
    public static final int STATUS_SUCCESS = 6;
    public static final int STATUS_NOT_REQUIRED = 7;
    public static final int STATUS_NONE_REQUIRED = 8;
    public static final int STATUS_HASHING = 9;
    public static final int STATUS_CONNECTION_ERROR = 10;
    public static final int STATUS_HASH_ERROR = 11;
    public static final int STATUS_REGISTRATION_ERROR = 12;
    public static final int STATUS_RETRYABLE = 13;
    public static final int STATUS_BACKING_OFF = 14;

    protected int mConnectionType;
    protected DataWhole mDataWhole;
    protected final WeakReference<Context> mContext;

    /* Guarantees atomic access */
    protected volatile int mProgress;
    protected volatile int mConnectionStatus;

    /**
     * @param dataPiece
     * @param file
     * @param service
     * @throws IOException
     */
    public Connectable(final Context context, final DataWhole dataWhole) {
        mContext = new WeakReference<Context>(context);
        mDataWhole = dataWhole;
        mConnectionStatus = STATUS_WAITING;
    }

    @Override
    public void run() {
        mConnectionStatus = STATUS_IN_PROGRESS;
        notifyOfStateChange();
    }

    protected abstract int runTask();

    protected abstract void runPostTask();

    /**
     * Posts a {@link ConnectionProgressChange} to the EventBus.
     */
    protected void notifyOfProgressChange() {
        postEvent(new ConnectionProgressChange(this));
    }

    /**
     * Posts a {@link ConnectionStateChange} to the EventBus.
     */
    protected void notifyOfStateChange() {
        postEvent(new ConnectionStateChange(this));
    }

    /**
     * @return
     */
    public int getConnectionStatus() {
        return mConnectionStatus;
    }

    /**
     * @return This objects connection constant.
     */
    public int getConnectionType() {
        return mConnectionType;
    }

    /**
     * @return This objects {@link DataWhole}
     */
    public DataWhole getDataWhole() {
        return mDataWhole;
    }

    /**
     * WARNING - THIS FUNCTION ACCESSES A VOLATILE VARIABLE
     * 
     * @return An integer indicating this connectable's progress.
     */
    public int getProgress() {
        return mProgress;
    }

    /**
     * Helper function to post Event objects.
     * 
     * @param event
     */
    private void postEvent(Object event) {
        EventBus.getDefault().post(event);
    }
}




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