Skip to content

Commit b831b3f

Browse files
authored
Merge branch 'development' into FixedSearch
2 parents d1504a2 + 3799b9d commit b831b3f

File tree

10 files changed

+48
-19
lines changed

10 files changed

+48
-19
lines changed

app/build.gradle

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,11 @@ dependencies {
140140
implementation "com.jakewharton:butterknife:${rootConfiguration.butterKnifeVersion}"
141141
kapt "com.jakewharton:butterknife-compiler:${rootConfiguration.butterKnifeVersion}"
142142

143+
//koin
144+
implementation "org.koin:koin-android-scope:${rootConfiguration.koinVersion}"
145+
implementation "org.koin:koin-android:${rootConfiguration.koinVersion}"
146+
testImplementation "org.koin:koin-test:${rootConfiguration.koinVersion}"
147+
143148
//For Picasso
144149
implementation "com.squareup.picasso:picasso:${rootConfiguration.picassoVersion}"
145150

app/config.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,4 +26,5 @@ ext {
2626
playServiceAuthVersion='16.0.1'
2727
shimmerVersion = "0.5.0"
2828
stethoVersion = "1.5.1"
29+
koinVersion = "2.0.1"
2930
}

app/src/main/java/org/fossasia/susi/ai/MainApplication.kt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ import com.facebook.stetho.Stetho
88
import com.squareup.leakcanary.LeakCanary
99
import io.realm.Realm
1010
import io.realm.RealmConfiguration
11+
import org.fossasia.susi.ai.di.modules
12+
import org.koin.android.ext.koin.androidContext
13+
import org.koin.core.context.startKoin
1114
import timber.log.Timber
1215

1316
class MainApplication : Application() {
@@ -24,6 +27,10 @@ class MainApplication : Application() {
2427

2528
override fun onCreate() {
2629
super.onCreate()
30+
startKoin {
31+
androidContext(this@MainApplication)
32+
modules(listOf(modules))
33+
}
2734

2835
if (LeakCanary.isInAnalyzerProcess(this)) {
2936
// This process is dedicated to LeakCanary for heap analysis.

app/src/main/java/org/fossasia/susi/ai/device/connecteddevices/ConnectedDeviceFragment.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,13 @@ import org.fossasia.susi.ai.device.connecteddevices.adapters.ConnectedDevicesAda
2020
import org.fossasia.susi.ai.device.connecteddevices.contract.IConnectedDevicePresenter
2121
import org.fossasia.susi.ai.device.connecteddevices.contract.IConnectedDeviceView
2222
import org.fossasia.susi.ai.rest.responses.susi.Device
23+
import org.koin.android.ext.android.inject
24+
import org.koin.core.parameter.parametersOf
2325

2426
class ConnectedDeviceFragment : Fragment(), IConnectedDeviceView {
2527

2628
private lateinit var connectedDeviceRecyclerView: RecyclerView
27-
private lateinit var connectedDevicePresenter: IConnectedDevicePresenter
29+
private val connectedDevicePresenter: IConnectedDevicePresenter by inject { parametersOf(this) }
2830
private var connectedDevicesAdapter: RecyclerView.Adapter<*>? = null
2931
private val connectedDeviceList: ArrayList<Device> = ArrayList()
3032
private val macIdList: MutableList<String> = ArrayList()
@@ -45,8 +47,6 @@ class ConnectedDeviceFragment : Fragment(), IConnectedDeviceView {
4547
}
4648

4749
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
48-
connectedDevicePresenter = ConnectedDevicePresenter(this)
49-
connectedDevicePresenter.onAttach(this)
5050
getDeviceList()
5151

5252
refresh_device_layout.setOnRefreshListener {

app/src/main/java/org/fossasia/susi/ai/device/connecteddevices/ConnectedDevicePresenter.kt

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,13 @@ import org.fossasia.susi.ai.rest.responses.susi.ConnectedDevicesResponse
88
import retrofit2.Response
99
import timber.log.Timber
1010

11-
class ConnectedDevicePresenter(val connectedDeviceFragment: ConnectedDeviceFragment) :
11+
class ConnectedDevicePresenter(private val connectedDeviceView: IConnectedDeviceView) :
1212
IConnectedDevicePresenter,
1313
IRoomModel.onConnectedDeviceFetchingFinishedListener {
1414

1515
private val roomModel: RoomModel = RoomModel()
16-
private var connectedDeviceView: IConnectedDeviceView? = null
1716

1817
override fun onAttach(connectedDeviceView: IConnectedDeviceView) {
19-
this.connectedDeviceView = connectedDeviceView
2018
}
2119

2220
override fun getDevices() {

app/src/main/java/org/fossasia/susi/ai/device/viewdevice/ViewDeviceFragment.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,13 @@ import org.fossasia.susi.ai.dataclasses.AddDeviceQuery
3232
import org.fossasia.susi.ai.device.DeviceActivity.Companion.DEVICE_DETAILS
3333
import org.fossasia.susi.ai.device.DeviceActivity.Companion.MAC_ID
3434
import org.fossasia.susi.ai.device.viewdevice.adapters.ShowRoomsAdapter
35+
import org.fossasia.susi.ai.device.viewdevice.contract.IViewDevicePresenter
3536
import org.fossasia.susi.ai.device.viewdevice.contract.IViewDeviceView
3637
import org.fossasia.susi.ai.helper.Constant
3738
import org.fossasia.susi.ai.helper.PrefManager
3839
import org.fossasia.susi.ai.rest.responses.susi.Device
40+
import org.koin.android.ext.android.inject
41+
import org.koin.core.parameter.parametersOf
3942

4043
class ViewDeviceFragment : Fragment(), IViewDeviceView {
4144

@@ -49,7 +52,7 @@ class ViewDeviceFragment : Fragment(), IViewDeviceView {
4952
private lateinit var availableRoomsRecyclerView: RecyclerView
5053
private var availableRoomsAdapter: RecyclerView.Adapter<*>? = null
5154
private var roomNameSelected: String? = null
52-
private lateinit var viewDevicePresenter: ViewDevicePresenter
55+
private val viewDevicePresenter: IViewDevicePresenter by inject { parametersOf(this) }
5356
private lateinit var progressDialog: ProgressDialog
5457

5558
override fun onCreateView(
@@ -75,7 +78,6 @@ class ViewDeviceFragment : Fragment(), IViewDeviceView {
7578
realm = Realm.getDefaultInstance()
7679
progressDialog = ProgressDialog(context)
7780

78-
viewDevicePresenter = ViewDevicePresenter()
7981
viewDevicePresenter.onAttach(this, macId, device, requireContext())
8082

8183
initialSetUp()

app/src/main/java/org/fossasia/susi/ai/device/viewdevice/ViewDevicePresenter.kt

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,8 @@ import org.fossasia.susi.ai.rest.responses.susi.GetAddDeviceResponse
1515
import retrofit2.Response
1616
import timber.log.Timber
1717

18-
class ViewDevicePresenter : IViewDevicePresenter, IRoomModel.onAddDeviceListener {
18+
class ViewDevicePresenter(private val viewDeviceView: IViewDeviceView) : IViewDevicePresenter, IRoomModel.onAddDeviceListener {
1919

20-
private lateinit var viewDeviceView: IViewDeviceView
2120
private var macId: String? = null
2221
private var device: Device? = null
2322
private lateinit var realm: Realm
@@ -26,7 +25,6 @@ class ViewDevicePresenter : IViewDevicePresenter, IRoomModel.onAddDeviceListener
2625
private lateinit var utilModel: UtilModel
2726

2827
override fun onAttach(viewDeviceView: IViewDeviceView, macId: String?, device: Device?, context: Context) {
29-
this.viewDeviceView = viewDeviceView
3028
this.macId = macId
3129
this.device = device
3230
this.context = context
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package org.fossasia.susi.ai.di
2+
3+
import org.fossasia.susi.ai.device.connecteddevices.ConnectedDevicePresenter
4+
import org.fossasia.susi.ai.device.connecteddevices.contract.IConnectedDevicePresenter
5+
import org.fossasia.susi.ai.device.connecteddevices.contract.IConnectedDeviceView
6+
import org.fossasia.susi.ai.device.viewdevice.ViewDevicePresenter
7+
import org.fossasia.susi.ai.device.viewdevice.contract.IViewDevicePresenter
8+
import org.fossasia.susi.ai.device.viewdevice.contract.IViewDeviceView
9+
import org.fossasia.susi.ai.skills.groupwiseskills.GroupWiseSkillsPresenter
10+
import org.fossasia.susi.ai.skills.groupwiseskills.contract.IGroupWiseSkillsPresenter
11+
import org.fossasia.susi.ai.skills.groupwiseskills.contract.IGroupWiseSkillsView
12+
import org.koin.core.module.Module
13+
import org.koin.dsl.module
14+
15+
val modules: Module = module(override = true) {
16+
17+
factory<IGroupWiseSkillsPresenter> { (view: IGroupWiseSkillsView) -> GroupWiseSkillsPresenter(view) }
18+
19+
factory<IConnectedDevicePresenter> { (view: IConnectedDeviceView) -> ConnectedDevicePresenter(view) }
20+
21+
factory<IViewDevicePresenter> { (view: IViewDeviceView) -> ViewDevicePresenter(view) }
22+
}

app/src/main/java/org/fossasia/susi/ai/skills/groupwiseskills/GroupWiseSkillsFragment.kt

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ import android.view.View
1313
import android.view.ViewGroup
1414
import android.widget.Toast
1515
import com.facebook.shimmer.ShimmerFrameLayout
16-
import kotlin.collections.ArrayList
1716
import kotlinx.android.synthetic.main.fragment_group_wise_skill_listing.*
1817
import org.fossasia.susi.ai.R
1918
import org.fossasia.susi.ai.dataclasses.GroupWiseSkills
@@ -26,6 +25,8 @@ import org.fossasia.susi.ai.skills.groupwiseskills.adapters.recycleradapters.Ski
2625
import org.fossasia.susi.ai.skills.groupwiseskills.contract.IGroupWiseSkillsPresenter
2726
import org.fossasia.susi.ai.skills.groupwiseskills.contract.IGroupWiseSkillsView
2827
import org.fossasia.susi.ai.skills.skillSearch.SearchSkillFragment
28+
import org.koin.android.ext.android.inject
29+
import org.koin.core.parameter.parametersOf
2930
import timber.log.Timber
3031

3132
/**
@@ -34,7 +35,7 @@ import timber.log.Timber
3435
*/
3536
class GroupWiseSkillsFragment : Fragment(), IGroupWiseSkillsView, SwipeRefreshLayout.OnRefreshListener {
3637
private lateinit var skillAdapterSnapHelper: SnapHelper
37-
private lateinit var groupWiseSkillsPresenter: IGroupWiseSkillsPresenter
38+
private val groupWiseSkillsPresenter: IGroupWiseSkillsPresenter by inject { parametersOf(this) }
3839
private var skills = GroupWiseSkills("", ArrayList())
3940
private lateinit var skillsAdapter: SkillsListAdapter
4041
private lateinit var skillCallback: SkillFragmentCallback
@@ -67,8 +68,6 @@ class GroupWiseSkillsFragment : Fragment(), IGroupWiseSkillsView, SwipeRefreshLa
6768
@NonNull
6869
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
6970
activity?.title = this.skills.group
70-
groupWiseSkillsPresenter = GroupWiseSkillsPresenter(this)
71-
groupWiseSkillsPresenter.onAttach(this)
7271
swipeRefreshLayout.setOnRefreshListener(this)
7372
setUPAdapter()
7473
groupWiseSkillsPresenter.getSkills(swipeRefreshLayout.isRefreshing, skills.group)

app/src/main/java/org/fossasia/susi/ai/skills/groupwiseskills/GroupWiseSkillsPresenter.kt

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,12 @@ import timber.log.Timber
1919
*
2020
* Created by arundhati24 on 16/07/2018.
2121
*/
22-
class GroupWiseSkillsPresenter(val groupWiseSkillsFragment: GroupWiseSkillsFragment) : IGroupWiseSkillsPresenter,
22+
class GroupWiseSkillsPresenter(private val groupWiseSkillsView: IGroupWiseSkillsView) : IGroupWiseSkillsPresenter,
2323
IGroupWiseSkillsModel.OnFetchSkillsFinishedListener {
2424
private var groupWiseSkillsModel: IGroupWiseSkillsModel = GroupWiseSkillsModel()
25-
private var groupWiseSkillsView: IGroupWiseSkillsView? = null
2625
private var skills = GroupWiseSkills("", ArrayList())
2726

2827
override fun onAttach(groupWiseSkillsView: IGroupWiseSkillsView) {
29-
this.groupWiseSkillsView = groupWiseSkillsView
3028
}
3129

3230
override fun getSkills(swipeToRefreshActive: Boolean, group: String) {
@@ -60,6 +58,5 @@ class GroupWiseSkillsPresenter(val groupWiseSkillsFragment: GroupWiseSkillsFragm
6058

6159
override fun onDetach() {
6260
groupWiseSkillsModel.cancelFetch()
63-
groupWiseSkillsView = null
6461
}
6562
}

0 commit comments

Comments
 (0)