Skip to content

Commit b7bd91b

Browse files
Merge branch 'development' into youtube
2 parents d451427 + ed89462 commit b7bd91b

File tree

17 files changed

+183
-57
lines changed

17 files changed

+183
-57
lines changed

app/src/main/java/org/fossasia/susi/ai/data/GroupWiseSkillsModel.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,11 @@ import timber.log.Timber
1313
*
1414
* Created by arundhati24 on 16/07/2018.
1515
*/
16-
class GroupWiseSkillsModel : IGroupWiseSkillsModel {
16+
class GroupWiseSkillsModel(val listener: IGroupWiseSkillsModel.OnFetchSkillsFinishedListener) : IGroupWiseSkillsModel {
1717

1818
private lateinit var authResponseCallSkills: Call<ListSkillsResponse>
1919

20-
override fun fetchSkills(group: String, language: String, filter_name: String, filter_type: String, duration: String, listener: IGroupWiseSkillsModel.OnFetchSkillsFinishedListener) {
20+
override fun fetchSkills(group: String, language: String, filter_name: String, filter_type: String, duration: String) {
2121
val queryObject = SkillsListQuery(group, language, "true", filter_name, filter_type, duration)
2222
authResponseCallSkills = ClientBuilder.fetchListSkillsCall(queryObject)
2323

app/src/main/java/org/fossasia/susi/ai/data/LoginModel.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,12 @@ import timber.log.Timber
1717
* Created by chiragw15 on 4/7/17.
1818
*/
1919

20-
class LoginModel : ILoginModel {
20+
class LoginModel(val listener: ILoginModel.OnLoginFinishedListener) : ILoginModel {
2121

2222
private lateinit var authResponseCall: Call<LoginResponse>
2323
private lateinit var userSettingResponseCall: Call<UserSetting>
2424

25-
override fun login(email: String, password: String, listener: ILoginModel.OnLoginFinishedListener) {
25+
override fun login(email: String, password: String) {
2626

2727
authResponseCall = ClientBuilder.susiApi
2828
.login(email, password)

app/src/main/java/org/fossasia/susi/ai/data/SettingModel.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,11 @@ import retrofit2.Response
1313
/**
1414
* Created by meeera on 14/7/17.
1515
*/
16-
class SettingModel : ISettingModel {
16+
class SettingModel(val listener: ISettingModel.OnSettingFinishListener) : ISettingModel {
1717

1818
private lateinit var settingResponseCall: Call<ChangeSettingResponse>
1919
private lateinit var resetPasswordResponseCall: Call<ResetPasswordResponse>
20-
override fun sendSetting(key: String, value: String, count: Int, listener: ISettingModel.OnSettingFinishListener) {
20+
override fun sendSetting(key: String, value: String, count: Int) {
2121
settingResponseCall = ClientBuilder.susiApi
2222
.changeSettingResponse(key, value, count)
2323
settingResponseCall.enqueue(object : Callback<ChangeSettingResponse> {
@@ -31,7 +31,7 @@ class SettingModel : ISettingModel {
3131
})
3232
}
3333

34-
override fun resetPassword(password: String, newPassword: String, listener: ISettingModel.OnSettingFinishListener) {
34+
override fun resetPassword(password: String, newPassword: String) {
3535
val email = PrefManager.getString(Constant.SAVE_EMAIL, null)
3636
resetPasswordResponseCall = ClientBuilder.susiApi
3737
.resetPasswordResponse(email, password, newPassword)

app/src/main/java/org/fossasia/susi/ai/data/contract/IGroupWiseSkillsModel.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ interface IGroupWiseSkillsModel {
1313
fun onSkillFetchFailure(t: Throwable)
1414
}
1515

16-
fun fetchSkills(group: String, language: String, filter_name: String, filter_type: String, duration: String, listener: OnFetchSkillsFinishedListener)
16+
fun fetchSkills(group: String, language: String, filter_name: String, filter_type: String, duration: String)
1717

1818
fun cancelFetch()
1919
}

app/src/main/java/org/fossasia/susi/ai/data/contract/ILoginModel.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ interface ILoginModel {
1818
fun onErrorSetting()
1919
}
2020

21-
fun login(email: String, password: String, listener: OnLoginFinishedListener)
21+
fun login(email: String, password: String)
2222

2323
fun cancelLogin()
2424

app/src/main/java/org/fossasia/susi/ai/data/contract/ISettingModel.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ interface ISettingModel {
1515
fun onFailure(throwable: Throwable)
1616
}
1717

18-
fun sendSetting(key: String, value: String, count: Int, listener: OnSettingFinishListener)
18+
fun sendSetting(key: String, value: String, count: Int)
1919

20-
fun resetPassword(password: String, newPassword: String, listener: OnSettingFinishListener)
20+
fun resetPassword(password: String, newPassword: String)
2121
}

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

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,16 @@ package org.fossasia.susi.ai.di
33
import org.fossasia.susi.ai.chat.ChatPresenter
44
import org.fossasia.susi.ai.chat.contract.IChatPresenter
55
import org.fossasia.susi.ai.chat.contract.IChatView
6+
import org.fossasia.susi.ai.data.GroupWiseSkillsModel
7+
import org.fossasia.susi.ai.data.LoginModel
8+
import org.fossasia.susi.ai.data.SettingModel
9+
import org.fossasia.susi.ai.data.SignUpModel
10+
import org.fossasia.susi.ai.data.UtilModel
11+
import org.fossasia.susi.ai.data.contract.IGroupWiseSkillsModel
12+
import org.fossasia.susi.ai.data.contract.ILoginModel
13+
import org.fossasia.susi.ai.data.contract.ISettingModel
14+
import org.fossasia.susi.ai.data.db.DatabaseRepository
15+
import org.fossasia.susi.ai.data.db.contract.IDatabaseRepository
616
import org.fossasia.susi.ai.device.connecteddevices.ConnectedDevicePresenter
717
import org.fossasia.susi.ai.device.connecteddevices.contract.IConnectedDevicePresenter
818
import org.fossasia.susi.ai.device.connecteddevices.contract.IConnectedDeviceView
@@ -21,6 +31,9 @@ import org.fossasia.susi.ai.skills.groupwiseskills.contract.IGroupWiseSkillsView
2131
import org.fossasia.susi.ai.skills.settings.SettingsPresenter
2232
import org.fossasia.susi.ai.skills.settings.contract.ISettingsPresenter
2333
import org.fossasia.susi.ai.skills.settings.contract.ISettingsView
34+
import org.fossasia.susi.ai.skills.skilldetails.SkillDetailsPresenter
35+
import org.fossasia.susi.ai.skills.skilldetails.contract.ISkillDetailsPresenter
36+
import org.fossasia.susi.ai.skills.skilldetails.contract.ISkillDetailsView
2437
import org.koin.android.ext.koin.androidContext
2538
import org.koin.core.module.Module
2639
import org.koin.dsl.module
@@ -37,7 +50,23 @@ val modules: Module = module(override = true) {
3750

3851
factory<ILoginPresenter> { (view: ILoginView) -> LoginPresenter(androidContext(), view) }
3952

40-
factory<ISignUpPresenter> { (view: ISignUpView) -> SignUpPresenter(androidContext(), view) }
53+
factory<ISignUpPresenter> { (view: ISignUpView) -> SignUpPresenter(get(), UtilModel(androidContext()), get(), view) }
54+
55+
single {
56+
DatabaseRepository() as IDatabaseRepository
57+
}
58+
59+
single {
60+
SignUpModel()
61+
}
4162

4263
factory<ISettingsPresenter> { (view: ISettingsView) -> SettingsPresenter(androidContext(), view) }
64+
65+
factory<ISkillDetailsPresenter> { (view: ISkillDetailsView) -> SkillDetailsPresenter(androidContext(), view) }
66+
67+
factory<IGroupWiseSkillsModel> { (view: IGroupWiseSkillsModel.OnFetchSkillsFinishedListener) -> GroupWiseSkillsModel(view) }
68+
69+
factory<ILoginModel> { (view: ILoginModel.OnLoginFinishedListener) -> LoginModel(view) }
70+
71+
factory<ISettingModel> { (view: ISettingModel.OnSettingFinishListener) -> SettingModel(view) }
4372
}

app/src/main/java/org/fossasia/susi/ai/helper/CredentialHelper.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ import timber.log.Timber
1717
object CredentialHelper {
1818

1919
private val PASSWORD_PATTERN = Pattern.compile("^((?=.*\\d)(?=.*[A-Z])(?=.*[@#\$%])(?=.*\\W).{8,64})$")
20+
private val VALID_EMAIL_ADDRESS_REGEX = Pattern.compile("^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,6}$", Pattern.CASE_INSENSITIVE)
21+
private val VALID_URL_REGEX = Pattern.compile("^(https?|ftp|file)://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]")
2022

2123
/**
2224
* Is email valid boolean.
@@ -28,7 +30,7 @@ object CredentialHelper {
2830
fun isEmailValid(mail: String): Boolean {
2931
Timber.d("isEmailValid: %s", mail)
3032
val email = mail.trim { it <= ' ' }
31-
return !TextUtils.isEmpty(email) && Patterns.EMAIL_ADDRESS.matcher(email).matches()
33+
return !TextUtils.isEmpty(email) && VALID_EMAIL_ADDRESS_REGEX.matcher(email).matches()
3234
}
3335

3436
/**
@@ -64,7 +66,7 @@ object CredentialHelper {
6466
* @return the boolean
6567
*/
6668
fun isURLValid(url: String): Boolean {
67-
return Patterns.WEB_URL.matcher(url).matches()
69+
return VALID_URL_REGEX.matcher(url).matches()
6870
}
6971

7072
fun isURLValid(inputLayout: TextInputLayout, context: Context): Boolean {

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

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ import com.google.android.gms.tasks.OnCompleteListener
1111
import java.net.UnknownHostException
1212
import org.fossasia.susi.ai.R
1313
import org.fossasia.susi.ai.data.ForgotPasswordModel
14-
import org.fossasia.susi.ai.data.LoginModel
1514
import org.fossasia.susi.ai.data.UtilModel
1615
import org.fossasia.susi.ai.data.contract.IForgotPasswordModel
1716
import org.fossasia.susi.ai.data.contract.ILoginModel
@@ -27,6 +26,9 @@ import org.fossasia.susi.ai.rest.responses.susi.ForgotPasswordResponse
2726
import org.fossasia.susi.ai.rest.responses.susi.LoginResponse
2827
import org.fossasia.susi.ai.rest.responses.susi.Settings
2928
import org.fossasia.susi.ai.rest.responses.susi.UserSetting
29+
import org.koin.core.KoinComponent
30+
import org.koin.core.inject
31+
import org.koin.core.parameter.parametersOf
3032
import retrofit2.Response
3133
import timber.log.Timber
3234

@@ -38,9 +40,9 @@ import timber.log.Timber
3840
class LoginPresenter(context: Context, private val loginView: ILoginView) :
3941
ILoginPresenter,
4042
ILoginModel.OnLoginFinishedListener,
41-
IForgotPasswordModel.OnFinishListener {
43+
IForgotPasswordModel.OnFinishListener, KoinComponent {
4244

43-
private var loginModel: LoginModel = LoginModel()
45+
private val loginModel: ILoginModel by inject { parametersOf(this) }
4446
private var utilModel: UtilModel = UtilModel(context)
4547
private var databaseRepository: IDatabaseRepository = DatabaseRepository()
4648
var forgotPasswordModel: ForgotPasswordModel = ForgotPasswordModel()
@@ -112,7 +114,7 @@ class LoginPresenter(context: Context, private val loginView: ILoginView) :
112114
this.email = email
113115
PrefManager.putString(Constant.EMAIL, this.email)
114116
loginView?.showProgress(true)
115-
loginModel.login(email.trim { it <= ' ' }.toLowerCase(), password, this)
117+
loginModel.login(email.trim { it <= ' ' }.toLowerCase(), password)
116118
}
117119

118120
override fun cancelLogin() {

app/src/main/java/org/fossasia/susi/ai/signup/SignUpPresenter.kt

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

3-
import android.content.Context
43
import android.graphics.Color
54
import java.net.UnknownHostException
65
import org.fossasia.susi.ai.R
@@ -9,7 +8,6 @@ import org.fossasia.susi.ai.data.SignUpModel
98
import org.fossasia.susi.ai.data.UtilModel
109
import org.fossasia.susi.ai.data.contract.IForgotPasswordModel
1110
import org.fossasia.susi.ai.data.contract.ISignUpModel
12-
import org.fossasia.susi.ai.data.db.DatabaseRepository
1311
import org.fossasia.susi.ai.data.db.contract.IDatabaseRepository
1412
import org.fossasia.susi.ai.helper.Constant
1513
import org.fossasia.susi.ai.helper.CredentialHelper
@@ -28,14 +26,11 @@ import retrofit2.Response
2826
* Created by mayanktripathi on 05/07/17.
2927
*/
3028

31-
class SignUpPresenter(context: Context, private val signUpView: ISignUpView) : ISignUpPresenter, ISignUpModel.OnSignUpFinishedListener, IForgotPasswordModel.OnFinishListener {
29+
class SignUpPresenter(private val signUpModel: SignUpModel, private val utilModel: UtilModel, private val databaseRepository: IDatabaseRepository, private val signUpView: ISignUpView) : ISignUpPresenter, ISignUpModel.OnSignUpFinishedListener, IForgotPasswordModel.OnFinishListener {
3230

33-
private var signUpModel: SignUpModel = SignUpModel()
34-
private var utilModel: UtilModel = UtilModel(context)
3531
private var settingView: ISettingsView? = null
3632
lateinit var email: String
3733
var forgotPasswordModel: ForgotPasswordModel = ForgotPasswordModel()
38-
private var databaseRepository: IDatabaseRepository = DatabaseRepository()
3934

4035
override fun signUp(email: String, password: String, conpass: String, isSusiServerSelected: Boolean, url: String, isTermsAndConditionSelected: Boolean) {
4136

0 commit comments

Comments
 (0)