diff --git a/src/musikdroid/app/build.gradle b/src/musikdroid/app/build.gradle
index 7e2ce86b1..5dcf37ea8 100644
--- a/src/musikdroid/app/build.gradle
+++ b/src/musikdroid/app/build.gradle
@@ -75,10 +75,7 @@ dependencies {
compileOnly 'org.glassfish:javax.annotation:10.0-b28'
implementation 'com.google.dagger:dagger:2.11'
- implementation 'com.google.dagger:dagger-android:2.11'
- annotationProcessor 'com.google.dagger:dagger-android-processor:2.11'
annotationProcessor 'com.google.dagger:dagger-compiler:2.11'
- kapt 'com.google.dagger:dagger-android-processor:2.11'
kapt 'com.google.dagger:dagger-compiler:2.11'
implementation 'com.neovisionaries:nv-websocket-client:1.31'
diff --git a/src/musikdroid/app/src/main/AndroidManifest.xml b/src/musikdroid/app/src/main/AndroidManifest.xml
index e8a5024e8..e1f9e71ea 100644
--- a/src/musikdroid/app/src/main/AndroidManifest.xml
+++ b/src/musikdroid/app/src/main/AndroidManifest.xml
@@ -51,7 +51,12 @@
-
+
+
diff --git a/src/musikdroid/app/src/main/java/io/casey/musikcube/remote/Application.kt b/src/musikdroid/app/src/main/java/io/casey/musikcube/remote/Application.kt
index b4bd63a20..853473c66 100644
--- a/src/musikdroid/app/src/main/java/io/casey/musikcube/remote/Application.kt
+++ b/src/musikdroid/app/src/main/java/io/casey/musikcube/remote/Application.kt
@@ -1,12 +1,8 @@
package io.casey.musikcube.remote
-import android.app.Activity
import android.arch.persistence.room.Room
import com.crashlytics.android.Crashlytics
import com.facebook.stetho.Stetho
-import dagger.android.AndroidInjector
-import dagger.android.DispatchingAndroidInjector
-import dagger.android.HasActivityInjector
import io.casey.musikcube.remote.injection.DaggerMainComponent
import io.casey.musikcube.remote.injection.MainComponent
import io.casey.musikcube.remote.injection.MainModule
@@ -14,18 +10,14 @@ import io.casey.musikcube.remote.offline.OfflineDb
import io.casey.musikcube.remote.playback.StreamProxy
import io.casey.musikcube.remote.util.NetworkUtil
import io.fabric.sdk.android.Fabric
-import javax.inject.Inject
-
-class Application : android.app.Application(), HasActivityInjector {
- @Inject lateinit var activityInjector: DispatchingAndroidInjector
+class Application : android.app.Application() {
override fun onCreate() {
instance = this
super.onCreate()
mainComponent = DaggerMainComponent.builder().mainModule(MainModule()).build()
- mainComponent.inject(this)
if (BuildConfig.DEBUG) {
Stetho.initializeWithDefaults(this)
@@ -43,10 +35,6 @@ class Application : android.app.Application(), HasActivityInjector {
"offline").build()
}
- override fun activityInjector(): AndroidInjector {
- return activityInjector
- }
-
companion object {
lateinit var mainComponent: MainComponent
diff --git a/src/musikdroid/app/src/main/java/io/casey/musikcube/remote/MainActivity.kt b/src/musikdroid/app/src/main/java/io/casey/musikcube/remote/MainActivity.kt
index cfa8704cc..d5c4200ea 100644
--- a/src/musikdroid/app/src/main/java/io/casey/musikcube/remote/MainActivity.kt
+++ b/src/musikdroid/app/src/main/java/io/casey/musikcube/remote/MainActivity.kt
@@ -4,7 +4,6 @@ import android.app.Dialog
import android.content.Context
import android.content.Intent
import android.content.SharedPreferences
-import android.graphics.drawable.Drawable
import android.net.Uri
import android.os.Bundle
import android.os.Handler
@@ -19,7 +18,6 @@ import android.widget.CheckBox
import android.widget.CompoundButton
import android.widget.SeekBar
import android.widget.TextView
-import dagger.android.AndroidInjection
import io.casey.musikcube.remote.playback.PlaybackService
import io.casey.musikcube.remote.playback.PlaybackState
import io.casey.musikcube.remote.playback.RepeatMode
@@ -62,7 +60,7 @@ class MainActivity : WebSocketActivityBase() {
/* end views */
override fun onCreate(savedInstanceState: Bundle?) {
- AndroidInjection.inject(this)
+ Application.mainComponent.inject(this)
super.onCreate(savedInstanceState)
diff --git a/src/musikdroid/app/src/main/java/io/casey/musikcube/remote/injection/ActivityModule.kt b/src/musikdroid/app/src/main/java/io/casey/musikcube/remote/injection/ActivityModule.kt
deleted file mode 100644
index e45e7e42e..000000000
--- a/src/musikdroid/app/src/main/java/io/casey/musikcube/remote/injection/ActivityModule.kt
+++ /dev/null
@@ -1,30 +0,0 @@
-package io.casey.musikcube.remote.injection
-
-import dagger.Module
-import dagger.android.ContributesAndroidInjector
-import io.casey.musikcube.remote.MainActivity
-import io.casey.musikcube.remote.ui.activity.*
-
-@Module
-abstract class ActivityModule {
- @ContributesAndroidInjector
- abstract fun mainActivityInjector(): MainActivity
-
- @ContributesAndroidInjector
- abstract fun baseActivityInject(): WebSocketActivityBase
-
- @ContributesAndroidInjector
- abstract fun settingsInjector(): SettingsActivity
-
- @ContributesAndroidInjector
- abstract fun albumBrowseInject(): AlbumBrowseActivity
-
- @ContributesAndroidInjector
- abstract fun categoryBrowseInject(): CategoryBrowseActivity
-
- @ContributesAndroidInjector
- abstract fun playQueueInject(): PlayQueueActivity
-
- @ContributesAndroidInjector
- abstract fun trackListInject(): TrackListActivity
-}
diff --git a/src/musikdroid/app/src/main/java/io/casey/musikcube/remote/injection/MainComponent.kt b/src/musikdroid/app/src/main/java/io/casey/musikcube/remote/injection/MainComponent.kt
index 9e25284ac..3ef83693e 100644
--- a/src/musikdroid/app/src/main/java/io/casey/musikcube/remote/injection/MainComponent.kt
+++ b/src/musikdroid/app/src/main/java/io/casey/musikcube/remote/injection/MainComponent.kt
@@ -1,19 +1,28 @@
package io.casey.musikcube.remote.injection
import dagger.Component
-import dagger.android.AndroidInjectionModule
-import dagger.android.AndroidInjector
-import io.casey.musikcube.remote.Application
+import io.casey.musikcube.remote.MainActivity
import io.casey.musikcube.remote.offline.OfflineDb
import io.casey.musikcube.remote.playback.RemotePlaybackService
import io.casey.musikcube.remote.playback.StreamingPlaybackService
+import io.casey.musikcube.remote.ui.activity.*
import io.casey.musikcube.remote.ui.view.EmptyListView
import io.casey.musikcube.remote.ui.view.MainMetadataView
import javax.inject.Singleton
@Singleton
-@Component(modules = arrayOf(AndroidInjectionModule::class, MainModule::class, ActivityModule::class))
-interface MainComponent : AndroidInjector {
+@Component(modules = arrayOf(MainModule::class))
+interface MainComponent {
+ /* activities */
+ fun inject(activity: ConnectionsActivity)
+ fun inject(activity: MainActivity)
+ fun inject(activity: WebSocketActivityBase)
+ fun inject(activity: SettingsActivity)
+ fun inject(activity: AlbumBrowseActivity)
+ fun inject(activity: CategoryBrowseActivity)
+ fun inject(activity: PlayQueueActivity)
+ fun inject(activity: TrackListActivity)
+
/* views */
fun inject(view: EmptyListView)
fun inject(view: MainMetadataView)
diff --git a/src/musikdroid/app/src/main/java/io/casey/musikcube/remote/playback/RemotePlaybackService.kt b/src/musikdroid/app/src/main/java/io/casey/musikcube/remote/playback/RemotePlaybackService.kt
index d1f469e81..000d9866b 100644
--- a/src/musikdroid/app/src/main/java/io/casey/musikcube/remote/playback/RemotePlaybackService.kt
+++ b/src/musikdroid/app/src/main/java/io/casey/musikcube/remote/playback/RemotePlaybackService.kt
@@ -1,6 +1,5 @@
package io.casey.musikcube.remote.playback
-import android.content.Context
import android.os.Handler
import io.casey.musikcube.remote.Application
import io.casey.musikcube.remote.ui.model.TrackListSlidingWindow
diff --git a/src/musikdroid/app/src/main/java/io/casey/musikcube/remote/playback/SystemService.kt b/src/musikdroid/app/src/main/java/io/casey/musikcube/remote/playback/SystemService.kt
index b6cb13803..793ceb4d7 100644
--- a/src/musikdroid/app/src/main/java/io/casey/musikcube/remote/playback/SystemService.kt
+++ b/src/musikdroid/app/src/main/java/io/casey/musikcube/remote/playback/SystemService.kt
@@ -4,6 +4,7 @@ import android.app.*
import android.content.*
import android.graphics.Bitmap
import android.media.AudioManager
+import android.os.Build
import android.os.Handler
import android.os.IBinder
import android.os.PowerManager
@@ -27,7 +28,6 @@ import io.casey.musikcube.remote.util.Debouncer
import io.casey.musikcube.remote.util.Strings
import io.casey.musikcube.remote.websocket.Prefs
import android.support.v4.app.NotificationCompat.Action as NotifAction
-import android.os.Build
/**
* a service used to interact with all of the system media-related components -- notifications,
diff --git a/src/musikdroid/app/src/main/java/io/casey/musikcube/remote/ui/activity/AlbumBrowseActivity.kt b/src/musikdroid/app/src/main/java/io/casey/musikcube/remote/ui/activity/AlbumBrowseActivity.kt
index e531f5454..bc721324b 100644
--- a/src/musikdroid/app/src/main/java/io/casey/musikcube/remote/ui/activity/AlbumBrowseActivity.kt
+++ b/src/musikdroid/app/src/main/java/io/casey/musikcube/remote/ui/activity/AlbumBrowseActivity.kt
@@ -10,6 +10,7 @@ import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import com.pluscubed.recyclerfastscroll.RecyclerFastScroller
+import io.casey.musikcube.remote.Application
import io.casey.musikcube.remote.R
import io.casey.musikcube.remote.playback.Metadata
import io.casey.musikcube.remote.ui.extension.*
@@ -34,6 +35,7 @@ class AlbumBrowseActivity : WebSocketActivityBase(), Filterable {
private lateinit var emptyView: EmptyListView
override fun onCreate(savedInstanceState: Bundle?) {
+ Application.mainComponent.inject(this)
super.onCreate(savedInstanceState)
categoryName = intent.getStringExtra(EXTRA_CATEGORY_NAME) ?: ""
diff --git a/src/musikdroid/app/src/main/java/io/casey/musikcube/remote/ui/activity/CategoryBrowseActivity.kt b/src/musikdroid/app/src/main/java/io/casey/musikcube/remote/ui/activity/CategoryBrowseActivity.kt
index c9af7cdda..cb2103e39 100644
--- a/src/musikdroid/app/src/main/java/io/casey/musikcube/remote/ui/activity/CategoryBrowseActivity.kt
+++ b/src/musikdroid/app/src/main/java/io/casey/musikcube/remote/ui/activity/CategoryBrowseActivity.kt
@@ -10,6 +10,7 @@ import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import com.pluscubed.recyclerfastscroll.RecyclerFastScroller
+import io.casey.musikcube.remote.Application
import io.casey.musikcube.remote.R
import io.casey.musikcube.remote.playback.Metadata
import io.casey.musikcube.remote.ui.extension.*
@@ -41,6 +42,8 @@ class CategoryBrowseActivity : WebSocketActivityBase(), Filterable {
private lateinit var emptyView: EmptyListView
override fun onCreate(savedInstanceState: Bundle?) {
+ Application.mainComponent.inject(this)
+
super.onCreate(savedInstanceState)
category = intent.getStringExtra(EXTRA_CATEGORY)
diff --git a/src/musikdroid/app/src/main/java/io/casey/musikcube/remote/ui/activity/ConnectionsActivity.kt b/src/musikdroid/app/src/main/java/io/casey/musikcube/remote/ui/activity/ConnectionsActivity.kt
new file mode 100644
index 000000000..99549456b
--- /dev/null
+++ b/src/musikdroid/app/src/main/java/io/casey/musikcube/remote/ui/activity/ConnectionsActivity.kt
@@ -0,0 +1,16 @@
+package io.casey.musikcube.remote.ui.activity
+
+import android.os.Bundle
+import android.support.v7.app.AppCompatActivity
+import io.casey.musikcube.remote.Application
+
+/**
+ * Created by casey on 8/21/2017.
+ */
+
+class ConnectionsActivity : AppCompatActivity() {
+ override fun onCreate(savedInstanceState: Bundle?) {
+ Application.mainComponent.inject(this);
+ super.onCreate(savedInstanceState)
+ }
+}
\ No newline at end of file
diff --git a/src/musikdroid/app/src/main/java/io/casey/musikcube/remote/ui/activity/PlayQueueActivity.kt b/src/musikdroid/app/src/main/java/io/casey/musikcube/remote/ui/activity/PlayQueueActivity.kt
index 9960f7443..6172e7a7c 100644
--- a/src/musikdroid/app/src/main/java/io/casey/musikcube/remote/ui/activity/PlayQueueActivity.kt
+++ b/src/musikdroid/app/src/main/java/io/casey/musikcube/remote/ui/activity/PlayQueueActivity.kt
@@ -9,6 +9,7 @@ import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import com.pluscubed.recyclerfastscroll.RecyclerFastScroller
+import io.casey.musikcube.remote.Application
import io.casey.musikcube.remote.R
import io.casey.musikcube.remote.playback.Metadata
import io.casey.musikcube.remote.playback.PlaybackService
@@ -28,6 +29,8 @@ class PlayQueueActivity : WebSocketActivityBase() {
private lateinit var emptyView: EmptyListView
override fun onCreate(savedInstanceState: Bundle?) {
+ Application.mainComponent.inject(this)
+
super.onCreate(savedInstanceState)
playback = playbackService
diff --git a/src/musikdroid/app/src/main/java/io/casey/musikcube/remote/ui/activity/SettingsActivity.kt b/src/musikdroid/app/src/main/java/io/casey/musikcube/remote/ui/activity/SettingsActivity.kt
index 758ea1ff7..6f809010c 100644
--- a/src/musikdroid/app/src/main/java/io/casey/musikcube/remote/ui/activity/SettingsActivity.kt
+++ b/src/musikdroid/app/src/main/java/io/casey/musikcube/remote/ui/activity/SettingsActivity.kt
@@ -12,7 +12,7 @@ import android.support.v7.app.AppCompatActivity
import android.view.Menu
import android.view.MenuItem
import android.widget.*
-import dagger.android.AndroidInjection
+import io.casey.musikcube.remote.Application
import io.casey.musikcube.remote.R
import io.casey.musikcube.remote.playback.PlayerWrapper
import io.casey.musikcube.remote.playback.StreamProxy
@@ -43,7 +43,7 @@ class SettingsActivity : AppCompatActivity() {
@Inject lateinit var wss: WebSocketService
override fun onCreate(savedInstanceState: Bundle?) {
- AndroidInjection.inject(this)
+ Application.mainComponent.inject(this)
super.onCreate(savedInstanceState)
prefs = this.getSharedPreferences(Prefs.NAME, Context.MODE_PRIVATE)
setContentView(R.layout.activity_settings)
diff --git a/src/musikdroid/app/src/main/java/io/casey/musikcube/remote/ui/activity/TrackListActivity.kt b/src/musikdroid/app/src/main/java/io/casey/musikcube/remote/ui/activity/TrackListActivity.kt
index 6922ad293..99f31b731 100644
--- a/src/musikdroid/app/src/main/java/io/casey/musikcube/remote/ui/activity/TrackListActivity.kt
+++ b/src/musikdroid/app/src/main/java/io/casey/musikcube/remote/ui/activity/TrackListActivity.kt
@@ -10,6 +10,7 @@ import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import com.pluscubed.recyclerfastscroll.RecyclerFastScroller
+import io.casey.musikcube.remote.Application
import io.casey.musikcube.remote.R
import io.casey.musikcube.remote.playback.Metadata
import io.casey.musikcube.remote.ui.extension.*
@@ -36,6 +37,8 @@ class TrackListActivity : WebSocketActivityBase(), Filterable {
private var adapter = Adapter()
override fun onCreate(savedInstanceState: Bundle?) {
+ Application.mainComponent.inject(this)
+
super.onCreate(savedInstanceState)
val intent = intent
diff --git a/src/musikdroid/app/src/main/java/io/casey/musikcube/remote/ui/activity/WebSocketActivityBase.kt b/src/musikdroid/app/src/main/java/io/casey/musikcube/remote/ui/activity/WebSocketActivityBase.kt
index e32dab5eb..a5ab5da26 100644
--- a/src/musikdroid/app/src/main/java/io/casey/musikcube/remote/ui/activity/WebSocketActivityBase.kt
+++ b/src/musikdroid/app/src/main/java/io/casey/musikcube/remote/ui/activity/WebSocketActivityBase.kt
@@ -7,12 +7,10 @@ import android.os.Bundle
import android.support.v7.app.AppCompatActivity
import android.view.KeyEvent
import android.view.MenuItem
-
import com.uacf.taskrunner.LifecycleDelegate
import com.uacf.taskrunner.Runner
import com.uacf.taskrunner.Task
-import dagger.android.AndroidInjection
-
+import io.casey.musikcube.remote.Application
import io.casey.musikcube.remote.playback.PlaybackService
import io.casey.musikcube.remote.playback.PlaybackServiceFactory
import io.casey.musikcube.remote.websocket.Prefs
@@ -26,7 +24,7 @@ abstract class WebSocketActivityBase : AppCompatActivity(), Runner.TaskCallbacks
@Inject lateinit var wss: WebSocketService
override fun onCreate(savedInstanceState: Bundle?) {
- AndroidInjection.inject(this)
+ Application.mainComponent.inject(this)
super.onCreate(savedInstanceState)
volumeControlStream = AudioManager.STREAM_MUSIC
runnerDelegate = LifecycleDelegate(this, this, javaClass, null)
diff --git a/src/musikdroid/app/src/main/java/io/casey/musikcube/remote/ui/view/MainMetadataView.kt b/src/musikdroid/app/src/main/java/io/casey/musikcube/remote/ui/view/MainMetadataView.kt
index 484f7c0a1..8b53addd2 100644
--- a/src/musikdroid/app/src/main/java/io/casey/musikcube/remote/ui/view/MainMetadataView.kt
+++ b/src/musikdroid/app/src/main/java/io/casey/musikcube/remote/ui/view/MainMetadataView.kt
@@ -21,7 +21,6 @@ import com.bumptech.glide.load.engine.DiskCacheStrategy
import com.bumptech.glide.load.resource.drawable.GlideDrawable
import com.bumptech.glide.request.RequestListener
import com.bumptech.glide.request.target.Target
-import dagger.android.AndroidInjection
import io.casey.musikcube.remote.Application
import io.casey.musikcube.remote.R
import io.casey.musikcube.remote.playback.*
diff --git a/src/musikdroid/app/src/main/res/layout/activity_conneections.xml b/src/musikdroid/app/src/main/res/layout/activity_conneections.xml
new file mode 100644
index 000000000..3509b8411
--- /dev/null
+++ b/src/musikdroid/app/src/main/res/layout/activity_conneections.xml
@@ -0,0 +1,6 @@
+
+
+
+
\ No newline at end of file