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