Skip to content

Commit 99fef0b

Browse files
committed
Optimized code and implemented free slot mapping
1 parent f2bab17 commit 99fef0b

20 files changed

+407
-312
lines changed

android/.idea/misc.xml

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

android/app/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ dependencies {
5656
implementation "androidx.room:room-runtime:$room_version"
5757
kapt "androidx.room:room-compiler:$room_version"
5858

59-
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
59+
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
6060
implementation 'androidx.appcompat:appcompat:1.3.1'
6161
implementation 'com.google.android.material:material:1.4.0'
6262
implementation 'androidx.core:core-ktx:1.6.0'

android/app/src/main/AndroidManifest.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
<activity android:name=".LoginActivity" />
2828
<activity android:name=".RegisterActivity1" />
2929
<activity android:name=".RegisterActivity2" />
30-
<activity android:name=".TimeTable" />
30+
<activity android:name=".TimeTableActivity" />
3131
<activity android:name=".MainActivity" />
3232
<activity android:name=".UpdateProfileActivity" />
3333

android/app/src/main/java/com/codechef/ffds/ApiHolder.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ interface ApiHolder {
7777
@FormUrlEncoded
7878
fun slotMapper(
7979
@Field("Slots") slot: ArrayList<String>
80-
): ArrayList<ArrayList<HashMap<String, Any>>>?
80+
): Call<Slots>?
8181

8282
@GET("user/feed")
8383
fun getFeed(
@@ -153,7 +153,7 @@ interface SlotsApiHolder {
153153
@Multipart
154154
fun getFreeSlots(
155155
@Part file: MultipartBody.Part
156-
): Call<ResponseBody?>?
156+
): Call<SlotMapper?>?
157157
}
158158

159159
object Api {
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package com.codechef.ffds
2+
3+
import androidx.room.TypeConverter
4+
5+
class ByteArrayConverter {
6+
7+
@TypeConverter
8+
fun fromByte(list: List<Byte>): ByteArray {
9+
return list.toByteArray()
10+
}
11+
12+
@TypeConverter
13+
fun toByte(byteArray: ByteArray): List<Byte> {
14+
return byteArray.toList()
15+
}
16+
17+
}

android/app/src/main/java/com/codechef/ffds/ChatActivity.kt

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import androidx.appcompat.app.AppCompatActivity
66
import androidx.lifecycle.ViewModelProvider
77
import androidx.recyclerview.widget.LinearLayoutManager
88
import com.codechef.ffds.databinding.ActivityChatBinding
9+
import com.google.gson.Gson
910
import io.socket.client.IO
1011
import io.socket.client.Socket
1112
import io.socket.emitter.Emitter
@@ -183,12 +184,15 @@ class ChatActivity : AppCompatActivity() {
183184

184185
viewModel.insertAllMessages(*chats.toTypedArray())
185186
}
186-
} else
187+
} else {
188+
val gson = Gson()
189+
val (_,message) = gson.fromJson(response.errorBody()?.charStream(), Error::class.java)
187190
Toast.makeText(
188-
baseContext,
189-
"MESSAGES: ${response.message()}",
191+
applicationContext,
192+
"Error ${response.code()}: MESSAGES: $message",
190193
Toast.LENGTH_SHORT
191194
).show()
195+
}
192196
}
193197
})
194198

@@ -256,12 +260,15 @@ class ChatActivity : AppCompatActivity() {
256260
chat.text,
257261
chat.createdAt
258262
)
259-
} else
263+
} else {
264+
val gson = Gson()
265+
val (_,message) = gson.fromJson(response.errorBody()?.charStream(), Error::class.java)
260266
Toast.makeText(
261-
baseContext,
262-
"send: ${response.message()}",
267+
applicationContext,
268+
"Error ${response.code()}: send: $message",
263269
Toast.LENGTH_SHORT
264270
).show()
271+
}
265272
}
266273
})
267274
}

android/app/src/main/java/com/codechef/ffds/Classes.kt

Lines changed: 40 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -8,27 +8,10 @@ import java.util.*
88
import kotlin.collections.ArrayList
99
import kotlin.collections.HashMap
1010

11-
data class User(
12-
val name: String,
13-
val email: String,
14-
val bio: String
15-
)
16-
1711
enum class ItemType {
1812
Sent, Received, Date
1913
}
2014

21-
@Entity
22-
data class Chat(
23-
@PrimaryKey(autoGenerate = false) val _id: String = "",
24-
val conversationId: String,
25-
val senderId: String,
26-
val text: String,
27-
@TypeConverters(DateConverter::class) val createdAt: Date,
28-
@TypeConverters(DateConverter::class) val updatedAt: Date,
29-
val type: ItemType
30-
)
31-
3215
@Entity
3316
data class Profile(
3417
@PrimaryKey(autoGenerate = false) val email: String = "",
@@ -41,16 +24,38 @@ data class Profile(
4124
val gender: String = "",
4225
val bio: String = "",
4326
val year: String = "",
44-
@TypeConverters(DataConverter::class) val expectations: ArrayList<String> = ArrayList(),
27+
@TypeConverters(StringArrayConverter::class) val expectations: ArrayList<String> = ArrayList(),
4528
@TypeConverters(MapConverter::class) val slot: ArrayList<ArrayList<HashMap<String, Any>>> = ArrayList(),
4629
@TypeConverters(ImageTypeConverter::class) val userImage: Image = Image(),
47-
val userArray: List<Byte> = emptyList(),
30+
@TypeConverters(ByteArrayConverter::class) val userArray: List<Byte> = emptyList(),
4831
val genderPreference: String = "none",
49-
@TypeConverters(DataConverter::class) val accepted: ArrayList<String> = ArrayList(),
50-
@TypeConverters(DataConverter::class) val rejected: ArrayList<String> = ArrayList(),
51-
@TypeConverters(DataConverter::class) val blocked: ArrayList<String> = ArrayList(),
32+
@TypeConverters(StringArrayConverter::class) val accepted: ArrayList<String> = ArrayList(),
33+
@TypeConverters(StringArrayConverter::class) val rejected: ArrayList<String> = ArrayList(),
34+
@TypeConverters(StringArrayConverter::class) val blocked: ArrayList<String> = ArrayList(),
5235
) : Serializable
5336

37+
@Entity
38+
data class Conversation(
39+
@TypeConverters(StringArrayConverter::class) val members: ArrayList<String>,
40+
@PrimaryKey(autoGenerate = false) val _id: String,
41+
val matched: Boolean,
42+
val blocked: Boolean,
43+
val hasMessages: Boolean,
44+
@TypeConverters(DateTypeConverter::class) val createdAt: Date,
45+
@TypeConverters(DateTypeConverter::class) val updatedAt: Date
46+
)
47+
48+
@Entity
49+
data class Chat(
50+
@PrimaryKey(autoGenerate = false) val _id: String = "",
51+
val conversationId: String,
52+
val senderId: String,
53+
val text: String,
54+
@TypeConverters(DateTypeConverter::class) val createdAt: Date,
55+
@TypeConverters(DateTypeConverter::class) val updatedAt: Date,
56+
val type: ItemType
57+
)
58+
5459
data class Error(
5560
val err: Boolean,
5661
val message: String,
@@ -82,22 +87,16 @@ data class Messages(
8287
val conversationId: String = "",
8388
)
8489

85-
@Entity
86-
data class Conversation(
87-
@TypeConverters(DataConverter::class) val members: ArrayList<String>,
88-
@PrimaryKey(autoGenerate = false) val _id: String,
89-
val matched: Boolean,
90-
val blocked: Boolean,
91-
val hasMessages: Boolean,
92-
@TypeConverters(DateConverter::class) val createdAt: Date,
93-
@TypeConverters(DateConverter::class) val updatedAt: Date
90+
data class SlotMapper(
91+
val slots: ArrayList<String>
9492
)
9593

96-
class Slots {
94+
data class Slots(
95+
val slot: ArrayList<ArrayList<HashMap<String, Any>>> = ArrayList()
96+
) {
9797

98-
fun getSlots(): ArrayList<ArrayList<HashMap<String, Any>>> {
98+
fun createSlots() {
9999

100-
val tableMap = ArrayList<ArrayList<HashMap<String, Any>>>()
101100
var itemArray = ArrayList<HashMap<String, Any>>()
102101

103102
itemArray.add(map("A1/L1", false))
@@ -114,7 +113,7 @@ class Slots {
114113
itemArray.add(map("TG2/L35", false))
115114
itemArray.add(map("L36", false))
116115
itemArray.add(map("V3", false))
117-
tableMap.add(ArrayList(itemArray))
116+
slot.add(ArrayList(itemArray))
118117
itemArray = ArrayList()
119118

120119
itemArray.add(map("B1/L7", false))
@@ -131,7 +130,7 @@ class Slots {
131130
itemArray.add(map("TAA2/L41", false))
132131
itemArray.add(map("L42", false))
133132
itemArray.add(map("V4", false))
134-
tableMap.add(ArrayList(itemArray))
133+
slot.add(ArrayList(itemArray))
135134
itemArray = ArrayList()
136135

137136
itemArray.add(map("C1/L13", false))
@@ -148,7 +147,7 @@ class Slots {
148147
itemArray.add(map("TBB2/L47", false))
149148
itemArray.add(map("L48", false))
150149
itemArray.add(map("V5", false))
151-
tableMap.add(ArrayList(itemArray))
150+
slot.add(ArrayList(itemArray))
152151
itemArray = ArrayList()
153152

154153
itemArray.add(map("D1/L19", false))
@@ -165,7 +164,7 @@ class Slots {
165164
itemArray.add(map("TCC2/L53", false))
166165
itemArray.add(map("L54", false))
167166
itemArray.add(map("V6", false))
168-
tableMap.add(ArrayList(itemArray))
167+
slot.add(ArrayList(itemArray))
169168
itemArray = ArrayList()
170169

171170
itemArray.add(map("E1/L25", false))
@@ -182,7 +181,7 @@ class Slots {
182181
itemArray.add(map("TDD2/L59", false))
183182
itemArray.add(map("L60", false))
184183
itemArray.add(map("V7", false))
185-
tableMap.add(ArrayList(itemArray))
184+
slot.add(ArrayList(itemArray))
186185
itemArray = ArrayList()
187186

188187
itemArray.add(map("V8/L71", false))
@@ -199,7 +198,7 @@ class Slots {
199198
itemArray.add(map("W22/L81", false))
200199
itemArray.add(map("L82", false))
201200
itemArray.add(map("V9", false))
202-
tableMap.add(ArrayList(itemArray))
201+
slot.add(ArrayList(itemArray))
203202

204203
itemArray.add(map("V10/L83", false))
205204
itemArray.add(map("Y11/L84", false))
@@ -215,9 +214,7 @@ class Slots {
215214
itemArray.add(map("W22/L93", false))
216215
itemArray.add(map("L94", false))
217216
itemArray.add(map("V11", false))
218-
tableMap.add(ArrayList(itemArray))
219-
220-
return tableMap
217+
slot.add(ArrayList(itemArray))
221218
}
222219

223220
private fun map(key: String, value: Boolean): HashMap<String, Any> {

android/app/src/main/java/com/codechef/ffds/DateConverter.kt renamed to android/app/src/main/java/com/codechef/ffds/DateTypeConverter.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package com.codechef.ffds
33
import androidx.room.TypeConverter
44
import java.util.*
55

6-
class DateConverter {
6+
class DateTypeConverter {
77

88
@TypeConverter
99
fun fromDate(date: Date): Long {

android/app/src/main/java/com/codechef/ffds/LoginActivity.kt

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import androidx.appcompat.app.AppCompatActivity
1414
import androidx.lifecycle.ViewModelProvider
1515
import com.bumptech.glide.Glide
1616
import com.codechef.ffds.databinding.LoginActivityBinding
17+
import com.google.gson.Gson
1718
import retrofit2.Call
1819
import retrofit2.Callback
1920
import retrofit2.Response
@@ -80,9 +81,15 @@ class LoginActivity : AppCompatActivity() {
8081
updateProfile(token)
8182
}
8283
}
83-
else
84-
Toast.makeText(applicationContext, response.message(), Toast.LENGTH_SHORT)
85-
.show()
84+
else {
85+
val gson = Gson()
86+
val (_,message) = gson.fromJson(response.errorBody()?.charStream(), Error::class.java)
87+
Toast.makeText(
88+
applicationContext,
89+
"Error ${response.code()}: $message",
90+
Toast.LENGTH_SHORT
91+
).show()
92+
}
8693
dialog.dismiss()
8794
}
8895
})
@@ -112,9 +119,15 @@ class LoginActivity : AppCompatActivity() {
112119
editor.putString("id", user._id).apply()
113120
startActivity(Intent(baseContext, MainActivity::class.java))
114121
finish()
115-
} else
116-
Toast.makeText(applicationContext, response.message(), Toast.LENGTH_LONG)
117-
.show()
122+
} else {
123+
val gson = Gson()
124+
val (_,message) = gson.fromJson(response.errorBody()?.charStream(), Error::class.java)
125+
Toast.makeText(
126+
applicationContext,
127+
"Error ${response.code()}: $message",
128+
Toast.LENGTH_SHORT
129+
).show()
130+
}
118131
}
119132
})
120133
}

0 commit comments

Comments
 (0)