Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
A
Augmented Reality Chemistry Laboratory
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
2021-189
Augmented Reality Chemistry Laboratory
Commits
e36ca70b
Commit
e36ca70b
authored
Oct 14, 2021
by
Mahima Induvara
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
UI Modified!
parent
673d890c
Changes
7
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
152 additions
and
81 deletions
+152
-81
app/src/main/java/chatbot/AdapterChatBot.kt
app/src/main/java/chatbot/AdapterChatBot.kt
+12
-6
app/src/main/java/chatbot/MainActivity.kt
app/src/main/java/chatbot/MainActivity.kt
+30
-1
app/src/main/res/drawable/receive_round_box.xml
app/src/main/res/drawable/receive_round_box.xml
+8
-0
app/src/main/res/drawable/round_button.xml
app/src/main/res/drawable/round_button.xml
+4
-0
app/src/main/res/drawable/send_round_box.xml
app/src/main/res/drawable/send_round_box.xml
+8
-0
app/src/main/res/layout/activity_chatbot_main.xml
app/src/main/res/layout/activity_chatbot_main.xml
+64
-52
app/src/main/res/layout/listitem_chat.xml
app/src/main/res/layout/listitem_chat.xml
+26
-22
No files found.
app/src/main/java/chatbot/AdapterChatBot.kt
View file @
e36ca70b
package
chatbot
package
chatbot
import
android.graphics.Color
import
android.view.LayoutInflater
import
android.view.LayoutInflater
import
android.view.View
import
android.view.ViewGroup
import
android.view.ViewGroup
import
android.widget.TextView
import
androidx.recyclerview.widget.RecyclerView
import
androidx.recyclerview.widget.RecyclerView
import
com.example.archemistrylab.R
import
com.example.archemistrylab.R
import
kotlinx.android.synthetic.main.listitem_chat.view.*
import
kotlinx.android.synthetic.main.listitem_chat.view.*
class
AdapterChatBot
:
RecyclerView
.
Adapter
<
AdapterChatBot
.
MyViewHolder
>()
{
class
AdapterChatBot
:
RecyclerView
.
Adapter
<
AdapterChatBot
.
MyViewHolder
>()
{
private
val
list
=
ArrayList
<
ChatModel
>()
private
val
list
=
ArrayList
<
ChatModel
>()
...
@@ -17,13 +19,17 @@ class AdapterChatBot : RecyclerView.Adapter<AdapterChatBot.MyViewHolder>() {
...
@@ -17,13 +19,17 @@ class AdapterChatBot : RecyclerView.Adapter<AdapterChatBot.MyViewHolder>() {
)
{
)
{
fun
bind
(
chat
:
ChatModel
)
=
with
(
itemView
)
{
fun
bind
(
chat
:
ChatModel
)
=
with
(
itemView
)
{
if
(!
chat
.
isBot
)
{
if
(!
chat
.
isBot
)
{
txtChat
.
setBackgroundColor
(
Color
.
WHITE
)
txtChat
.
setTextColor
(
Color
.
BLACK
)
txtChat
.
text
=
chat
.
chat
txtChat
.
text
=
chat
.
chat
val
textView1
=
findViewById
(
R
.
id
.
txtChat
)
as
TextView
val
textView2
=
findViewById
(
R
.
id
.
user_message
)
as
TextView
textView1
.
setCompoundDrawablesWithIntrinsicBounds
(
R
.
drawable
.
ic_man
,
0
,
0
,
0
)
textView2
.
setVisibility
(
View
.
GONE
)
}
else
{
}
else
{
txtChat
.
setBackgroundColor
(
Color
.
YELLOW
)
val
textView1
=
findViewById
(
R
.
id
.
txtChat
)
as
TextView
txtChat
.
setTextColor
(
Color
.
BLACK
)
val
textView2
=
findViewById
(
R
.
id
.
user_message
)
as
TextView
txtChat
.
text
=
chat
.
chat
textView2
.
setCompoundDrawablesWithIntrinsicBounds
(
R
.
drawable
.
ic_bot
,
0
,
0
,
0
)
textView1
.
setVisibility
(
View
.
GONE
)
user_message
.
text
=
chat
.
chat
}
}
}
}
}
}
...
...
app/src/main/java/chatbot/MainActivity.kt
View file @
e36ca70b
package
chatbot
package
chatbot
import
android.content.Intent
import
android.os.Bundle
import
android.os.Bundle
import
android.speech.RecognizerIntent
import
android.widget.Button
import
android.widget.TextView
import
android.widget.Toast
import
android.widget.Toast
import
androidx.appcompat.app.AppCompatActivity
import
androidx.appcompat.app.AppCompatActivity
import
androidx.recyclerview.widget.LinearLayoutManager
import
androidx.recyclerview.widget.LinearLayoutManager
import
com.example.archemistrylab.R
import
com.example.archemistrylab.R
import
com.google.android.material.floatingactionbutton.FloatingActionButton
import
kotlinx.android.synthetic.main.activity_chatbot_main.*
import
kotlinx.android.synthetic.main.activity_chatbot_main.*
import
org.w3c.dom.Text
import
retrofit2.Call
import
retrofit2.Call
import
retrofit2.Callback
import
retrofit2.Callback
import
retrofit2.Response
import
retrofit2.Response
import
retrofit2.Retrofit
import
retrofit2.Retrofit
import
retrofit2.converter.gson.GsonConverterFactory
import
retrofit2.converter.gson.GsonConverterFactory
import
java.util.*
import
kotlin.collections.ArrayList
class
MainActivity
:
AppCompatActivity
()
{
class
MainActivity
:
AppCompatActivity
()
{
lateinit
var
speechbtn
:
FloatingActionButton
lateinit
var
chat
:
TextView
private
val
adapterChatBot
=
AdapterChatBot
()
private
val
adapterChatBot
=
AdapterChatBot
()
override
fun
onCreate
(
savedInstanceState
:
Bundle
?)
{
override
fun
onCreate
(
savedInstanceState
:
Bundle
?)
{
super
.
onCreate
(
savedInstanceState
)
super
.
onCreate
(
savedInstanceState
)
setContentView
(
R
.
layout
.
activity_chatbot_main
)
setContentView
(
R
.
layout
.
activity_chatbot_main
)
val
retrofit
=
Retrofit
.
Builder
()
val
retrofit
=
Retrofit
.
Builder
()
.
baseUrl
(
"http://192.168.
8.101:5000
"
)
.
baseUrl
(
"http://192.168.
1.101:5000/
"
)
.
addConverterFactory
(
GsonConverterFactory
.
create
())
.
addConverterFactory
(
GsonConverterFactory
.
create
())
.
build
()
.
build
()
...
@@ -29,6 +39,16 @@ class MainActivity : AppCompatActivity() {
...
@@ -29,6 +39,16 @@ class MainActivity : AppCompatActivity() {
rvChatList
.
layoutManager
=
LinearLayoutManager
(
this
)
rvChatList
.
layoutManager
=
LinearLayoutManager
(
this
)
rvChatList
.
adapter
=
adapterChatBot
rvChatList
.
adapter
=
adapterChatBot
speechbtn
=
findViewById
(
R
.
id
.
speechbtn
)
chat
=
findViewById
(
R
.
id
.
etChat
)
speechbtn
.
setOnClickListener
{
val
intent
=
Intent
(
RecognizerIntent
.
ACTION_RECOGNIZE_SPEECH
)
intent
.
putExtra
(
RecognizerIntent
.
EXTRA_LANGUAGE_MODEL
,
RecognizerIntent
.
LANGUAGE_MODEL_FREE_FORM
)
intent
.
putExtra
(
RecognizerIntent
.
EXTRA_LANGUAGE
,
Locale
.
getDefault
())
intent
.
putExtra
(
RecognizerIntent
.
EXTRA_PROMPT
,
"Say!"
)
startActivityForResult
(
intent
,
100
)
}
btnSend
.
setOnClickListener
{
btnSend
.
setOnClickListener
{
if
(
etChat
.
text
.
isNullOrEmpty
()){
if
(
etChat
.
text
.
isNullOrEmpty
()){
Toast
.
makeText
(
this
@MainActivity
,
"Please enter a text"
,
Toast
.
LENGTH_LONG
).
show
()
Toast
.
makeText
(
this
@MainActivity
,
"Please enter a text"
,
Toast
.
LENGTH_LONG
).
show
()
...
@@ -43,6 +63,15 @@ class MainActivity : AppCompatActivity() {
...
@@ -43,6 +63,15 @@ class MainActivity : AppCompatActivity() {
}
}
}
}
override
fun
onActivityResult
(
requestCode
:
Int
,
resultCode
:
Int
,
data
:
Intent
?)
{
super
.
onActivityResult
(
requestCode
,
resultCode
,
data
)
if
(
requestCode
==
100
||
data
!=
null
){
val
res
:
ArrayList
<
String
>
=
data
!!
.
getStringArrayListExtra
(
RecognizerIntent
.
EXTRA_RESULTS
)
as
ArrayList
<
String
>
chat
.
text
=
res
[
0
]
}
}
private
val
callBack
=
object
:
Callback
<
ChatResponse
>{
private
val
callBack
=
object
:
Callback
<
ChatResponse
>{
override
fun
onResponse
(
call
:
Call
<
ChatResponse
>,
response
:
Response
<
ChatResponse
>)
{
override
fun
onResponse
(
call
:
Call
<
ChatResponse
>,
response
:
Response
<
ChatResponse
>)
{
if
(
response
.
isSuccessful
&&
response
.
body
()!=
null
){
if
(
response
.
isSuccessful
&&
response
.
body
()!=
null
){
...
...
app/src/main/res/drawable/receive_round_box.xml
0 → 100644
View file @
e36ca70b
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android=
"http://schemas.android.com/apk/res/android"
>
<corners
android:bottomLeftRadius=
"20dp"
android:bottomRightRadius=
"20dp"
android:topLeftRadius=
"0dp"
android:topRightRadius=
"20dp"
/>
</shape>
\ No newline at end of file
app/src/main/res/drawable/round_button.xml
0 → 100644
View file @
e36ca70b
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android=
"http://schemas.android.com/apk/res/android"
>
<corners
android:radius=
"20dp"
/>
</shape>
\ No newline at end of file
app/src/main/res/drawable/send_round_box.xml
0 → 100644
View file @
e36ca70b
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android=
"http://schemas.android.com/apk/res/android"
>
<corners
android:bottomLeftRadius=
"20dp"
android:bottomRightRadius=
"0dp"
android:topLeftRadius=
"20dp"
android:topRightRadius=
"20dp"
/>
</shape>
\ No newline at end of file
app/src/main/res/layout/activity_chatbot_main.xml
View file @
e36ca70b
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<
androidx.constraintlayout.widget.Constraint
Layout
xmlns:android=
"http://schemas.android.com/apk/res/android"
<
Relative
Layout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
xmlns:tools=
"http://schemas.android.com/tools"
xmlns:tools=
"http://schemas.android.com/tools"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:layout_height=
"match_parent"
tools:context=
"chatbot.MainActivity"
>
tools:context=
"chatbot.MainActivity"
>
<androidx.recyclerview.widget.RecyclerView
android:id=
"@+id/rvChatList"
<LinearLayout
android:layout_width=
"401dp"
android:id=
"@+id/ll_layout_bar"
android:layout_height=
"665dp"
android:layout_width=
"match_parent"
app:layout_constraintBottom_toTopOf=
"@+id/etChat"
android:layout_height=
"wrap_content"
app:layout_constraintEnd_toEndOf=
"parent"
android:layout_alignParentBottom=
"true"
app:layout_constraintHorizontal_bias=
"1.0"
android:background=
"#E4E4E4"
app:layout_constraintStart_toStartOf=
"parent"
android:orientation=
"horizontal"
>
app:layout_constraintTop_toTopOf=
"parent"
app:layout_constraintVertical_bias=
"0.0"
/>
<EditText
<EditText
android:id=
"@+id/etChat"
android:id=
"@+id/etChat"
android:layout_width=
"245dp"
android:inputType=
"textShortMessage"
android:layout_height=
"60dp"
android:layout_width=
"match_parent"
android:layout_marginStart=
"16dp"
android:layout_height=
"wrap_content"
android:layout_marginEnd=
"8dp"
android:layout_margin=
"10dp"
android:ems=
"10"
android:layout_weight=
".5"
android:hint=
"Chat with bot"
android:background=
"@drawable/round_button"
android:inputType=
"textPersonName"
android:backgroundTint=
"@android:color/white"
app:layout_constraintBottom_toBottomOf=
"parent"
android:hint=
"Type a message..."
app:layout_constraintEnd_toStartOf=
"@+id/btnSend"
android:padding=
"10dp"
app:layout_constraintHorizontal_bias=
"0.0"
android:singleLine=
"true"
/>
app:layout_constraintStart_toStartOf=
"parent"
/>
<com.google.android.material.floatingactionbutton.FloatingActionButton
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id=
"@+id/floatingActionButton2
"
android:id=
"@+id/speechbtn
"
android:layout_width=
"56dp"
android:layout_width=
"56dp"
android:layout_height=
"56dp"
android:layout_height=
"56dp"
android:clickable=
"true"
android:clickable=
"true"
...
@@ -57,5 +53,21 @@
...
@@ -57,5 +53,21 @@
app:layout_constraintTop_toTopOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
app:layout_constraintVertical_bias=
"0.988"
app:layout_constraintVertical_bias=
"0.988"
app:srcCompat=
"@drawable/ic_baseline_send_24"
/>
app:srcCompat=
"@drawable/ic_baseline_send_24"
/>
</LinearLayout>
<androidx.recyclerview.widget.RecyclerView
android:id=
"@+id/rvChatList"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:layout_above=
"@id/ll_layout_bar"
android:layout_below=
"@+id/dark_divider"
tools:itemCount=
"20"
tools:listitem=
"@layout/listitem_chat"
/>
<View
android:layout_width=
"match_parent"
android:layout_height=
"10dp"
android:background=
"#42A5F5"
android:id=
"@+id/dark_divider"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
</RelativeLayout>
\ No newline at end of file
\ No newline at end of file
app/src/main/res/layout/listitem_chat.xml
View file @
e36ca70b
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<
androidx.cardview.widget.CardView
xmlns:android=
"http://schemas.android.com/apk/res/android"
<
RelativeLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"60dp"
android:layout_height=
"wrap_content"
>
android:layout_gravity=
"end"
android:layout_margin=
"5dp"
android:elevation=
"8dp"
>
<LinearLayout
android:layout_height=
"wrap_content"
<TextView
android:layout_width=
"wrap_content"
android:id=
"@+id/user_message"
android:orientation=
"horizontal"
>
android:layout_width=
"200dp"
android:layout_height=
"wrap_content"
android:layout_alignParentEnd=
"true"
android:layout_margin=
"4dp"
android:background=
"@drawable/send_round_box"
android:backgroundTint=
"#26A69A"
android:padding=
"14dp"
android:text=
""
android:textColor=
"@android:color/black"
android:textSize=
"14sp"
/>
<TextView
<TextView
android:visibility=
"visible"
android:id=
"@+id/txtChat"
android:id=
"@+id/txtChat"
android:layout_width=
"match_parent"
android:layout_width=
"200dp"
android:layout_height=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_margin=
"3dp"
android:layout_alignParentStart=
"true"
android:gravity=
"center"
android:layout_margin=
"4dp"
android:padding=
"3dp"
android:background=
"@drawable/receive_round_box"
android:backgroundTint=
"#FF7043"
android:padding=
"14dp"
android:text=
""
android:text=
""
android:textSize=
"18sp"
/>
android:textColor=
"@android:color/black"
android:textSize=
"14sp"
/>
<ImageView
</RelativeLayout>
android:layout_width=
"38dp"
android:layout_height=
"38dp"
android:layout_margin=
"10dp"
android:src=
"@drawable/ic_bot"
/>
</LinearLayout>
</androidx.cardview.widget.CardView>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment