Android Open Source - dissertation-project Resilience Application






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;
//from www  .  j  av a2s .co  m
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

import android.app.Application;
import android.content.Context;
import android.content.Intent;

import com.fyp.resilience.register.Register;
import com.fyp.resilience.service.PieceUploadService;
import com.fyp.resilience.thread.ResilienceThreadFactory;
import com.fyp.resilience.widerst.Widerst;
import com.google.android.gcm.GCMRegistrar;
import com.google.api.client.extensions.android.http.AndroidHttp;
import com.google.api.client.json.gson.GsonFactory;

public class ResilienceApplication extends Application {

    private static final float EXECUTOR_POOL_SIZE_PER_CORE = 1.0f;

    /* Controllers */
    private ResilienceController mResilController;

    /* Executors and other threaded services */
    private ExecutorService mDatabaseSingleExecutor;
    private ExecutorService mUploadSingleExecutor;
    private ExecutorService mWifiUploadMultiExecutor;

    private int mMaximumWifiUploads;

    private Widerst mWiderstService;
    private Register mRegistrationService;

    /**
     * @param {@link Context}
     * @return {@link ResilienceApplication}
     */
    public static ResilienceApplication getApplication(Context context) {
        return (ResilienceApplication) context.getApplicationContext();
    }

    @Override
    public void onCreate() {
        super.onCreate();
        mResilController = new ResilienceController(this);

        mMaximumWifiUploads = Math.round(Runtime.getRuntime().availableProcessors()
                * EXECUTOR_POOL_SIZE_PER_CORE);

        startService(new Intent(this, PieceUploadService.class));

        if (!GCMRegistrar.isRegisteredOnServer(this)) {
            GCMIntentService.register(getApplicationContext());
        }
    }

    /**
     * @return Returns a unique instance of {@link ResilienceController}
     */
    public ResilienceController getResilienceController() {
        return mResilController;
    }

    /**
     * @return {@link Widerst}
     */
    public Widerst getWiderstService() {
        if (null == mWiderstService) {
            mWiderstService = new Widerst.Builder(AndroidHttp.newCompatibleTransport(), new GsonFactory(), null)
                    .build();
        }
        return mWiderstService;
    }

    /**
     * @return {@link Register}
     */
    public Register getRegistrationService() {
        if (null == mRegistrationService) {
            mRegistrationService = new Register.Builder(AndroidHttp.newCompatibleTransport(), new GsonFactory(), null)
                    .build();
        }
        return mRegistrationService;
    }

    /**
     * @return
     */
    public int getMaximumWifiThreads() {
        return mMaximumWifiUploads;
    }

    /**
     * @return Returns a single threaded {@link ExecutorService} used to
     *         communicate with the SQLite Database.
     */
    public ExecutorService getDatabaseThreadExecutorService() {
        /* Ensure the Executor is neither null nor shutdown */
        if (null == mDatabaseSingleExecutor || mDatabaseSingleExecutor.isShutdown()) {
            mDatabaseSingleExecutor = Executors
                    .newSingleThreadExecutor(new ResilienceThreadFactory());
        }
        return mDatabaseSingleExecutor;
    }

    /**
     * @return Returns a single-threaded {@link ExecutorService} used to upload
     *         data to the Widerst server.
     */
    public ExecutorService getServerUploadThreadExecutorService() {
        /* Ensure the Executor is neither null nor shutdown */
        if (null == mUploadSingleExecutor || mUploadSingleExecutor.isShutdown()) {
            mUploadSingleExecutor = Executors
                    .newSingleThreadExecutor(new ResilienceThreadFactory());
        }
        return mUploadSingleExecutor;
    }

    /**
     * @return Returns a multi-threaded {@link ExecutorService} used to upload
     *         data to Wi-Fi devices.
     */
    public ExecutorService getWifiUploadThreadExecutorService() {
        if (null == mWifiUploadMultiExecutor || mWifiUploadMultiExecutor.isShutdown()) {
            mWifiUploadMultiExecutor = Executors.newFixedThreadPool(mMaximumWifiUploads, new ResilienceThreadFactory());
        }
        return mWifiUploadMultiExecutor;
    }
}




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