Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
B
baby-monitoring-android-app
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
0
Merge Requests
0
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
R24-145
baby-monitoring-android-app
Commits
061b8cca
Commit
061b8cca
authored
Oct 25, 2024
by
Ishankha K.C
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'feature/chamod_dev' into 'master'
activity vocal screen See merge request
!6
parents
cdfebf53
56d809b0
Changes
14
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
335 additions
and
57 deletions
+335
-57
.idea/other.xml
.idea/other.xml
+0
-11
app/src/main/AndroidManifest.xml
app/src/main/AndroidManifest.xml
+3
-0
app/src/main/java/com/kaluwa/enterprises/babycare/activities/DashboardActivity.java
...wa/enterprises/babycare/activities/DashboardActivity.java
+3
-1
app/src/main/java/com/kaluwa/enterprises/babycare/activities/LiveFeedActivity.java
...uwa/enterprises/babycare/activities/LiveFeedActivity.java
+50
-30
app/src/main/java/com/kaluwa/enterprises/babycare/activities/LiveVocalActivity.java
...wa/enterprises/babycare/activities/LiveVocalActivity.java
+114
-0
app/src/main/java/com/kaluwa/enterprises/babycare/config/BabyEmotionWebSocketListener.java
...rprises/babycare/config/BabyEmotionWebSocketListener.java
+1
-1
app/src/main/res/drawable/ico_flash_off.xml
app/src/main/res/drawable/ico_flash_off.xml
+7
-0
app/src/main/res/drawable/ico_flash_on.xml
app/src/main/res/drawable/ico_flash_on.xml
+5
-0
app/src/main/res/drawable/ico_no_sound.xml
app/src/main/res/drawable/ico_no_sound.xml
+9
-0
app/src/main/res/drawable/ico_sound.xml
app/src/main/res/drawable/ico_sound.xml
+13
-0
app/src/main/res/drawable/sound_line.xml
app/src/main/res/drawable/sound_line.xml
+5
-0
app/src/main/res/drawable/sound_offline.png
app/src/main/res/drawable/sound_offline.png
+0
-0
app/src/main/res/layout/activity_live_feed.xml
app/src/main/res/layout/activity_live_feed.xml
+17
-14
app/src/main/res/layout/activity_live_vocal.xml
app/src/main/res/layout/activity_live_vocal.xml
+108
-0
No files found.
.idea/other.xml
View file @
061b8cca
...
...
@@ -323,17 +323,6 @@
<option
name=
"screenX"
value=
"1080"
/>
<option
name=
"screenY"
value=
"2424"
/>
</PersistentDeviceSelectionData>
<PersistentDeviceSelectionData>
<option
name=
"api"
value=
"29"
/>
<option
name=
"brand"
value=
"samsung"
/>
<option
name=
"codename"
value=
"x1q"
/>
<option
name=
"id"
value=
"x1q"
/>
<option
name=
"manufacturer"
value=
"Samsung"
/>
<option
name=
"name"
value=
"Galaxy S20"
/>
<option
name=
"screenDensity"
value=
"480"
/>
<option
name=
"screenX"
value=
"1440"
/>
<option
name=
"screenY"
value=
"3200"
/>
</PersistentDeviceSelectionData>
</list>
</option>
</component>
...
...
app/src/main/AndroidManifest.xml
View file @
061b8cca
...
...
@@ -17,6 +17,9 @@
android:supportsRtl=
"true"
android:theme=
"@style/Theme.BabyCare"
tools:targetApi=
"31"
>
<activity
android:name=
".activities.LiveVocalActivity"
android:exported=
"false"
/>
<activity
android:name=
".activities.ApplicationSettingsActivity"
android:exported=
"false"
/>
...
...
app/src/main/java/com/kaluwa/enterprises/babycare/activities/DashboardActivity.java
View file @
061b8cca
...
...
@@ -45,7 +45,9 @@ public class DashboardActivity extends AppCompatActivity {
animationChanger
(
this
);
});
btn2
.
setOnClickListener
(
v
->
{
Intent
intent
=
new
Intent
(
this
,
LiveVocalActivity
.
class
);
startActivity
(
intent
);
animationChanger
(
this
);
});
btn3
.
setOnClickListener
(
v
->
{
Intent
intent
=
new
Intent
(
this
,
ActivityLogsActivity
.
class
);
...
...
app/src/main/java/com/kaluwa/enterprises/babycare/activities/LiveFeedActivity.java
View file @
061b8cca
...
...
@@ -10,6 +10,7 @@ import static com.kaluwa.enterprises.babycare.utils.Utils.animationChanger;
import
android.content.Intent
;
import
android.graphics.Bitmap
;
import
android.graphics.BitmapFactory
;
import
android.graphics.Matrix
;
import
android.os.Bundle
;
import
android.os.Handler
;
import
android.util.Log
;
...
...
@@ -46,7 +47,7 @@ public class LiveFeedActivity extends AppCompatActivity {
private
static
final
String
TAG
=
"LiveFeedActivity"
;
private
ImageView
ivLiveFeed
;
private
Button
lfFlashBtn
;
private
ImageView
lfFlashBtn
;
private
TextView
tvLlStatusValue
;
private
Handler
handler
=
new
Handler
();
...
...
@@ -74,37 +75,45 @@ public class LiveFeedActivity extends AppCompatActivity {
// Start updating
handler
.
post
(
updateRunnable
);
// Toggle flashlight
lfFlashBtn
.
setOnClickListener
(
v
->
toggleFlashlight
());
}
private
void
toggleFlashlight
()
{
String
currentText
=
lfFlashBtn
.
getText
().
toString
();
String
url
=
currentText
.
equals
(
"FLASH ON"
)
?
LIVE_FEED_URL
+
"/flashlight/on"
:
LIVE_FEED_URL
+
"/flashlight/off"
;
String
newText
=
currentText
.
equals
(
"FLASH ON"
)
?
"FLASH OFF"
:
"FLASH ON"
;
lfFlashBtn
.
setOnClickListener
(
new
View
.
OnClickListener
()
{
boolean
isFlashOn
=
false
;
// Track flash status
// Call the API in a background thread
new
Thread
(()
->
{
try
{
URL
apiUrl
=
new
URL
(
url
);
HttpURLConnection
connection
=
(
HttpURLConnection
)
apiUrl
.
openConnection
();
connection
.
setRequestMethod
(
"GET"
);
connection
.
connect
();
int
responseCode
=
connection
.
getResponseCode
();
if
(
responseCode
==
200
)
{
// Update the button text on the main thread
runOnUiThread
(()
->
lfFlashBtn
.
setText
(
newText
));
}
else
{
Log
.
e
(
TAG
,
"Failed to call API: "
+
responseCode
);
}
connection
.
disconnect
();
}
catch
(
IOException
e
)
{
Log
.
e
(
TAG
,
"Error calling flashlight API"
,
e
);
@Override
public
void
onClick
(
View
v
)
{
// Determine the URL and icon based on the flash status
String
url
=
isFlashOn
?
LIVE_FEED_URL
+
"/flashlight/off"
:
LIVE_FEED_URL
+
"/flashlight/on"
;
int
iconResId
=
isFlashOn
?
R
.
drawable
.
ico_flash_off
:
R
.
drawable
.
ico_flash_on
;
// Icons for flash on/off
// Call the API in a background thread
new
Thread
(()
->
{
try
{
URL
apiUrl
=
new
URL
(
url
);
HttpURLConnection
connection
=
(
HttpURLConnection
)
apiUrl
.
openConnection
();
connection
.
setRequestMethod
(
"GET"
);
connection
.
connect
();
int
responseCode
=
connection
.
getResponseCode
();
if
(
responseCode
==
200
)
{
// Successfully called the API, update the ImageView and flash status on the main thread
runOnUiThread
(()
->
{
lfFlashBtn
.
setImageResource
(
iconResId
);
// Update the ImageView icon
isFlashOn
=
!
isFlashOn
;
// Toggle the flash status
});
}
else
{
Log
.
e
(
TAG
,
"Failed to call API: "
+
responseCode
);
}
connection
.
disconnect
();
}
catch
(
IOException
e
)
{
Log
.
e
(
TAG
,
"Error calling flashlight API"
,
e
);
}
}).
start
();
}
}).
start
();
});
}
@Override
protected
void
onStart
()
{
super
.
onStart
();
...
...
@@ -130,13 +139,24 @@ public class LiveFeedActivity extends AppCompatActivity {
private
void
fetchAndDisplayImage
()
{
new
Thread
(()
->
{
try
{
URL
url
=
new
URL
(
LIVE_FEED_URL
+
"/cam-hi.jpg"
);
URL
url
=
new
URL
(
LIVE_FEED_URL
+
"/cam-hi.jpg"
);
HttpURLConnection
connection
=
(
HttpURLConnection
)
url
.
openConnection
();
connection
.
setDoInput
(
true
);
connection
.
connect
();
InputStream
input
=
connection
.
getInputStream
();
Bitmap
bitmap
=
BitmapFactory
.
decodeStream
(
input
);
runOnUiThread
(()
->
ivLiveFeed
.
setImageBitmap
(
bitmap
));
// Ensure the bitmap is mutable by creating a copy if necessary
bitmap
=
bitmap
.
copy
(
Bitmap
.
Config
.
ARGB_8888
,
true
);
// Create a matrix to flip the bitmap both horizontally and vertically
Matrix
matrix
=
new
Matrix
();
matrix
.
setScale
(-
1.0f
,
-
1.0f
);
// Flip both horizontally (X-axis) and vertically (Y-axis)
// Create a new bitmap using the matrix
Bitmap
flippedBitmap
=
Bitmap
.
createBitmap
(
bitmap
,
0
,
0
,
bitmap
.
getWidth
(),
bitmap
.
getHeight
(),
matrix
,
true
);
runOnUiThread
(()
->
ivLiveFeed
.
setImageBitmap
(
flippedBitmap
));
// Set the flipped bitmap in the ImageView
}
catch
(
Exception
e
)
{
Log
.
e
(
TAG
,
"Error fetching image"
,
e
);
// If there's an error, set the default image
...
...
app/src/main/java/com/kaluwa/enterprises/babycare/activities/LiveVocalActivity.java
0 → 100644
View file @
061b8cca
package
com.kaluwa.enterprises.babycare.activities
;
import
static
com
.
kaluwa
.
enterprises
.
babycare
.
config
.
TokenSaver
.
clearToken
;
import
static
com
.
kaluwa
.
enterprises
.
babycare
.
utils
.
Utils
.
animationChanger
;
import
android.content.Intent
;
import
android.os.Bundle
;
import
android.view.Gravity
;
import
android.view.Menu
;
import
android.view.MenuInflater
;
import
android.view.MenuItem
;
import
android.view.View
;
import
android.widget.ImageView
;
import
android.widget.Toast
;
import
androidx.activity.EdgeToEdge
;
import
androidx.annotation.NonNull
;
import
androidx.appcompat.app.AppCompatActivity
;
import
androidx.appcompat.widget.PopupMenu
;
import
androidx.appcompat.widget.Toolbar
;
import
androidx.core.graphics.Insets
;
import
androidx.core.view.ViewCompat
;
import
androidx.core.view.WindowInsetsCompat
;
import
com.kaluwa.enterprises.babycare.MainActivity
;
import
com.kaluwa.enterprises.babycare.R
;
public
class
LiveVocalActivity
extends
AppCompatActivity
{
private
ImageView
lvSoundBtn
;
@Override
protected
void
onCreate
(
Bundle
savedInstanceState
)
{
super
.
onCreate
(
savedInstanceState
);
setContentView
(
R
.
layout
.
activity_live_vocal
);
// define actionbar
defineActionbar
();
lvSoundBtn
=
findViewById
(
R
.
id
.
lvSoundBtn
);
lvSoundBtn
.
setOnClickListener
(
new
View
.
OnClickListener
()
{
boolean
isSoundOff
=
true
;
// To track the current state
@Override
public
void
onClick
(
View
v
)
{
if
(
isSoundOff
)
{
lvSoundBtn
.
setImageResource
(
R
.
drawable
.
ico_sound
);
// Switch to sound on icon
}
else
{
lvSoundBtn
.
setImageResource
(
R
.
drawable
.
ico_no_sound
);
// Switch to no sound icon
}
isSoundOff
=
!
isSoundOff
;
// Toggle the state
}
});
}
private
void
defineActionbar
()
{
Toolbar
toolbar
=
findViewById
(
R
.
id
.
b_care_action_bar
);
setSupportActionBar
(
toolbar
);
if
(
getSupportActionBar
()
!=
null
)
{
getSupportActionBar
().
setDisplayShowTitleEnabled
(
false
);
}
toolbar
.
setNavigationIcon
(
R
.
drawable
.
ico_menu_32
);
toolbar
.
setNavigationOnClickListener
(
v
->
{
// Initializing the popup menu and giving the reference as current context
PopupMenu
popupMenu
=
new
PopupMenu
(
this
,
toolbar
);
popupMenu
.
setGravity
(
Gravity
.
BOTTOM
);
popupMenu
.
getMenuInflater
().
inflate
(
R
.
menu
.
menu_main
,
popupMenu
.
getMenu
());
popupMenu
.
setOnMenuItemClickListener
(
item
->
{
int
id
=
item
.
getItemId
();
if
(
id
==
R
.
id
.
mm_device_setting
)
{
Toast
.
makeText
(
this
,
"You Clicked "
+
item
.
getTitle
(),
Toast
.
LENGTH_SHORT
).
show
();
}
else
if
(
id
==
R
.
id
.
mm_app_setting
)
{
Toast
.
makeText
(
this
,
"You Clicked "
+
item
.
getTitle
(),
Toast
.
LENGTH_SHORT
).
show
();
}
else
if
(
id
==
R
.
id
.
mm_logout
)
{
clearToken
(
getApplicationContext
());
Toast
.
makeText
(
this
,
"Logout successful."
,
Toast
.
LENGTH_SHORT
).
show
();
Intent
intent
=
new
Intent
(
this
,
MainActivity
.
class
);
intent
.
setFlags
(
Intent
.
FLAG_ACTIVITY_CLEAR_TOP
|
Intent
.
FLAG_ACTIVITY_NEW_TASK
);
startActivity
(
intent
);
finish
();
animationChanger
(
this
);
}
return
true
;
});
popupMenu
.
show
();
});
}
@Override
public
boolean
onCreateOptionsMenu
(
Menu
menu
)
{
MenuInflater
inflater
=
getMenuInflater
();
inflater
.
inflate
(
R
.
menu
.
user_action_menu
,
menu
);
return
true
;
}
@Override
public
boolean
onOptionsItemSelected
(
@NonNull
MenuItem
item
)
{
int
id
=
item
.
getItemId
();
if
(
id
==
R
.
id
.
user
)
{
Intent
intent
=
new
Intent
(
this
,
UserProfileActivity
.
class
);
startActivity
(
intent
);
animationChanger
(
this
);
}
else
{
Toast
.
makeText
(
this
,
"No item."
,
Toast
.
LENGTH_SHORT
).
show
();
}
return
super
.
onOptionsItemSelected
(
item
);
}
@Override
public
void
onBackPressed
()
{
super
.
onBackPressed
();
animationChanger
(
this
);
}
}
\ No newline at end of file
app/src/main/java/com/kaluwa/enterprises/babycare/config/BabyEmotionWebSocketListener.java
View file @
061b8cca
...
...
@@ -41,7 +41,7 @@ public class BabyEmotionWebSocketListener extends WebSocketListener {
// Capitalize the first letter
String
capitalizedEmotion
=
emotion
.
substring
(
0
,
1
).
toUpperCase
()
+
emotion
.
substring
(
1
);
if
(
capitalizedEmotion
.
equals
(
"Null"
))
{
statusValueTextView
.
setText
(
"No
emotion
detected!"
);
statusValueTextView
.
setText
(
"No
t
detected!"
);
}
else
{
statusValueTextView
.
setText
(
capitalizedEmotion
);
}
...
...
app/src/main/res/drawable/ico_flash_off.xml
0 → 100644
View file @
061b8cca
<vector
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:height=
"35dp"
android:viewportHeight=
"100"
android:viewportWidth=
"100"
android:width=
"35dp"
>
<path
android:fillColor=
"#000000"
android:pathData=
"M50,21c-6.2,7.7 -11.5,14 -11.9,14 -0.3,-0 -5.3,-4.7 -11.1,-10.5 -9.9,-9.9 -13,-12.1 -13,-9.2 0,1.6 69.1,70.7 70.8,70.7 2.8,-0 0.6,-3.1 -9.8,-13.5l-11,-11 6.5,-8c9,-11.2 8.9,-11.4 -4.3,-11.7l-10.9,-0.3 4.7,-16.5c2.6,-9.1 4.6,-16.8 4.3,-17.3 -1.2,-2.1 -4,0.5 -14.3,13.3z"
android:strokeColor=
"#00000000"
/>
<path
android:fillColor=
"#000000"
android:pathData=
"M28.2,48.3c-7.6,9.5 -7.4,9.7 5.8,9.7 6.1,-0 11,0.4 11,0.9 0,0.5 -2,7.5 -4.5,15.6 -5.4,17.7 -5.4,17.8 -3.4,18.3 1.1,0.2 4.9,-3.8 11.1,-11.5 5.2,-6.5 9.7,-12.3 10.1,-12.9 0.3,-0.6 -5.2,-6.8 -12.2,-13.8l-12.8,-12.8 -5.1,6.5z"
android:strokeColor=
"#00000000"
/>
</vector>
app/src/main/res/drawable/ico_flash_on.xml
0 → 100644
View file @
061b8cca
<vector
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:height=
"35dp"
android:viewportHeight=
"100"
android:viewportWidth=
"100"
android:width=
"35dp"
>
<path
android:fillColor=
"#000000"
android:pathData=
"M42.1,30.9c-10.5,13.1 -19.1,24.6 -19.1,25.5 0,1.4 1.5,1.6 11,1.6 6.1,-0 11,0.4 11,0.9 0,0.5 -2,7.5 -4.5,15.6 -5.4,17.7 -5.4,17.8 -3.4,18.3 1.9,0.3 39.9,-46.5 39.9,-49.1 0,-1.4 -1.7,-1.7 -10.8,-1.9l-10.9,-0.3 4.7,-16.5c2.6,-9.1 4.6,-16.8 4.3,-17.3 -1.3,-2.2 -4.8,1.5 -22.2,23.2z"
android:strokeColor=
"#00000000"
/>
</vector>
app/src/main/res/drawable/ico_no_sound.xml
0 → 100644
View file @
061b8cca
<vector
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:height=
"35dp"
android:viewportHeight=
"100"
android:viewportWidth=
"100"
android:width=
"35dp"
>
<path
android:fillColor=
"#000000"
android:pathData=
"M1,1.8c0,1.9 95.8,98.2 97.8,98.2 3,-0 0.7,-4.1 -6.3,-11l-7.4,-7.4 4,-4.4c2.3,-2.4 5.5,-7.3 7.2,-11 2.9,-6.1 3.2,-7.5 3.1,-16.2 0,-12.4 -2.5,-18.8 -10.2,-27.1 -5.3,-5.8 -12.3,-10.5 -13.6,-9.2 -1.5,1.5 -0.3,3.2 4.5,6.3 6.5,4.2 11.4,10.8 13.9,18.9 4,12.6 1.7,24 -6.8,34.6 -3.9,4.8 -5,5 -8.3,1.9l-2.8,-2.7 2.8,-3.6c4.5,-5.8 6.3,-10.1 6.8,-16.6 0.6,-7.2 -0.7,-12.8 -4.5,-18.3 -3.1,-4.7 -10.6,-10.7 -12.2,-9.7 -1.9,1.2 -0.9,3 3.4,6.2 10.8,7.9 12.5,24.9 3.7,35.4l-3,3.4 -3.7,-3.7 -3.7,-3.6 2.6,-3.2c3.3,-3.9 4.1,-6.9 3.2,-11.7 -1.1,-6.3 -9.8,-12.9 -12,-9.3 -0.3,0.5 0.9,1.9 2.8,3 6.1,3.6 7.4,9.9 3.1,15l-2.7,3.1 -4.3,-4.2 -4.4,-4.3 0,-20.1c0,-16.5 -0.3,-20.4 -1.6,-22.3 -2.9,-4.2 -5.9,-2.9 -15.8,6.8l-9.2,9 -11.9,-12c-11.8,-11.8 -14.5,-13.7 -14.5,-10.2z"
android:strokeColor=
"#00000000"
/>
<path
android:fillColor=
"#000000"
android:pathData=
"M20.7,30.7c-0.4,0.3 -0.7,9 -0.7,19.3l0,18.6 12.8,12.7c9.9,9.7 13.5,12.7 15.5,12.7 4.8,-0 5.7,-2.9 5.7,-18.5l0,-14 -15.8,-15.8c-8.6,-8.6 -16,-15.7 -16.3,-15.7 -0.3,-0 -0.9,0.3 -1.2,0.7z"
android:strokeColor=
"#00000000"
/>
<path
android:fillColor=
"#000000"
android:pathData=
"M2,34c-1.8,1.8 -2,3.3 -2,16 0,17.1 0.5,18 10,18l6,-0 0,-18 0,-18 -6,-0c-4.7,-0 -6.4,0.4 -8,2z"
android:strokeColor=
"#00000000"
/>
</vector>
app/src/main/res/drawable/ico_sound.xml
0 → 100644
View file @
061b8cca
<vector
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:height=
"35dp"
android:viewportHeight=
"100"
android:viewportWidth=
"100"
android:width=
"35dp"
>
<path
android:fillColor=
"#000000"
android:pathData=
"M37.7,17.8l-13.7,13.7 0,18.5 0,18.5 13.8,13.8c7.5,7.5 14.5,13.7 15.4,13.7 0.9,-0 2.4,-0.7 3.2,-1.6 1.4,-1.4 1.6,-6.8 1.6,-44.4 0,-37.6 -0.2,-43 -1.6,-44.4 -0.8,-0.9 -2.3,-1.6 -3.2,-1.6 -1,-0 -7.9,6.2 -15.5,13.8z"
android:strokeColor=
"#00000000"
/>
<path
android:fillColor=
"#000000"
android:pathData=
"M78.4,22.5c-0.4,1.1 0.7,2.7 3.4,5.1 2.2,1.9 5.3,6 6.9,9.2 2.3,4.7 2.8,7 2.8,13.2 0,6.2 -0.5,8.5 -2.8,13.2 -1.6,3.2 -4.7,7.3 -6.9,9.2 -2.7,2.4 -3.8,4 -3.4,5.1 0.8,2.2 3.1,0.8 8.5,-5 6.6,-7.1 8.6,-12.4 8.6,-22.5 0,-10.1 -2,-15.4 -8.6,-22.5 -5.4,-5.8 -7.7,-7.2 -8.5,-5z"
android:strokeColor=
"#00000000"
/>
<path
android:fillColor=
"#000000"
android:pathData=
"M71.4,32.5c-0.4,0.9 0.4,2.4 2.1,3.7 3.4,2.7 6.5,9.2 6.5,13.8 0,4.6 -3.1,11.1 -6.5,13.8 -1.7,1.3 -2.5,2.8 -2.1,3.7 0.8,2.2 1.8,1.9 5.5,-1.7 5.1,-4.9 6.5,-8.5 6.5,-15.8 0,-7.3 -1.4,-10.9 -6.5,-15.8 -3.7,-3.6 -4.7,-3.9 -5.5,-1.7z"
android:strokeColor=
"#00000000"
/>
<path
android:fillColor=
"#000000"
android:pathData=
"M6,34c-1.8,1.8 -2,3.3 -2,16 0,17.1 0.5,18 10,18l6,-0 0,-18 0,-18 -6,-0c-4.7,-0 -6.4,0.4 -8,2z"
android:strokeColor=
"#00000000"
/>
<path
android:fillColor=
"#000000"
android:pathData=
"M64.6,42.5c-0.3,0.9 0.3,2.4 1.4,3.5 1.1,1.1 2,2.9 2,4 0,1.1 -0.9,2.9 -2,4 -1.9,1.9 -1.8,5 0.1,5 1.6,-0 4.8,-3.9 5.5,-6.5 0.8,-3.3 -0.2,-7.1 -2.6,-9.5 -2.4,-2.4 -3.6,-2.5 -4.4,-0.5z"
android:strokeColor=
"#00000000"
/>
</vector>
app/src/main/res/drawable/sound_line.xml
0 → 100644
View file @
061b8cca
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android=
"http://schemas.android.com/apk/res/android"
>
<size
android:height=
"2dp"
/>
<solid
android:color=
"#000000"
/>
<!-- You can change the color as needed -->
</shape>
app/src/main/res/drawable/sound_offline.png
0 → 100644
View file @
061b8cca
62.1 KB
app/src/main/res/layout/activity_live_feed.xml
View file @
061b8cca
...
...
@@ -43,19 +43,21 @@
android:src=
"@drawable/live_offline"
android:background=
"@drawable/borders"
/>
<Button
android:id=
"@+id/lfFlashBtn"
android:layout_width=
"150dp"
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginLeft=
"40dp"
android:layout_marginTop=
"28dp"
android:layout_marginRight=
"40dp"
android:background=
"@drawable/positive_btn_background"
android:fontFamily=
"@font/abril_fatface_regular"
android:padding=
"6dp"
android:text=
"FLASH ON"
android:textColor=
"@color/white"
android:textSize=
"18sp"
/>
android:orientation=
"horizontal"
android:layout_marginTop=
"60dp"
android:gravity=
"center"
>
<ImageView
android:id=
"@+id/lfFlashBtn"
android:layout_width=
"50dp"
android:layout_height=
"50dp"
android:src=
"@drawable/ico_flash_off"
app:tint=
"@color/dark_purple"
/>
</LinearLayout>
</LinearLayout>
<!-- New LinearLayout for displaying the status -->
...
...
@@ -66,6 +68,7 @@
app:layout_constraintTop_toBottomOf=
"@+id/llLiveFeedBox"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintBottom_toBottomOf=
"parent"
android:orientation=
"horizontal"
android:gravity=
"center"
android:padding=
"16dp"
>
...
...
@@ -74,7 +77,7 @@
android:id=
"@+id/tvLlStatusLabel"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"
Last Baby's
Mood:"
android:text=
"Mood:"
android:textColor=
"@color/black"
android:textSize=
"18sp"
android:layout_marginEnd=
"8dp"
/>
...
...
@@ -83,7 +86,7 @@
android:id=
"@+id/tvLlStatusValue"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"No
emotion
detected!"
android:text=
"No
t
detected!"
android:textColor=
"@color/black"
android:textStyle=
"bold"
android:textSize=
"18sp"
/>
...
...
app/src/main/res/layout/activity_live_vocal.xml
0 → 100644
View file @
061b8cca
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
xmlns:tools=
"http://schemas.android.com/tools"
android:id=
"@+id/main"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
tools:context=
".activities.LiveVocalActivity"
>
<include
layout=
"@layout/appbar"
/>
<ImageView
android:id=
"@+id/background"
android:layout_width=
"match_parent"
android:layout_height=
"0dp"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@id/b_care_action_bar"
app:layout_constraintBottom_toBottomOf=
"parent"
android:src=
"@drawable/background"
android:contentDescription=
"background-image"
android:scaleType=
"centerCrop"
android:alpha=
"0.4"
/>
<LinearLayout
android:id=
"@+id/lvLiveFeedBox"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
app:layout_constraintTop_toTopOf=
"@+id/background"
app:layout_constraintStart_toStartOf=
"@id/background"
app:layout_constraintEnd_toEndOf=
"@id/background"
android:orientation=
"vertical"
android:gravity=
"center"
android:padding=
"16dp"
>
<FrameLayout
android:layout_width=
"match_parent"
android:layout_height=
"200dp"
android:layout_marginTop=
"16dp"
>
<ImageView
android:id=
"@+id/ivLiveVocalFeed"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:maxHeight=
"350dp"
android:scaleType=
"centerInside"
android:background=
"@drawable/borders"
/>
<View
android:layout_width=
"match_parent"
android:layout_height=
"2dp"
android:layout_gravity=
"center_horizontal|center_vertical"
android:background=
"@android:color/black"
/>
<!-- This is the horizontal line -->
</FrameLayout>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:orientation=
"horizontal"
android:layout_marginTop=
"60dp"
android:gravity=
"center"
>
<ImageView
android:id=
"@+id/lvSoundBtn"
android:layout_width=
"50dp"
android:layout_height=
"50dp"
android:src=
"@drawable/ico_no_sound"
app:tint=
"@color/dark_purple"
/>
</LinearLayout>
</LinearLayout>
<!-- New LinearLayout for displaying the status -->
<LinearLayout
android:id=
"@+id/lvStatusBox"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
app:layout_constraintTop_toBottomOf=
"@+id/lvLiveFeedBox"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintBottom_toBottomOf=
"parent"
android:orientation=
"horizontal"
android:gravity=
"center"
android:padding=
"16dp"
>
<TextView
android:id=
"@+id/tvLvStatusLabel"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"Vocal Mood:"
android:textColor=
"@color/black"
android:textSize=
"18sp"
android:layout_marginEnd=
"8dp"
/>
<TextView
android:id=
"@+id/tvLvStatusValue"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"Not detected!"
android:textColor=
"@color/black"
android:textStyle=
"bold"
android:textSize=
"18sp"
/>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
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