Skip to content

Commit 388d20b

Browse files
authored
Added more presenters in dependency injection modules (#2484)
1 parent 3799b9d commit 388d20b

File tree

18 files changed

+48
-94
lines changed

18 files changed

+48
-94
lines changed

app/src/main/java/org/fossasia/susi/ai/chat/ChatActivity.kt

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,8 @@ import org.fossasia.susi.ai.helper.Constant
5353
import org.fossasia.susi.ai.helper.PrefManager
5454
import org.fossasia.susi.ai.helper.Utils.hideSoftKeyboard
5555
import org.fossasia.susi.ai.skills.SkillsActivity
56+
import org.koin.android.ext.android.inject
57+
import org.koin.core.parameter.parametersOf
5658
import timber.log.Timber
5759

5860
/**
@@ -65,7 +67,7 @@ import timber.log.Timber
6567
@Suppress("UNUSED_PARAMETER", "DEPRECATION")
6668
class ChatActivity : AppCompatActivity(), IChatView {
6769

68-
lateinit var chatPresenter: IChatPresenter
70+
private val chatPresenter: IChatPresenter by inject { parametersOf(this) }
6971
lateinit var youtubeVid: IYoutubeVid
7072
private val PERM_REQ_CODE = 1
7173
private lateinit var recyclerAdapter: ChatFeedRecyclerAdapter
@@ -96,9 +98,6 @@ class ChatActivity : AppCompatActivity(), IChatView {
9698
val firstRun = intent.getBooleanExtra(Constant.FIRST_TIME, false)
9799
gestureDetectorCompat = GestureDetectorCompat(this, CustomGestureListener())
98100

99-
chatPresenter = ChatPresenter(this)
100-
chatPresenter.onAttach(this)
101-
102101
youtubeVid = YoutubeVid(this)
103102
setUpUI()
104103
initializationMethod(firstRun)

app/src/main/java/org/fossasia/susi/ai/chat/ChatPresenter.kt

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -45,12 +45,11 @@ import timber.log.Timber
4545
* The P in MVP
4646
* Created by chiragw15 on 9/7/17.
4747
*/
48-
class ChatPresenter(context: Context) :
48+
class ChatPresenter(context: Context, private val chatView: IChatView?) :
4949
IChatPresenter, IChatModel.OnRetrievingMessagesFinishedListener,
5050
IChatModel.OnLocationFromIPReceivedListener, IChatModel.OnMessageFromSusiReceivedListener,
5151
IDatabaseRepository.OnDatabaseUpdateListener {
5252

53-
private var chatView: IChatView? = null
5453
var chatModel: IChatModel = ChatModel()
5554
private var utilModel: UtilModel = UtilModel(context)
5655
private var databaseRepository: IDatabaseRepository = DatabaseRepository()
@@ -77,10 +76,6 @@ class ChatPresenter(context: Context) :
7776
@Volatile
7877
var queueExecuting = AtomicBoolean(false)
7978

80-
override fun onAttach(chatView: IChatView) {
81-
this.chatView = chatView
82-
}
83-
8479
override fun setUp() {
8580

8681
// find total number of messages and find new message index
@@ -619,6 +614,5 @@ class ChatPresenter(context: Context) :
619614
override fun onDetach() {
620615
locationHelper.removeListener()
621616
databaseRepository.closeDatabase()
622-
chatView = null
623617
}
624618
}

app/src/main/java/org/fossasia/susi/ai/chat/STTfragment.kt

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package org.fossasia.susi.ai.chat
22

3-
import android.content.Context
43
import android.content.Intent
54
import android.os.Bundle
65
import android.os.Handler
@@ -23,24 +22,21 @@ import org.fossasia.susi.ai.R
2322
import org.fossasia.susi.ai.chat.adapters.recycleradapters.VoiceCommandsAdapter
2423
import org.fossasia.susi.ai.chat.contract.IChatPresenter
2524
import org.fossasia.susi.ai.helper.PrefManager
25+
import org.koin.android.ext.android.inject
26+
import org.koin.core.parameter.parametersOf
2627
import timber.log.Timber
2728

2829
/**
2930
* Created by meeera on 17/8/17.
3031
*/
3132
class STTFragment : Fragment() {
3233
lateinit var recognizer: SpeechRecognizer
33-
lateinit var chatPresenter: IChatPresenter
34+
private val chatPresenter: IChatPresenter by inject { parametersOf(this) }
3435
private val thisActivity = activity
3536
private var textToSpeech: TextToSpeech? = null
3637
private val mainHandler: Handler = Handler()
3738
private val subHandler: Handler = Handler()
3839

39-
override fun onAttach(context: Context?) {
40-
super.onAttach(context)
41-
chatPresenter = ChatPresenter(requireContext())
42-
}
43-
4440
@NonNull
4541
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
4642
val rootView = inflater.inflate(R.layout.fragment_sttframe, container, false)
@@ -140,7 +136,6 @@ class STTFragment : Fragment() {
140136
activity?.searchChat?.show()
141137
activity?.voiceSearchChat?.show()
142138
activity?.btnSpeak?.isEnabled = true
143-
chatPresenter.startHotwordDetection()
144139
activity?.supportFragmentManager?.popBackStackImmediate()
145140
}
146141

app/src/main/java/org/fossasia/susi/ai/chat/adapters/recycleradapters/VoiceCommandsAdapter.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ class VoiceCommandsAdapter(val items: ArrayList<String>, val context: Context?)
2020
lateinit var chatPresenter: IChatPresenter
2121

2222
override fun onCreateViewHolder(parent: ViewGroup, p1: Int): ViewHolder {
23-
chatPresenter = ChatPresenter(context as Context)
23+
chatPresenter = ChatPresenter(context as Context, null)
2424
return ViewHolder(LayoutInflater.from(context).inflate(R.layout.item_voice_commands, parent, false))
2525
}
2626

app/src/main/java/org/fossasia/susi/ai/chat/contract/IChatPresenter.kt

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,6 @@ import org.fossasia.susi.ai.rest.responses.susi.SusiResponse
99
*/
1010
interface IChatPresenter {
1111

12-
// At the start of Activity
13-
fun onAttach(chatView: IChatView)
14-
1512
fun retrieveOldMessages(firstRun: Boolean)
1613
fun getUndeliveredMessages()
1714
fun setUp()

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

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,6 @@ class ConnectedDevicePresenter(private val connectedDeviceView: IConnectedDevice
1414

1515
private val roomModel: RoomModel = RoomModel()
1616

17-
override fun onAttach(connectedDeviceView: IConnectedDeviceView) {
18-
}
19-
2017
override fun getDevices() {
2118
roomModel.getConnectedDevices(this)
2219
}

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

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@ package org.fossasia.susi.ai.device.connecteddevices.contract
22

33
interface IConnectedDevicePresenter {
44

5-
fun onAttach(connectedDeviceView: IConnectedDeviceView)
6-
75
fun getDevices()
86

97
fun openViewDevice(position: Int)

app/src/main/java/org/fossasia/susi/ai/di/Modules.kt

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,27 @@
11
package org.fossasia.susi.ai.di
22

3+
import org.fossasia.susi.ai.chat.ChatPresenter
4+
import org.fossasia.susi.ai.chat.contract.IChatPresenter
5+
import org.fossasia.susi.ai.chat.contract.IChatView
36
import org.fossasia.susi.ai.device.connecteddevices.ConnectedDevicePresenter
47
import org.fossasia.susi.ai.device.connecteddevices.contract.IConnectedDevicePresenter
58
import org.fossasia.susi.ai.device.connecteddevices.contract.IConnectedDeviceView
69
import org.fossasia.susi.ai.device.viewdevice.ViewDevicePresenter
710
import org.fossasia.susi.ai.device.viewdevice.contract.IViewDevicePresenter
811
import org.fossasia.susi.ai.device.viewdevice.contract.IViewDeviceView
12+
import org.fossasia.susi.ai.login.LoginPresenter
13+
import org.fossasia.susi.ai.login.contract.ILoginPresenter
14+
import org.fossasia.susi.ai.login.contract.ILoginView
15+
import org.fossasia.susi.ai.signup.SignUpPresenter
16+
import org.fossasia.susi.ai.signup.contract.ISignUpPresenter
17+
import org.fossasia.susi.ai.signup.contract.ISignUpView
918
import org.fossasia.susi.ai.skills.groupwiseskills.GroupWiseSkillsPresenter
1019
import org.fossasia.susi.ai.skills.groupwiseskills.contract.IGroupWiseSkillsPresenter
1120
import org.fossasia.susi.ai.skills.groupwiseskills.contract.IGroupWiseSkillsView
21+
import org.fossasia.susi.ai.skills.settings.SettingsPresenter
22+
import org.fossasia.susi.ai.skills.settings.contract.ISettingsPresenter
23+
import org.fossasia.susi.ai.skills.settings.contract.ISettingsView
24+
import org.koin.android.ext.koin.androidContext
1225
import org.koin.core.module.Module
1326
import org.koin.dsl.module
1427

@@ -19,4 +32,12 @@ val modules: Module = module(override = true) {
1932
factory<IConnectedDevicePresenter> { (view: IConnectedDeviceView) -> ConnectedDevicePresenter(view) }
2033

2134
factory<IViewDevicePresenter> { (view: IViewDeviceView) -> ViewDevicePresenter(view) }
35+
36+
factory<IChatPresenter> { (view: IChatView) -> ChatPresenter(androidContext(), view) }
37+
38+
factory<ILoginPresenter> { (view: ILoginView) -> LoginPresenter(androidContext(), view) }
39+
40+
factory<ISignUpPresenter> { (view: ISignUpView) -> SignUpPresenter(androidContext(), view) }
41+
42+
factory<ISettingsPresenter> { (view: ISettingsView) -> SettingsPresenter(androidContext(), view) }
2243
}

app/src/main/java/org/fossasia/susi/ai/login/LoginActivity.kt

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ import org.fossasia.susi.ai.helper.Utils.hideSoftKeyboard
2222
import org.fossasia.susi.ai.login.contract.ILoginPresenter
2323
import org.fossasia.susi.ai.login.contract.ILoginView
2424
import org.fossasia.susi.ai.signup.SignUpActivity
25+
import org.koin.android.ext.android.inject
26+
import org.koin.core.parameter.parametersOf
2527

2628
/**
2729
* <h1>The Login activity.</h1>
@@ -34,7 +36,7 @@ class LoginActivity : AppCompatActivity(), ILoginView {
3436

3537
lateinit var forgotPasswordProgressDialog: AlertDialog
3638
lateinit var builder: AlertDialog.Builder
37-
private lateinit var loginPresenter: ILoginPresenter
39+
private val loginPresenter: ILoginPresenter by inject { parametersOf(this) }
3840
private lateinit var progressDialog: ProgressDialog
3941

4042
@SuppressLint("InflateParams")
@@ -67,8 +69,8 @@ class LoginActivity : AppCompatActivity(), ILoginView {
6769
cancelRequestPassword()
6870
requestPassword()
6971

70-
loginPresenter = LoginPresenter(this)
7172
loginPresenter.onAttach(this)
73+
7274
val bundle = intent.extras
7375
val string = bundle?.getString("email")
7476
if (string != null)
@@ -208,11 +210,6 @@ class LoginActivity : AppCompatActivity(), ILoginView {
208210
outState.putBoolean(Constant.SERVER, customServer.isChecked)
209211
}
210212

211-
override fun onDestroy() {
212-
loginPresenter.onDetach()
213-
super.onDestroy()
214-
}
215-
216213
override fun resetPasswordSuccess() {
217214
startActivity(Intent(this@LoginActivity, ForgotPass::class.java))
218215
}

app/src/main/java/org/fossasia/susi/ai/login/LoginPresenter.kt

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -35,15 +35,14 @@ import timber.log.Timber
3535
* The P in MVP
3636
* Created by chiragw15 on 4/7/17.
3737
*/
38-
class LoginPresenter(loginActivity: LoginActivity) :
38+
class LoginPresenter(context: Context, private val loginView: ILoginView) :
3939
ILoginPresenter,
4040
ILoginModel.OnLoginFinishedListener,
4141
IForgotPasswordModel.OnFinishListener {
4242

4343
private var loginModel: LoginModel = LoginModel()
44-
private var utilModel: UtilModel = UtilModel(loginActivity)
44+
private var utilModel: UtilModel = UtilModel(context)
4545
private var databaseRepository: IDatabaseRepository = DatabaseRepository()
46-
private var loginView: ILoginView? = null
4746
var forgotPasswordModel: ForgotPasswordModel = ForgotPasswordModel()
4847
lateinit var email: String
4948
lateinit var message: String
@@ -52,7 +51,6 @@ class LoginPresenter(loginActivity: LoginActivity) :
5251
private lateinit var credentialRequest: CredentialRequest
5352

5453
override fun onAttach(loginView: ILoginView) {
55-
this.loginView = loginView
5654

5755
if (utilModel.getAnonymity()) {
5856
loginView.skipLogin()
@@ -195,10 +193,6 @@ class LoginPresenter(loginActivity: LoginActivity) :
195193
loginView?.onLoginSuccess(message)
196194
}
197195

198-
override fun onDetach() {
199-
loginView = null
200-
}
201-
202196
override fun requestPassword(email: String, url: String, isPersonalServerChecked: Boolean) {
203197
if (email.isEmpty()) {
204198
loginView?.invalidCredentials(true, Constant.EMAIL)

0 commit comments

Comments
 (0)