org.android.activityminer.app
Class ActivityMiner

Package class diagram package ActivityMiner
java.lang.Object
  extended by android.content.Context
      extended by android.content.ContextWrapper
          extended by android.view.ContextThemeWrapper
              extended by android.app.Activity
                  extended by org.android.activityminer.app.util.SharedPreferenceChangeAwareActivity
                      extended by org.android.activityminer.app.util.ServiceBasedActivity
                          extended by org.android.activityminer.app.ActivityMiner
All Implemented Interfaces:
ComponentCallbacks, ComponentCallbacks2, KeyEvent.Callback, LayoutInflater.Factory, LayoutInflater.Factory2, View.OnCreateContextMenuListener, Window.Callback, GenericServiceConnectionHolder.ServiceConnectionEventReceiver<IBackgroundService>, EventObserver<TaskFinishedEvent>, SharedPreferenceChangeNotificationReceiver, SharedPreferenceChangeObserver

public final class ActivityMiner
extends ServiceBasedActivity
implements EventObserver<TaskFinishedEvent>

The main Activity.


Field Summary
private  DBManager dbManager
          A reference to the global database manager instance.
private  AtomicBoolean dbRawDataUpdateIsWaitingForConnection
          Flag if a raw data in database update task is waiting for connection
private  Button evaluationButton
          The button for evaluation.
private  AtomicBoolean featureExtractionConfigChanged
          The flag for configuration changes, which does affect the extracted features.
private  AtomicBoolean linearAccUpdateIsWaitingForConnection
          Flag if linear acceleration data update is waiting for a connection
private  Button modelCreationButton
          The button for model creation from current configuration.
private  AtomicBoolean modelCreationIsWaitingForConnection
          Flag if model creation task is waiting for a connection
private  String nextModelName
          The selected model name for the model to create as soon as service connection is established
private  Button recordingButton
          The recording button.
private  Button trainingDataUpdateButton
          The button for feature extraction.
 
Fields inherited from class android.app.Activity
DEFAULT_KEYS_DIALER, DEFAULT_KEYS_DISABLE, DEFAULT_KEYS_SEARCH_GLOBAL, DEFAULT_KEYS_SEARCH_LOCAL, DEFAULT_KEYS_SHORTCUT, FOCUSED_STATE_SET, RESULT_CANCELED, RESULT_FIRST_USER, RESULT_OK
 
Fields inherited from class android.content.Context
ACCESSIBILITY_SERVICE, ACCOUNT_SERVICE, ACTIVITY_SERVICE, ALARM_SERVICE, APP_OPS_SERVICE, AUDIO_SERVICE, BIND_ABOVE_CLIENT, BIND_ADJUST_WITH_ACTIVITY, BIND_ALLOW_OOM_MANAGEMENT, BIND_AUTO_CREATE, BIND_DEBUG_UNBIND, BIND_IMPORTANT, BIND_NOT_FOREGROUND, BIND_WAIVE_PRIORITY, BLUETOOTH_SERVICE, CAPTIONING_SERVICE, CLIPBOARD_SERVICE, CONNECTIVITY_SERVICE, CONSUMER_IR_SERVICE, CONTEXT_IGNORE_SECURITY, CONTEXT_INCLUDE_CODE, CONTEXT_RESTRICTED, DEVICE_POLICY_SERVICE, DISPLAY_SERVICE, DOWNLOAD_SERVICE, DROPBOX_SERVICE, INPUT_METHOD_SERVICE, INPUT_SERVICE, KEYGUARD_SERVICE, LAYOUT_INFLATER_SERVICE, LOCATION_SERVICE, MEDIA_ROUTER_SERVICE, MODE_APPEND, MODE_ENABLE_WRITE_AHEAD_LOGGING, MODE_MULTI_PROCESS, MODE_PRIVATE, MODE_WORLD_READABLE, MODE_WORLD_WRITEABLE, NFC_SERVICE, NOTIFICATION_SERVICE, NSD_SERVICE, POWER_SERVICE, PRINT_SERVICE, SEARCH_SERVICE, SENSOR_SERVICE, STORAGE_SERVICE, TELEPHONY_SERVICE, TEXT_SERVICES_MANAGER_SERVICE, UI_MODE_SERVICE, USB_SERVICE, USER_SERVICE, VIBRATOR_SERVICE, WALLPAPER_SERVICE, WIFI_P2P_SERVICE, WIFI_SERVICE, WINDOW_SERVICE
 
Fields inherited from interface android.content.ComponentCallbacks2
TRIM_MEMORY_BACKGROUND, TRIM_MEMORY_COMPLETE, TRIM_MEMORY_MODERATE, TRIM_MEMORY_RUNNING_CRITICAL, TRIM_MEMORY_RUNNING_LOW, TRIM_MEMORY_RUNNING_MODERATE, TRIM_MEMORY_UI_HIDDEN
 
Constructor Summary
ActivityMiner()
          Constructor
 
Method Summary
protected  void doCreateModel(String modelName)
          Database import
 void doDBRawDataUpdate()
          DB raw data update in the background.
 void doUpdateLinearAccelerationData()
          Linear acceleration value update in the background.
 boolean isInterestedInLimitViolations()
          Method to test if limit violations should be notified.
 void onAboutToDisconnect(IBackgroundService service)
           
private  boolean onActivityConfiguration()
          Option menu handler for activity management.
protected  void onActivityResult(int requestCode, int resultCode, Intent data)
           
 void onBetaPreferenceChange(double beta)
          The handler for beta value preference changes.
 void onBWFilterOrderPreferenceChanged(int order)
          The handler for Butterworth filter order changes.
private  boolean onConfiguration()
          Option menu handler for configuration.
 void onConfigurationChanged(Configuration newConfig)
           
 void onConnectionEstablished(IBackgroundService service)
           
 void onConnectionLost()
           
protected  void onCreate(Bundle savedInstanceState)
           
 boolean onCreateOptionsMenu(Menu menu)
           
private  boolean onDBManagement()
          Option menu handler for DB statistic.
private  boolean onDeleteData()
          Option menu handler for data deletion.
protected  void onDestroy()
           
protected  void onEvaluation()
          Option menu handler for evaluation.
 void onEvent(ObservableEventSource<? extends TaskFinishedEvent> eventSource, TaskFinishedEvent observedEvent)
           
private  void onFeatureExtractionConfigChanged()
          Handler for configuration changes, which does affect the feature extraction process.
 void onFeatureSelection(FeatureTypes featureType, boolean isSelected)
          The handler for feature selection state changes.
 void onGravitationCutOffPreferenceChanged(double cutOff)
          The handler for gravitation filter cut-off frequency preference changes.
 void onLocationDataUsageFlagChange(boolean useLocationData)
          The handler for changes of location data usage flag
 void onMinCutOffPreferenceChanged(double minCutOff)
          The handler for minimum cut-off frequency preference changes.
protected  void onModelCreation()
          Handler for model creation from the current configuration
 boolean onOptionsItemSelected(MenuItem item)
           
 void onOverlapSizeChange(int overlapSize)
          The handler for cutOut overlap size parameter changes.
 void onOwnLinAccImplementationUsageFlagChange(boolean useInternalLinAccImpl)
          The handler for changes of the internal linear acceleration implementation usage flag.
 boolean onPrepareOptionsMenu(Menu menu)
           
private  void onRecording()
          Option menu handler for the recording of labeled training samples.
protected  void onResume()
           
 void onSampleRateChange(long sampleRate)
          The handler for sample rate changes.
 void onSelectedAccFilterChanged(FilterTypes filterType)
          The handler for filter type changes.
protected  void onServiceFinishedCurrentTask(TaskFinishedEvent event)
          Handler for finished service tasks
protected  void onTrainingDataUpdate()
          Option menu handler for training data update.
 void onWindowSizeChange(long windowSize)
          The handler for cutOut size parameter changes.
private  void prepare()
           
protected  void updateButtonStates()
          Does update the button states.
 
Methods inherited from class org.android.activityminer.app.util.ServiceBasedActivity
getService, getServiceState, handleTaskFinishedEvent, isServiceAvailable, onBackgroundTaskProgress, onBindingFailed, onDefaultTaskFinishedEvent, onNewIntent, onPause, onServiceUnavailable, safeUnregisterReceiver, showServiceTaskFinishedResult, startBackgroundServiceProgressObservation, stopBackgroundServiceProgressObservation
 
Methods inherited from class org.android.activityminer.app.util.SharedPreferenceChangeAwareActivity
getConfiguration, onBWCutOffPreferenceChanged, onClassSelectionChange, onCountDownTimeChange, onCrossValidationParameterKChange, onDefaultRecordingTimeChange, onEvaluationAccuracyThresholdChanged, onKNNClassifierParameterKChange, onKNNClassifierParameterNormalizeChange, onLimitViolation, onMaximumRecordingTimeChange, onMaximumSampleRateChange, onSelectedClassifierChange
 
Methods inherited from class android.app.Activity
addContentView, closeContextMenu, closeOptionsMenu, createPendingResult, dismissDialog, dispatchGenericMotionEvent, dispatchKeyEvent, dispatchKeyShortcutEvent, dispatchPopulateAccessibilityEvent, dispatchTouchEvent, dispatchTrackballEvent, dump, findViewById, finish, finishActivity, finishActivityFromChild, finishAffinity, finishFromChild, getActionBar, getApplication, getCallingActivity, getCallingPackage, getChangingConfigurations, getComponentName, getCurrentFocus, getFragmentManager, getIntent, getLastNonConfigurationInstance, getLayoutInflater, getLoaderManager, getLocalClassName, getMenuInflater, getParent, getParentActivityIntent, getPreferences, getRequestedOrientation, getSystemService, getTaskId, getTitle, getTitleColor, getVolumeControlStream, getWindow, getWindowManager, hasWindowFocus, invalidateOptionsMenu, isChangingConfigurations, isChild, isDestroyed, isFinishing, isImmersive, isTaskRoot, managedQuery, moveTaskToBack, navigateUpTo, navigateUpToFromChild, onActionModeFinished, onActionModeStarted, onApplyThemeResource, onAttachedToWindow, onAttachFragment, onBackPressed, onChildTitleChanged, onContentChanged, onContextItemSelected, onContextMenuClosed, onCreateContextMenu, onCreateDescription, onCreateDialog, onCreateDialog, onCreateNavigateUpTaskStack, onCreatePanelMenu, onCreatePanelView, onCreateThumbnail, onCreateView, onCreateView, onDetachedFromWindow, onGenericMotionEvent, onKeyDown, onKeyLongPress, onKeyMultiple, onKeyShortcut, onKeyUp, onLowMemory, onMenuItemSelected, onMenuOpened, onNavigateUp, onNavigateUpFromChild, onOptionsMenuClosed, onPanelClosed, onPostCreate, onPostResume, onPrepareDialog, onPrepareDialog, onPrepareNavigateUpTaskStack, onPreparePanel, onProvideAssistData, onRestart, onRestoreInstanceState, onRetainNonConfigurationInstance, onSaveInstanceState, onSearchRequested, onStart, onStop, onTitleChanged, onTouchEvent, onTrackballEvent, onTrimMemory, onUserInteraction, onUserLeaveHint, onWindowAttributesChanged, onWindowFocusChanged, onWindowStartingActionMode, openContextMenu, openOptionsMenu, overridePendingTransition, recreate, registerForContextMenu, removeDialog, reportFullyDrawn, requestWindowFeature, runOnUiThread, setContentView, setContentView, setContentView, setDefaultKeyMode, setFeatureDrawable, setFeatureDrawableAlpha, setFeatureDrawableResource, setFeatureDrawableUri, setFinishOnTouchOutside, setImmersive, setIntent, setProgress, setProgressBarIndeterminate, setProgressBarIndeterminateVisibility, setProgressBarVisibility, setRequestedOrientation, setResult, setResult, setSecondaryProgress, setTitle, setTitle, setTitleColor, setVisible, setVolumeControlStream, shouldUpRecreateTask, showDialog, showDialog, startActionMode, startActivities, startActivities, startActivity, startActivity, startActivityForResult, startActivityForResult, startActivityFromChild, startActivityFromChild, startActivityFromFragment, startActivityFromFragment, startActivityIfNeeded, startActivityIfNeeded, startIntentSender, startIntentSender, startIntentSenderForResult, startIntentSenderForResult, startIntentSenderFromChild, startIntentSenderFromChild, startManagingCursor, startNextMatchingActivity, startNextMatchingActivity, startSearch, stopManagingCursor, takeKeyEvents, triggerSearch, unregisterForContextMenu
 
Methods inherited from class android.view.ContextThemeWrapper
applyOverrideConfiguration, attachBaseContext, getResources, getTheme, setTheme
 
Methods inherited from class android.content.ContextWrapper
bindService, checkCallingOrSelfPermission, checkCallingOrSelfUriPermission, checkCallingPermission, checkCallingUriPermission, checkPermission, checkUriPermission, checkUriPermission, clearWallpaper, createConfigurationContext, createDisplayContext, createPackageContext, databaseList, deleteDatabase, deleteFile, enforceCallingOrSelfPermission, enforceCallingOrSelfUriPermission, enforceCallingPermission, enforceCallingUriPermission, enforcePermission, enforceUriPermission, enforceUriPermission, fileList, getApplicationContext, getApplicationInfo, getAssets, getBaseContext, getCacheDir, getClassLoader, getContentResolver, getDatabasePath, getDir, getExternalCacheDir, getExternalCacheDirs, getExternalFilesDir, getExternalFilesDirs, getFilesDir, getFileStreamPath, getMainLooper, getObbDir, getObbDirs, getPackageCodePath, getPackageManager, getPackageName, getPackageResourcePath, getSharedPreferences, getWallpaper, getWallpaperDesiredMinimumHeight, getWallpaperDesiredMinimumWidth, grantUriPermission, isRestricted, openFileInput, openFileOutput, openOrCreateDatabase, openOrCreateDatabase, peekWallpaper, registerReceiver, registerReceiver, removeStickyBroadcast, removeStickyBroadcastAsUser, revokeUriPermission, sendBroadcast, sendBroadcast, sendBroadcastAsUser, sendBroadcastAsUser, sendOrderedBroadcast, sendOrderedBroadcast, sendOrderedBroadcastAsUser, sendStickyBroadcast, sendStickyBroadcastAsUser, sendStickyOrderedBroadcast, sendStickyOrderedBroadcastAsUser, setWallpaper, setWallpaper, startInstrumentation, startService, stopService, unbindService, unregisterReceiver
 
Methods inherited from class android.content.Context
getString, getString, getText, obtainStyledAttributes, obtainStyledAttributes, obtainStyledAttributes, obtainStyledAttributes, registerComponentCallbacks, unregisterComponentCallbacks
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

recordingButton

private Button recordingButton
The recording button.


trainingDataUpdateButton

private Button trainingDataUpdateButton
The button for feature extraction.


evaluationButton

private Button evaluationButton
The button for evaluation.


modelCreationButton

private Button modelCreationButton
The button for model creation from current configuration.


featureExtractionConfigChanged

private final AtomicBoolean featureExtractionConfigChanged
The flag for configuration changes, which does affect the extracted features.


dbManager

private DBManager dbManager
A reference to the global database manager instance.


nextModelName

private String nextModelName
The selected model name for the model to create as soon as service connection is established


modelCreationIsWaitingForConnection

private final AtomicBoolean modelCreationIsWaitingForConnection
Flag if model creation task is waiting for a connection


linearAccUpdateIsWaitingForConnection

private final AtomicBoolean linearAccUpdateIsWaitingForConnection
Flag if linear acceleration data update is waiting for a connection


dbRawDataUpdateIsWaitingForConnection

private final AtomicBoolean dbRawDataUpdateIsWaitingForConnection
Flag if a raw data in database update task is waiting for connection

Constructor Detail

ActivityMiner

public ActivityMiner()
Constructor

Method Detail

prepare

private final void prepare()

updateButtonStates

protected final void updateButtonStates()
Does update the button states.


onCreate

protected final void onCreate(Bundle savedInstanceState)
Overrides:
onCreate in class ServiceBasedActivity

onConfigurationChanged

public final void onConfigurationChanged(Configuration newConfig)
Specified by:
onConfigurationChanged in interface ComponentCallbacks
Overrides:
onConfigurationChanged in class Activity

onResume

protected final void onResume()
Overrides:
onResume in class ServiceBasedActivity

onDestroy

protected final void onDestroy()
Overrides:
onDestroy in class SharedPreferenceChangeAwareActivity

onCreateOptionsMenu

public final boolean onCreateOptionsMenu(Menu menu)
Overrides:
onCreateOptionsMenu in class Activity

onPrepareOptionsMenu

public final boolean onPrepareOptionsMenu(Menu menu)
Overrides:
onPrepareOptionsMenu in class Activity

onOptionsItemSelected

public final boolean onOptionsItemSelected(MenuItem item)
Overrides:
onOptionsItemSelected in class Activity

onActivityConfiguration

private final boolean onActivityConfiguration()
Option menu handler for activity management.

Returns:
true if successful, false otherwise

onDeleteData

private final boolean onDeleteData()
Option menu handler for data deletion.

Returns:
true if successful, false otherwise

onDBManagement

private final boolean onDBManagement()
Option menu handler for DB statistic.

Returns:
true if successful, false otherwise

onRecording

private final void onRecording()
Option menu handler for the recording of labeled training samples.


onTrainingDataUpdate

protected final void onTrainingDataUpdate()
Option menu handler for training data update.


onEvaluation

protected final void onEvaluation()
Option menu handler for evaluation.


onModelCreation

protected final void onModelCreation()
Handler for model creation from the current configuration


onActivityResult

protected final void onActivityResult(int requestCode,
                                      int resultCode,
                                      Intent data)
Overrides:
onActivityResult in class Activity

onConfiguration

private final boolean onConfiguration()
Option menu handler for configuration.

Returns:
true if successful, false otherwise

onServiceFinishedCurrentTask

protected void onServiceFinishedCurrentTask(TaskFinishedEvent event)
Description copied from class: ServiceBasedActivity
Handler for finished service tasks

Specified by:
onServiceFinishedCurrentTask in class ServiceBasedActivity
Parameters:
event - the task finished event

onMinCutOffPreferenceChanged

public final void onMinCutOffPreferenceChanged(double minCutOff)
Description copied from interface: SharedPreferenceChangeObserver
The handler for minimum cut-off frequency preference changes.

Specified by:
onMinCutOffPreferenceChanged in interface SharedPreferenceChangeObserver
Overrides:
onMinCutOffPreferenceChanged in class SharedPreferenceChangeAwareActivity
Parameters:
minCutOff - the new minimum cut-off frequency value

onBetaPreferenceChange

public final void onBetaPreferenceChange(double beta)
Description copied from interface: SharedPreferenceChangeObserver
The handler for beta value preference changes.

Specified by:
onBetaPreferenceChange in interface SharedPreferenceChangeObserver
Overrides:
onBetaPreferenceChange in class SharedPreferenceChangeAwareActivity
Parameters:
beta - the new beta value

onBWFilterOrderPreferenceChanged

public void onBWFilterOrderPreferenceChanged(int order)
Description copied from interface: SharedPreferenceChangeObserver
The handler for Butterworth filter order changes.

Specified by:
onBWFilterOrderPreferenceChanged in interface SharedPreferenceChangeObserver
Overrides:
onBWFilterOrderPreferenceChanged in class SharedPreferenceChangeAwareActivity
Parameters:
order - the new filter order

onSelectedAccFilterChanged

public final void onSelectedAccFilterChanged(FilterTypes filterType)
Description copied from interface: SharedPreferenceChangeObserver
The handler for filter type changes.

Specified by:
onSelectedAccFilterChanged in interface SharedPreferenceChangeObserver
Overrides:
onSelectedAccFilterChanged in class SharedPreferenceChangeAwareActivity
Parameters:
filterType - the filterType

onOverlapSizeChange

public final void onOverlapSizeChange(int overlapSize)
Description copied from interface: SharedPreferenceChangeObserver
The handler for cutOut overlap size parameter changes.

Specified by:
onOverlapSizeChange in interface SharedPreferenceChangeObserver
Overrides:
onOverlapSizeChange in class SharedPreferenceChangeAwareActivity
Parameters:
overlapSize - the new overlap size

onWindowSizeChange

public final void onWindowSizeChange(long windowSize)
Description copied from interface: SharedPreferenceChangeObserver
The handler for cutOut size parameter changes.

Specified by:
onWindowSizeChange in interface SharedPreferenceChangeObserver
Overrides:
onWindowSizeChange in class SharedPreferenceChangeAwareActivity
Parameters:
windowSize - the new cutOut size

onSampleRateChange

public final void onSampleRateChange(long sampleRate)
Description copied from interface: SharedPreferenceChangeObserver
The handler for sample rate changes.

Specified by:
onSampleRateChange in interface SharedPreferenceChangeObserver
Overrides:
onSampleRateChange in class SharedPreferenceChangeAwareActivity
Parameters:
sampleRate - the new sample rate as the milliseconds between two samples

onFeatureSelection

public final void onFeatureSelection(FeatureTypes featureType,
                                     boolean isSelected)
Description copied from interface: SharedPreferenceChangeObserver
The handler for feature selection state changes.

Specified by:
onFeatureSelection in interface SharedPreferenceChangeObserver
Overrides:
onFeatureSelection in class SharedPreferenceChangeAwareActivity
Parameters:
featureType - the feature type identifier
isSelected - the selection state

onFeatureExtractionConfigChanged

private final void onFeatureExtractionConfigChanged()
Handler for configuration changes, which does affect the feature extraction process.


isInterestedInLimitViolations

public final boolean isInterestedInLimitViolations()
Description copied from interface: SharedPreferenceChangeNotificationReceiver
Method to test if limit violations should be notified.

Specified by:
isInterestedInLimitViolations in interface SharedPreferenceChangeNotificationReceiver
Overrides:
isInterestedInLimitViolations in class SharedPreferenceChangeAwareActivity
Returns:
true if interested in notifications, false otherwise

onConnectionEstablished

public final void onConnectionEstablished(IBackgroundService service)
Specified by:
onConnectionEstablished in interface GenericServiceConnectionHolder.ServiceConnectionEventReceiver<IBackgroundService>
Overrides:
onConnectionEstablished in class ServiceBasedActivity

doCreateModel

protected final void doCreateModel(String modelName)
Database import

Parameters:
modelName - the model name

doUpdateLinearAccelerationData

public final void doUpdateLinearAccelerationData()
Linear acceleration value update in the background.


doDBRawDataUpdate

public final void doDBRawDataUpdate()
DB raw data update in the background.


onOwnLinAccImplementationUsageFlagChange

public void onOwnLinAccImplementationUsageFlagChange(boolean useInternalLinAccImpl)
Description copied from interface: SharedPreferenceChangeObserver
The handler for changes of the internal linear acceleration implementation usage flag.

Specified by:
onOwnLinAccImplementationUsageFlagChange in interface SharedPreferenceChangeObserver
Overrides:
onOwnLinAccImplementationUsageFlagChange in class SharedPreferenceChangeAwareActivity
Parameters:
useInternalLinAccImpl - the internal linear acceleration implementation usage flag

onGravitationCutOffPreferenceChanged

public void onGravitationCutOffPreferenceChanged(double cutOff)
Description copied from interface: SharedPreferenceChangeObserver
The handler for gravitation filter cut-off frequency preference changes.

Specified by:
onGravitationCutOffPreferenceChanged in interface SharedPreferenceChangeObserver
Overrides:
onGravitationCutOffPreferenceChanged in class SharedPreferenceChangeAwareActivity
Parameters:
cutOff - the new cut-off frequency value

onAboutToDisconnect

public final void onAboutToDisconnect(IBackgroundService service)
Specified by:
onAboutToDisconnect in interface GenericServiceConnectionHolder.ServiceConnectionEventReceiver<IBackgroundService>
Overrides:
onAboutToDisconnect in class ServiceBasedActivity

onConnectionLost

public final void onConnectionLost()
Specified by:
onConnectionLost in interface GenericServiceConnectionHolder.ServiceConnectionEventReceiver<IBackgroundService>
Overrides:
onConnectionLost in class ServiceBasedActivity

onEvent

public final void onEvent(ObservableEventSource<? extends TaskFinishedEvent> eventSource,
                          TaskFinishedEvent observedEvent)
Specified by:
onEvent in interface EventObserver<TaskFinishedEvent>

onLocationDataUsageFlagChange

public void onLocationDataUsageFlagChange(boolean useLocationData)
Description copied from interface: SharedPreferenceChangeObserver
The handler for changes of location data usage flag

Specified by:
onLocationDataUsageFlagChange in interface SharedPreferenceChangeObserver
Overrides:
onLocationDataUsageFlagChange in class SharedPreferenceChangeAwareActivity
Parameters:
useLocationData - the new location data usage flag