edu.whs.spin2018.baoapp.service

## Class BaoService

- java.lang.Object
- - android.content.Context
  - - android.content.ContextWrapper
    - - android.app.Service
      - - edu.whs.spin2018.baoapp.service.BaoService

- All Implemented Interfaces:
    android.content.ComponentCallbacks, android.content.ComponentCallbacks2, BaoServiceInterface

      public class BaoService
      extends android.app.Service
      implements BaoServiceInterface

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `class` | `BaoService.LocalBinder`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static java.lang.String` | `TAG`

    - ### Fields inherited from class android.app.Service

      `START_CONTINUATION_MASK, START_FLAG_REDELIVERY, START_FLAG_RETRY, START_NOT_STICKY, START_REDELIVER_INTENT, START_STICKY, START_STICKY_COMPATIBILITY, STOP_FOREGROUND_DETACH, STOP_FOREGROUND_REMOVE`

    - ### Fields inherited from class android.content.Context

      `ACCESSIBILITY_SERVICE, ACCOUNT_SERVICE, ACTIVITY_SERVICE, ALARM_SERVICE, APP_OPS_SERVICE, APPWIDGET_SERVICE, AUDIO_SERVICE, BATTERY_SERVICE, BIND_ABOVE_CLIENT, BIND_ADJUST_WITH_ACTIVITY, BIND_ALLOW_OOM_MANAGEMENT, BIND_AUTO_CREATE, BIND_DEBUG_UNBIND, BIND_EXTERNAL_SERVICE, BIND_IMPORTANT, BIND_NOT_FOREGROUND, BIND_WAIVE_PRIORITY, BLUETOOTH_SERVICE, CAMERA_SERVICE, CAPTIONING_SERVICE, CARRIER_CONFIG_SERVICE, CLIPBOARD_SERVICE, COMPANION_DEVICE_SERVICE, CONNECTIVITY_SERVICE, CONSUMER_IR_SERVICE, CONTEXT_IGNORE_SECURITY, CONTEXT_INCLUDE_CODE, CONTEXT_RESTRICTED, CROSS_PROFILE_APPS_SERVICE, DEVICE_POLICY_SERVICE, DISPLAY_SERVICE, DOWNLOAD_SERVICE, DROPBOX_SERVICE, EUICC_SERVICE, FINGERPRINT_SERVICE, HARDWARE_PROPERTIES_SERVICE, INPUT_METHOD_SERVICE, INPUT_SERVICE, IPSEC_SERVICE, JOB_SCHEDULER_SERVICE, KEYGUARD_SERVICE, LAUNCHER_APPS_SERVICE, LAYOUT_INFLATER_SERVICE, LOCATION_SERVICE, MEDIA_PROJECTION_SERVICE, MEDIA_ROUTER_SERVICE, MEDIA_SESSION_SERVICE, MIDI_SERVICE, MODE_APPEND, MODE_ENABLE_WRITE_AHEAD_LOGGING, MODE_MULTI_PROCESS, MODE_NO_LOCALIZED_COLLATORS, MODE_PRIVATE, MODE_WORLD_READABLE, MODE_WORLD_WRITEABLE, NETWORK_STATS_SERVICE, NFC_SERVICE, NOTIFICATION_SERVICE, NSD_SERVICE, POWER_SERVICE, PRINT_SERVICE, RECEIVER_VISIBLE_TO_INSTANT_APPS, RESTRICTIONS_SERVICE, SEARCH_SERVICE, SENSOR_SERVICE, SHORTCUT_SERVICE, STORAGE_SERVICE, STORAGE_STATS_SERVICE, SYSTEM_HEALTH_SERVICE, TELECOM_SERVICE, TELEPHONY_SERVICE, TELEPHONY_SUBSCRIPTION_SERVICE, TEXT_CLASSIFICATION_SERVICE, TEXT_SERVICES_MANAGER_SERVICE, TV_INPUT_SERVICE, UI_MODE_SERVICE, USAGE_STATS_SERVICE, USB_SERVICE, USER_SERVICE, VIBRATOR_SERVICE, WALLPAPER_SERVICE, WIFI_AWARE_SERVICE, WIFI_P2P_SERVICE, WIFI_RTT_RANGING_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

    Constructors
    Constructor and Description
    `BaoService()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `entferneListener(java.lang.String event, io.socket.emitter.Emitter.Listener listener)` Entfernt einen zuvor registrierten Listener
    `android.os.IBinder` | `onBind(android.content.Intent intent)`
    `void` | `onCreate()`
    `int` | `onStartCommand(android.content.Intent intent, int flags, int startId)`
    `void` | `onTaskRemoved(android.content.Intent rootIntent)`
    `void` | `raumBetreten(java.lang.String raum)` Betritt einen Raum auf dem Server.
    `void` | `raumVerlassen(java.lang.String raum)` Verlaesst einen Raum.
    `void` | `registriereBenutzerListeErhaltenListener(io.socket.emitter.Emitter.Listener listener)` Registriert einen neuen Listener fuer das "zeigeUserImRaum" Event am Websocket.
    `void` | `registriereBenutzerTrittRaumBeiListener(io.socket.emitter.Emitter.Listener listener)` Registriert einen neuen Listener fuer das "userTrittRaumBei" Event am Websocket.
    `void` | `registriereBenutzerVerlaesstRaumListener(io.socket.emitter.Emitter.Listener listener)` Registriert einen neuen Listener fuer das "userVerlaesstRaum" Event am Websocket.
    `void` | `registriereNachrichtenListener(io.socket.emitter.Emitter.Listener listener)` Registriert einen neuen Listener fuer das "nachricht" Event am Websocket.
    `void` | `registriereVerbundenListener(io.socket.emitter.Emitter.Listener listener)` Registriert einen neuen Listener fuer das "verbunden" Event am Websocket.
    `void` | `sendeBroadcast(java.lang.String inhalt, java.lang.String typ, java.lang.String raum)` Sendet wie sendeNachricht eine Nachricht an den Server, aber nicht nur an einen Benutzer als Empfaenger, sondern an alle Benutzer, die sich in einem angegebenen Raum befinden.
    `void` | `sendeNachricht(java.lang.String inhalt, java.lang.String typ, java.lang.String empfaengerUUID)` Sendet eine Nachricht an genau einen Empfaenger, der auch mit dem Server verbunden ist.
    `void` | `trennen()` Trennt die Verbindung zum Server.
    `void` | `verbinden(java.lang.String benutzername, java.lang.String uuid)` Baut die Verbindung zum Server auf
    `void` | `zeigeBenutzerImRaum(java.lang.String raum)` Fordert eine Liste mit allen Clients aus einem Raum auf dem Server an.

    - ### Methods inherited from class android.app.Service

      `dump, getApplication, onConfigurationChanged, onDestroy, onLowMemory, onRebind, onStart, onTrimMemory, onUnbind, startForeground, stopForeground, stopForeground, stopSelf, stopSelf, stopSelfResult`

    - ### Methods inherited from class android.content.ContextWrapper

      `attachBaseContext, bindService, checkCallingOrSelfPermission, checkCallingOrSelfUriPermission, checkCallingPermission, checkCallingUriPermission, checkPermission, checkSelfPermission, checkUriPermission, checkUriPermission, clearWallpaper, createConfigurationContext, createContextForSplit, createDeviceProtectedStorageContext, createDisplayContext, createPackageContext, databaseList, deleteDatabase, deleteFile, deleteSharedPreferences, enforceCallingOrSelfPermission, enforceCallingOrSelfUriPermission, enforceCallingPermission, enforceCallingUriPermission, enforcePermission, enforceUriPermission, enforceUriPermission, fileList, getApplicationContext, getApplicationInfo, getAssets, getBaseContext, getCacheDir, getClassLoader, getCodeCacheDir, getContentResolver, getDatabasePath, getDataDir, getDir, getExternalCacheDir, getExternalCacheDirs, getExternalFilesDir, getExternalFilesDirs, getExternalMediaDirs, getFilesDir, getFileStreamPath, getMainExecutor, getMainLooper, getNoBackupFilesDir, getObbDir, getObbDirs, getPackageCodePath, getPackageManager, getPackageName, getPackageResourcePath, getResources, getSharedPreferences, getSystemService, getSystemServiceName, getTheme, getWallpaper, getWallpaperDesiredMinimumHeight, getWallpaperDesiredMinimumWidth, grantUriPermission, isDeviceProtectedStorage, isRestricted, moveDatabaseFrom, moveSharedPreferencesFrom, openFileInput, openFileOutput, openOrCreateDatabase, openOrCreateDatabase, peekWallpaper, registerReceiver, registerReceiver, registerReceiver, registerReceiver, removeStickyBroadcast, removeStickyBroadcastAsUser, revokeUriPermission, revokeUriPermission, sendBroadcast, sendBroadcast, sendBroadcastAsUser, sendBroadcastAsUser, sendOrderedBroadcast, sendOrderedBroadcast, sendOrderedBroadcastAsUser, sendStickyBroadcast, sendStickyBroadcastAsUser, sendStickyOrderedBroadcast, sendStickyOrderedBroadcastAsUser, setTheme, setWallpaper, setWallpaper, startActivities, startActivities, startActivity, startActivity, startForegroundService, startInstrumentation, startIntentSender, startIntentSender, startService, stopService, unbindService, unregisterReceiver`

    - ### Methods inherited from class android.content.Context

      `getColor, getColorStateList, getDrawable, getString, getString, getSystemService, 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

    - #### TAG

          public static final java.lang.String TAG

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### BaoService

          public BaoService()

  - ### Method Detail

    - #### onBind

          @Nullable
          public android.os.IBinder onBind(android.content.Intent intent)

      Specified by:
        `onBind` in class `android.app.Service`

    - #### onCreate

          public void onCreate()

      Overrides:
        `onCreate` in class `android.app.Service`

    - #### onStartCommand

          public int onStartCommand(android.content.Intent intent,
                                    int flags,
                                    int startId)

      Overrides:
        `onStartCommand` in class `android.app.Service`

    - #### verbinden

          public void verbinden(java.lang.String benutzername,
                                java.lang.String uuid)

      Description copied from interface: `BaoServiceInterface`
      Baut die Verbindung zum Server auf
      Specified by:
        `verbinden` in interface `BaoServiceInterface`

    - #### trennen

          public void trennen()

      Description copied from interface: `BaoServiceInterface`
      Trennt die Verbindung zum Server.
      Specified by:
        `trennen` in interface `BaoServiceInterface`

    - #### raumBetreten

          public void raumBetreten(java.lang.String raum)

      Description copied from interface: `BaoServiceInterface`
      Betritt einen Raum auf dem Server. Broadcasts in diesem Raum koennen danach empfangen werden. Andere Raeume werden nicht automatisch verlassen.
      Specified by:
        `raumBetreten` in interface `BaoServiceInterface`
      Parameters:
        `raum` - Raum, der betreten wird

    - #### raumVerlassen

          public void raumVerlassen(java.lang.String raum)

      Description copied from interface: `BaoServiceInterface`
      Verlaesst einen Raum. Broadcasts in diesem Raum werden danach nicht mehr empfangen.
      Specified by:
        `raumVerlassen` in interface `BaoServiceInterface`
      Parameters:
        `raum` - - Raum der verlassen werden soll

    - #### zeigeBenutzerImRaum

          public void zeigeBenutzerImRaum(java.lang.String raum)

      Description copied from interface: `BaoServiceInterface`
      Fordert eine Liste mit allen Clients aus einem Raum auf dem Server an.

      Wenn der Server diese Anfrage beantwortet, wird an alle, die Broadcasts vom BaoService erhalten, ein Broadcast gesendet. In dem Intent, den man erhaelt ist unter "inhalt" ein JSONObject (data). In data ist unter dem Extra "inhalt" ein JSONArray (benutzerArray). In jedem Feld von benutzerArray ist ein JSONObject (jsonUser). Jeder jsonUser hat die Felder "benutzername" und "UUID".

      Specified by:
        `zeigeBenutzerImRaum` in interface `BaoServiceInterface`
      Parameters:
        `raum` - Der Raum, dessen Clients gesendet werden sollen.

    - #### sendeNachricht

          public void sendeNachricht(java.lang.String inhalt,
                                     java.lang.String typ,
                                     java.lang.String empfaengerUUID)

      Description copied from interface: `BaoServiceInterface`
      Sendet eine Nachricht an genau einen Empfaenger, der auch mit dem Server verbunden ist.
      Specified by:
        `sendeNachricht` in interface `BaoServiceInterface`
      Parameters:
        `inhalt` - Inhalt der Nachricht
        `typ` - Eine Beschreibung der Nachricht (z.B. "Spielzug")
        `empfaengerUUID` - UUID, ueber die der Empfaenger identifiziert werden kann.

    - #### sendeBroadcast

          public void sendeBroadcast(java.lang.String inhalt,
                                     java.lang.String typ,
                                     java.lang.String raum)

      Description copied from interface: `BaoServiceInterface`
      Sendet wie sendeNachricht eine Nachricht an den Server, aber nicht nur an einen Benutzer als Empfaenger, sondern an alle Benutzer, die sich in einem angegebenen Raum befinden.
      Specified by:
        `sendeBroadcast` in interface `BaoServiceInterface`
      Parameters:
        `inhalt` - Inhalt der Nachricht
        `typ` - Beschreibung der Nachricht
        `raum` - Alle Benutzer dieses Raumes erhalten die Nachricht.

    - #### registriereNachrichtenListener

          public void registriereNachrichtenListener(io.socket.emitter.Emitter.Listener listener)

      Description copied from interface: `BaoServiceInterface`
      Registriert einen neuen Listener fuer das "nachricht" Event am Websocket.
      Specified by:
        `registriereNachrichtenListener` in interface `BaoServiceInterface`
      Parameters:
        `listener` - - zu registrierender Listener

    - #### registriereBenutzerVerlaesstRaumListener

          public void registriereBenutzerVerlaesstRaumListener(io.socket.emitter.Emitter.Listener listener)

      Description copied from interface: `BaoServiceInterface`
      Registriert einen neuen Listener fuer das "userVerlaesstRaum" Event am Websocket.
      Specified by:
        `registriereBenutzerVerlaesstRaumListener` in interface `BaoServiceInterface`
      Parameters:
        `listener` - - zu registrierender Listener

    - #### registriereBenutzerTrittRaumBeiListener

          public void registriereBenutzerTrittRaumBeiListener(io.socket.emitter.Emitter.Listener listener)

      Description copied from interface: `BaoServiceInterface`
      Registriert einen neuen Listener fuer das "userTrittRaumBei" Event am Websocket.
      Specified by:
        `registriereBenutzerTrittRaumBeiListener` in interface `BaoServiceInterface`
      Parameters:
        `listener` - - zu registrierender Listener

    - #### registriereVerbundenListener

          public void registriereVerbundenListener(io.socket.emitter.Emitter.Listener listener)

      Description copied from interface: `BaoServiceInterface`
      Registriert einen neuen Listener fuer das "verbunden" Event am Websocket.
      Specified by:
        `registriereVerbundenListener` in interface `BaoServiceInterface`
      Parameters:
        `listener` - - zu registrierender Listener

    - #### registriereBenutzerListeErhaltenListener

          public void registriereBenutzerListeErhaltenListener(io.socket.emitter.Emitter.Listener listener)

      Description copied from interface: `BaoServiceInterface`
      Registriert einen neuen Listener fuer das "zeigeUserImRaum" Event am Websocket.
      Specified by:
        `registriereBenutzerListeErhaltenListener` in interface `BaoServiceInterface`
      Parameters:
        `listener` - - zu registrierender Listener

    - #### entferneListener

          public void entferneListener(java.lang.String event,
                                       io.socket.emitter.Emitter.Listener listener)

      Description copied from interface: `BaoServiceInterface`
      Entfernt einen zuvor registrierten Listener
      Specified by:
        `entferneListener` in interface `BaoServiceInterface`
      Parameters:
        `event` - - Event, auf das der Listener registriert wurde
        `listener` - - Listener, der entfernt werden soll

    - #### onTaskRemoved

          public void onTaskRemoved(android.content.Intent rootIntent)

      Overrides:
        `onTaskRemoved` in class `android.app.Service`