Skip to content

Commit 727dda5

Browse files
image upload service implemented, and integrated with UI
lint errer resolved
1 parent fd96499 commit 727dda5

23 files changed

+380
-106
lines changed

app/build.gradle

Lines changed: 19 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ android {
4141

4242
dependencies {
4343

44-
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
44+
implementation "org.jetbrains.kotlin:kotlin-stdlib:$versions.kotlin"
4545
implementation 'androidx.core:core-ktx:1.3.2'
4646
implementation 'androidx.appcompat:appcompat:1.2.0'
4747
implementation 'com.google.android.material:material:1.3.0'
@@ -51,32 +51,37 @@ dependencies {
5151
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
5252
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
5353

54-
implementation "androidx.room:room-runtime:$room_version"
55-
kapt "androidx.room:room-compiler:$room_version"
54+
implementation "androidx.room:room-runtime:$versions.room"
55+
kapt "androidx.room:room-compiler:$versions.room"
5656

5757
// optional - Kotlin Extensions and Coroutines support for Room
58-
implementation "androidx.room:room-ktx:$room_version"
58+
implementation "androidx.room:room-ktx:$versions.room"
5959

6060
// retrofit dependency
61-
implementation "com.squareup.retrofit2:retrofit:$retrofit_version"
62-
implementation "com.squareup.retrofit2:converter-gson:$retrofit_version"
61+
implementation "com.squareup.retrofit2:retrofit:$versions.retrofit"
62+
implementation "com.squareup.retrofit2:converter-gson:$versions.retrofit"
6363

6464
// hilt dependency
65-
implementation "com.google.dagger:hilt-android:$hilt_version"
66-
kapt "com.google.dagger:hilt-compiler:$hilt_version"
65+
implementation "com.google.dagger:hilt-android:$versions.hilt"
66+
kapt "com.google.dagger:hilt-compiler:$versions.hilt"
6767

6868
// Amplify core dependency
69-
implementation "com.amplifyframework:core:$amplify_core_version"
70-
implementation 'com.amplifyframework:core-kotlin:0.1.2'
71-
implementation "com.amplifyframework:aws-auth-cognito:$amplify_core_version"
69+
implementation "com.amplifyframework:core-kotlin:$versions.amplify_core_kotlin"
70+
implementation "com.amplifyframework:aws-auth-cognito:$versions.amplify_core"
7271

7372
// Support for Java 8 features
74-
coreLibraryDesugaring "com.android.tools:desugar_jdk_libs:$desugar_jdk_version"
73+
coreLibraryDesugaring "com.android.tools:desugar_jdk_libs:$versions.desugar_jdk"
7574

76-
implementation "androidx.fragment:fragment-ktx:$fragment_ktx_version"
75+
implementation "androidx.fragment:fragment-ktx:$versions.fragment_ktx"
7776

7877
implementation 'com.github.aabhasr1:OtpView:v1.1.2-ktx'
7978

80-
implementation "com.github.ligi:ipfs-api-kotlin:$ipfs_kotlin_version"
79+
implementation "com.github.ligi:ipfs-api-kotlin:$versions.ipfs_kotlin"
8180

81+
implementation "com.cloudinary:cloudinary-android:$versions.cloudinary"
82+
83+
implementation "com.jakewharton.timber:timber:$versions.timber"
84+
85+
implementation "com.github.bumptech.glide:glide:$versions.glide"
86+
annotationProcessor "com.github.bumptech.glide:compiler:$versions.glide"
8287
}

app/src/main/AndroidManifest.xml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,23 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
3+
xmlns:tools="http://schemas.android.com/tools"
34
package="com.github.code.gambit">
45

6+
<uses-permission android:name="android.permission.INTERNET" />
7+
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
8+
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
9+
510
<application
611
android:name=".VTransfer"
712
android:allowBackup="true"
8-
android:fullBackupContent="true"
13+
android:fullBackupContent="false"
14+
tools:replace="android:fullBackupContent"
915
android:icon="@mipmap/ic_launcher"
1016
android:label="@string/app_name"
1117
android:roundIcon="@mipmap/ic_launcher_round"
1218
android:supportsRtl="true"
1319
android:theme="@style/Theme.VTransfer">
20+
<meta-data android:name="CLOUDINARY_URL" android:value="cloudinary://@code-gambit"/>
1421
<activity
1522
android:name=".ui.MainActivity"
1623
android:screenOrientation="portrait">

app/src/main/java/com/github/code/gambit/VTransfer.kt

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,20 @@ import android.util.Log
55
import com.amplifyframework.AmplifyException
66
import com.amplifyframework.auth.cognito.AWSCognitoAuthPlugin
77
import com.amplifyframework.core.Amplify
8+
import com.cloudinary.android.MediaManager
89
import dagger.hilt.android.HiltAndroidApp
10+
import timber.log.Timber
11+
import timber.log.Timber.DebugTree
912

1013
@HiltAndroidApp
1114
class VTransfer : Application() {
1215

1316
override fun onCreate() {
1417
super.onCreate()
15-
18+
if (BuildConfig.DEBUG) {
19+
Timber.plant(DebugTree())
20+
}
21+
MediaManager.init(this)
1622
try {
1723
Amplify.addPlugin(AWSCognitoAuthPlugin())
1824
Amplify.configure(this)

app/src/main/java/com/github/code/gambit/di/AppModule.kt

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,21 @@
11
package com.github.code.gambit.di
22

3+
import android.Manifest
34
import android.content.Context
5+
import com.cloudinary.android.MediaManager
46
import com.github.code.gambit.PreferenceManager
57
import com.github.code.gambit.VTransfer
68
import com.github.code.gambit.ui.fragment.onboarding.infoscreens.FirstOnBoardingFragment
79
import com.github.code.gambit.ui.fragment.onboarding.infoscreens.SecondOnBoardingFragment
810
import com.github.code.gambit.ui.fragment.onboarding.infoscreens.ThirdOnBoardingFragment
11+
import com.github.code.gambit.utility.AppConstant
12+
import com.github.code.gambit.utility.SystemManager
913
import dagger.Module
1014
import dagger.Provides
1115
import dagger.hilt.InstallIn
1216
import dagger.hilt.android.qualifiers.ApplicationContext
1317
import dagger.hilt.components.SingletonComponent
18+
import javax.inject.Named
1419
import javax.inject.Singleton
1520

1621
@Module
@@ -29,18 +34,46 @@ object AppModule {
2934
return PreferenceManager(context)
3035
}
3136

37+
@Singleton
3238
@Provides
3339
fun getFirstFragment(): FirstOnBoardingFragment {
3440
return FirstOnBoardingFragment()
3541
}
3642

43+
@Singleton
3744
@Provides
3845
fun getSecondFragment(): SecondOnBoardingFragment {
3946
return SecondOnBoardingFragment()
4047
}
4148

49+
@Singleton
4250
@Provides
4351
fun getThirdFragment(): ThirdOnBoardingFragment {
4452
return ThirdOnBoardingFragment()
4553
}
54+
55+
@Singleton
56+
@Provides
57+
fun provideMediaManager(): MediaManager {
58+
return MediaManager.get()
59+
}
60+
61+
@Singleton
62+
@Provides
63+
@Named(AppConstant.Named.PERMISSION_ARRAY)
64+
fun providePermissionArray(): List<String> {
65+
return listOf(
66+
Manifest.permission.READ_EXTERNAL_STORAGE,
67+
Manifest.permission.WRITE_EXTERNAL_STORAGE
68+
)
69+
}
70+
71+
@Singleton
72+
@Provides
73+
fun provideSystemManager(
74+
@ApplicationContext ctx: Context,
75+
@Named(AppConstant.Named.PERMISSION_ARRAY) permission: List<String>
76+
): SystemManager {
77+
return SystemManager(ctx, permission)
78+
}
4679
}

app/src/main/java/com/github/code/gambit/di/NetworkModule.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import com.github.code.gambit.network.api.url.UrlService
88
import com.github.code.gambit.network.api.url.UrlServiceImpl
99
import com.github.code.gambit.network.api.user.UserService
1010
import com.github.code.gambit.network.api.user.UserServiceImpl
11+
import com.github.code.gambit.utility.AppConstant
1112
import com.google.gson.Gson
1213
import com.google.gson.GsonBuilder
1314
import dagger.Module
@@ -41,7 +42,7 @@ object NetworkModule {
4142
}
4243

4344
@Singleton
44-
@Named("UID")
45+
@Named(AppConstant.Named.USER_ID)
4546
@Provides
4647
fun provideUserId(preferenceManager: PreferenceManager): String {
4748
return preferenceManager.getUserId()!!

app/src/main/java/com/github/code/gambit/di/RepositoryModule.kt

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
package com.github.code.gambit.di
22

3+
import com.cloudinary.android.MediaManager
34
import com.github.code.gambit.PreferenceManager
45
import com.github.code.gambit.data.mapper.aws.UserAttributeMapper
56
import com.github.code.gambit.network.auth.AuthService
6-
import com.github.code.gambit.network.auth.AuthService_Impl
7+
import com.github.code.gambit.network.auth.AuthServiceImpl
8+
import com.github.code.gambit.network.image.ImageService
9+
import com.github.code.gambit.network.image.ImageServiceImpl
710
import com.github.code.gambit.repository.AuthRepository
811
import dagger.Module
912
import dagger.Provides
@@ -24,16 +27,23 @@ object RepositoryModule {
2427
@Singleton
2528
@Provides
2629
fun provideAuthService(): AuthService {
27-
return AuthService_Impl()
30+
return AuthServiceImpl()
31+
}
32+
33+
@Singleton
34+
@Provides
35+
fun provideImageService(mediaManager: MediaManager): ImageService {
36+
return ImageServiceImpl(mediaManager)
2837
}
2938

3039
@Singleton
3140
@Provides
3241
fun provideAuthRepository(
3342
authService: AuthService,
43+
imageService: ImageService,
3444
preferenceManager: PreferenceManager,
3545
userAttributeMapper: UserAttributeMapper
3646
): AuthRepository {
37-
return AuthRepository(authService, preferenceManager, userAttributeMapper)
47+
return AuthRepository(authService, imageService, preferenceManager, userAttributeMapper)
3848
}
3949
}

app/src/main/java/com/github/code/gambit/helper/auth/AuthData.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,6 @@ data class AuthData(
44
var fullname: String,
55
var email: String,
66
var password: String,
7+
var thumbnail: String?,
78
var confirmationCode: String?
89
)

app/src/main/java/com/github/code/gambit/helper/auth/AuthResult.kt

Lines changed: 0 additions & 6 deletions
This file was deleted.
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package com.github.code.gambit.helper.auth
2+
3+
sealed class ServiceResult<out R> {
4+
data class Success<out T>(val data: T) : ServiceResult<T>()
5+
data class Error(val exception: Exception) : ServiceResult<Nothing>()
6+
}

app/src/main/java/com/github/code/gambit/network/auth/AuthService.kt

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@ package com.github.code.gambit.network.auth
33
import com.amplifyframework.auth.AuthUserAttribute
44
import com.amplifyframework.auth.cognito.AWSCognitoAuthSession
55
import com.github.code.gambit.helper.auth.AuthData
6-
import com.github.code.gambit.helper.auth.AuthResult
6+
import com.github.code.gambit.helper.auth.ServiceResult
77

88
interface AuthService {
9-
suspend fun login(authData: AuthData): AuthResult<Unit>
10-
suspend fun signUp(authData: AuthData): AuthResult<Unit>
11-
suspend fun confirmSignUp(authData: AuthData): AuthResult<Unit>
12-
suspend fun fetchSession(): AuthResult<AWSCognitoAuthSession>
13-
suspend fun fetchIdToken(): AuthResult<String>
14-
suspend fun fetchUserAttribute(): AuthResult<List<AuthUserAttribute>>
15-
suspend fun resentConfirmationCode(email: String): AuthResult<Unit>
9+
suspend fun login(authData: AuthData): ServiceResult<Unit>
10+
suspend fun signUp(authData: AuthData): ServiceResult<Unit>
11+
suspend fun confirmSignUp(authData: AuthData): ServiceResult<Unit>
12+
suspend fun fetchSession(): ServiceResult<AWSCognitoAuthSession>
13+
suspend fun fetchIdToken(): ServiceResult<String>
14+
suspend fun fetchUserAttribute(): ServiceResult<List<AuthUserAttribute>>
15+
suspend fun resentConfirmationCode(email: String): ServiceResult<Unit>
1616
}

0 commit comments

Comments
 (0)