improved main and fitness layout

This commit is contained in:
SebasKoedam
2024-05-23 18:09:43 +02:00
parent 9795ccb490
commit 25f9f098b0
9 changed files with 121 additions and 118 deletions

View File

@@ -16,6 +16,8 @@
<entry key="..\:/Users/Niels/muupooviixee66-3/code/src/Fitbot/app/src/main/res/layout/activity_fitness.xml" value="0.1234375" /> <entry key="..\:/Users/Niels/muupooviixee66-3/code/src/Fitbot/app/src/main/res/layout/activity_fitness.xml" value="0.1234375" />
<entry key="..\:/Users/Niels/muupooviixee66-3/code/src/Fitbot/app/src/main/res/layout/activity_main.xml" value="0.1" /> <entry key="..\:/Users/Niels/muupooviixee66-3/code/src/Fitbot/app/src/main/res/layout/activity_main.xml" value="0.1" />
<entry key="..\:/Users/Niels/muupooviixee66-3/code/src/Fitbot/app/src/main/res/layout/header.xml" value="0.1234375" /> <entry key="..\:/Users/Niels/muupooviixee66-3/code/src/Fitbot/app/src/main/res/layout/header.xml" value="0.1234375" />
<entry key="..\:/Users/sebas/.gradle/caches/transforms-3/9c4b978f8e84c8bb9ebef5f19e8c189e/transformed/qisdk-design-1.7.5/res/layout/activity_robot.xml" value="0.1" />
<entry key="..\:/Users/sebas/.gradle/caches/transforms-3/9c4b978f8e84c8bb9ebef5f19e8c189e/transformed/qisdk-design-1.7.5/res/layout/view_always_top_speech_bar.xml" value="0.1" />
<entry key="..\:/Users/sebas/Documents/HvA/Reposetories/muupooviixee66/code/src/Fitbot/app/src/main/res/drawable-v24/ic_launcher_foreground.xml" value="0.25" /> <entry key="..\:/Users/sebas/Documents/HvA/Reposetories/muupooviixee66/code/src/Fitbot/app/src/main/res/drawable-v24/ic_launcher_foreground.xml" value="0.25" />
<entry key="..\:/Users/sebas/Documents/HvA/Reposetories/muupooviixee66/code/src/Fitbot/app/src/main/res/drawable/darkred_button_gradient.xml" value="0.346" /> <entry key="..\:/Users/sebas/Documents/HvA/Reposetories/muupooviixee66/code/src/Fitbot/app/src/main/res/drawable/darkred_button_gradient.xml" value="0.346" />
<entry key="..\:/Users/sebas/Documents/HvA/Reposetories/muupooviixee66/code/src/Fitbot/app/src/main/res/drawable/ic_baseline_home_48.xml" value="0.25" /> <entry key="..\:/Users/sebas/Documents/HvA/Reposetories/muupooviixee66/code/src/Fitbot/app/src/main/res/drawable/ic_baseline_home_48.xml" value="0.25" />
@@ -24,15 +26,16 @@
<entry key="..\:/Users/sebas/Documents/HvA/Reposetories/muupooviixee66/code/src/Fitbot/app/src/main/res/drawable/ic_launcher_background.xml" value="0.25" /> <entry key="..\:/Users/sebas/Documents/HvA/Reposetories/muupooviixee66/code/src/Fitbot/app/src/main/res/drawable/ic_launcher_background.xml" value="0.25" />
<entry key="..\:/Users/sebas/Documents/HvA/Reposetories/muupooviixee66/code/src/Fitbot/app/src/main/res/drawable/red_button_gradient.xml" value="0.346" /> <entry key="..\:/Users/sebas/Documents/HvA/Reposetories/muupooviixee66/code/src/Fitbot/app/src/main/res/drawable/red_button_gradient.xml" value="0.346" />
<entry key="..\:/Users/sebas/Documents/HvA/Reposetories/muupooviixee66/code/src/Fitbot/app/src/main/res/layout/activity_bicepvideo.xml" value="0.22826086956521738" /> <entry key="..\:/Users/sebas/Documents/HvA/Reposetories/muupooviixee66/code/src/Fitbot/app/src/main/res/layout/activity_bicepvideo.xml" value="0.22826086956521738" />
<entry key="..\:/Users/sebas/Documents/HvA/Reposetories/muupooviixee66/code/src/Fitbot/app/src/main/res/layout/activity_fitness.xml" value="0.125" /> <entry key="..\:/Users/sebas/Documents/HvA/Reposetories/muupooviixee66/code/src/Fitbot/app/src/main/res/layout/activity_end_screen.xml" value="0.10499174917491749" />
<entry key="..\:/Users/sebas/Documents/HvA/Reposetories/muupooviixee66/code/src/Fitbot/app/src/main/res/layout/activity_main.xml" value="0.1" /> <entry key="..\:/Users/sebas/Documents/HvA/Reposetories/muupooviixee66/code/src/Fitbot/app/src/main/res/layout/activity_fitness.xml" value="0.33" />
<entry key="..\:/Users/sebas/Documents/HvA/Reposetories/muupooviixee66/code/src/Fitbot/app/src/main/res/layout/activity_main.xml" value="0.25" />
<entry key="..\:/Users/sebas/Documents/HvA/Reposetories/muupooviixee66/code/src/Fitbot/app/src/main/res/layout/activity_main_screen.xml" value="0.1" /> <entry key="..\:/Users/sebas/Documents/HvA/Reposetories/muupooviixee66/code/src/Fitbot/app/src/main/res/layout/activity_main_screen.xml" value="0.1" />
<entry key="..\:/Users/sebas/Documents/HvA/Reposetories/muupooviixee66/code/src/Fitbot/app/src/main/res/layout/activity_power_screen.xml" value="0.1" /> <entry key="..\:/Users/sebas/Documents/HvA/Reposetories/muupooviixee66/code/src/Fitbot/app/src/main/res/layout/activity_power_screen.xml" value="0.1" />
<entry key="..\:/Users/sebas/Documents/HvA/Reposetories/muupooviixee66/code/src/Fitbot/app/src/main/res/layout/activity_sport_item.xml" value="0.1" /> <entry key="..\:/Users/sebas/Documents/HvA/Reposetories/muupooviixee66/code/src/Fitbot/app/src/main/res/layout/activity_sport_item.xml" value="0.1" />
<entry key="..\:/Users/sebas/Documents/HvA/Reposetories/muupooviixee66/code/src/Fitbot/app/src/main/res/layout/activity_sport_menu.xml" value="0.1" /> <entry key="..\:/Users/sebas/Documents/HvA/Reposetories/muupooviixee66/code/src/Fitbot/app/src/main/res/layout/activity_sport_menu.xml" value="0.1" />
<entry key="..\:/Users/sebas/Documents/HvA/Reposetories/muupooviixee66/code/src/Fitbot/app/src/main/res/layout/header.xml" value="0.125" /> <entry key="..\:/Users/sebas/Documents/HvA/Reposetories/muupooviixee66/code/src/Fitbot/app/src/main/res/layout/header.xml" value="0.1" />
<entry key="..\:/Users/sebas/Documents/HvA/Reposetories/muupooviixee66/code/src/Fitbot/app/src/main/res/layout/toolbar.xml" value="0.125" /> <entry key="..\:/Users/sebas/Documents/HvA/Reposetories/muupooviixee66/code/src/Fitbot/app/src/main/res/layout/toolbar.xml" value="0.125" />
<entry key="..\:/Users/sebas/Documents/HvA/Reposetories/muupooviixee66/code/src/Fitbot/app/src/main/res/menu/main_menu.xml" value="0.125" /> <entry key="..\:/Users/sebas/Documents/HvA/Reposetories/muupooviixee66/code/src/Fitbot/app/src/main/res/menu/main_menu.xml" value="0.33" />
<entry key="app/src/main/res/layout/activity_end_screen.xml" value="0.1" /> <entry key="app/src/main/res/layout/activity_end_screen.xml" value="0.1" />
<entry key="app/src/main/res/layout/activity_fitness.xml" value="0.23550724637681159" /> <entry key="app/src/main/res/layout/activity_fitness.xml" value="0.23550724637681159" />
<entry key="app/src/main/res/layout/activity_main.xml" value="0.1" /> <entry key="app/src/main/res/layout/activity_main.xml" value="0.1" />

View File

@@ -3,6 +3,7 @@ package com.example.fitbot.ui.activities;
import android.net.Uri; import android.net.Uri;
import android.os.Bundle; import android.os.Bundle;
import android.util.Log; import android.util.Log;
import android.view.View;
import android.widget.MediaController; import android.widget.MediaController;
import android.widget.VideoView; import android.widget.VideoView;
@@ -19,7 +20,7 @@ import org.joml.Vector3f;
public class FitnessActivity extends RobotActivity implements RobotLifecycleCallbacks { public class FitnessActivity extends RobotActivity implements RobotLifecycleCallbacks {
// PersonalMotionPreviewElement personalMotionPreviewElement; // PersonalMotionPreviewElement personalMotionPreviewElement;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
@@ -28,6 +29,7 @@ public class FitnessActivity extends RobotActivity implements RobotLifecycleCall
// Set the content view to the appropriate layout // Set the content view to the appropriate layout
setContentView(R.layout.activity_fitness); setContentView(R.layout.activity_fitness);
// Find the VideoView by its ID // Find the VideoView by its ID
VideoView videoView = findViewById(R.id.videoView); VideoView videoView = findViewById(R.id.videoView);

View File

@@ -1,16 +1,10 @@
package com.example.fitbot.ui.activities; package com.example.fitbot.ui.activities;
import android.Manifest;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;
import android.bluetooth.BluetoothAdapter;
import android.content.Intent; import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.Uri; import android.net.Uri;
import android.os.Bundle; import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.design.widget.NavigationView; import android.support.design.widget.NavigationView;
import android.support.v4.app.ActivityCompat;
import android.support.v4.content.ContextCompat;
import android.support.v4.view.GravityCompat; import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout; import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle; import android.support.v7.app.ActionBarDrawerToggle;
@@ -20,13 +14,9 @@ import android.util.Log;
import android.widget.Button; import android.widget.Button;
import com.example.fitbot.R; import com.example.fitbot.R;
import com.example.fitbot.wiiboard.WiiBoardDiscoverer;
public class MainActivity extends AppCompatActivity { public class MainActivity extends AppCompatActivity {
private static final int REQUEST_LOCATION_PERMISSION = 1;
private WiiBoardDiscoverer wiiBoardDiscoverer;
//Variables //Variables
DrawerLayout drawerLayout; DrawerLayout drawerLayout;
NavigationView navigationView; NavigationView navigationView;
@@ -48,50 +38,7 @@ public class MainActivity extends AppCompatActivity {
startActivity(intent); startActivity(intent);
}); });
setUpUi(); // Set up the UI
// Check if the device supports Bluetooth
if (BluetoothAdapter.getDefaultAdapter() == null) {
Log.i("WiiBoardDiscoverer", "Device doesn't support Bluetooth. Exiting.");
return;
}
// Request location permissions for Bluetooth discovery on Android 6.0 and above
if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, REQUEST_LOCATION_PERMISSION);
} else {
// Initialize WiiBoardDiscoverer
wiiBoardDiscoverer = new WiiBoardDiscoverer(this);
}
setUpUi();
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == REQUEST_LOCATION_PERMISSION && grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// Permission granted, initialize WiiBoardDiscoverer
wiiBoardDiscoverer = new WiiBoardDiscoverer(this);
} else {
// Handle the case where the user denies the location permission
Log.i("WiiBoardDiscoverer", "Location permission is required for Bluetooth discovery.");
}
}
@Override
protected void onResume() {
super.onResume();
if (wiiBoardDiscoverer != null) {
wiiBoardDiscoverer.startWiiBoardSearch();
}
}
@Override
protected void onPause() {
super.onPause();
if (wiiBoardDiscoverer != null) {
wiiBoardDiscoverer.stopWiiBoardSearch();
}
} }
private void setUpUi() { private void setUpUi() {
@@ -101,27 +48,27 @@ public class MainActivity extends AppCompatActivity {
toolbar = findViewById(R.id.toolbar); toolbar = findViewById(R.id.toolbar);
startButton = findViewById(R.id.startButton); startButton = findViewById(R.id.startButton);
startButton.setOnClickListener(v -> { startButton.setOnClickListener(v -> { // Switch to fitness activity
// Switch to fitness activity
Log.i("MainActivity", "Switching to FitnessActivity"); Log.i("MainActivity", "Switching to FitnessActivity");
Intent intent = new Intent(MainActivity.this, FitnessActivity.class); Intent intent = new Intent(MainActivity.this, FitnessActivity.class);
startActivity(intent); startActivity(intent);
}); });
/*---Tool Bar---*/ /*---Tool Bar---*/
// setSupportActionBar(toolbar); setSupportActionBar(toolbar); // Make the toolbar act as the action bar
getSupportActionBar().setDisplayShowTitleEnabled(false); // Remove the title from the toolbar
/*---Navigation Drawer Menu---*/ /*---Navigation Drawer Menu---*/
navigationView.bringToFront(); navigationView.bringToFront(); // Make the navigation drawer menu clickable
ActionBarDrawerToggle toggle=new ActionBarDrawerToggle toggle=new // Create a toggle for the navigation drawer
ActionBarDrawerToggle(this,drawerLayout,toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close); ActionBarDrawerToggle(this,drawerLayout,toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawerLayout.addDrawerListener(toggle); drawerLayout.addDrawerListener(toggle);
toggle.syncState(); toggle.syncState(); // Synchronize the state of the navigation drawer
} }
@Override @Override
public void onBackPressed(){ public void onBackPressed(){ // Close the navigation drawer when the back button is pressed
if(drawerLayout.isDrawerOpen(GravityCompat.START)){ if(drawerLayout.isDrawerOpen(GravityCompat.START)){
drawerLayout.closeDrawer(GravityCompat.START); drawerLayout.closeDrawer(GravityCompat.START);
} }

View File

@@ -5,8 +5,9 @@ xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/drawer_layout" android:id="@+id/drawer_layout"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:background="@color/red" android:background="@color/black"
android:fitsSystemWindows="true" android:fitsSystemWindows="true"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
tools:context=".ui.activities.FitnessActivity" tools:context=".ui.activities.FitnessActivity"
tools:openDrawer="start"> tools:openDrawer="start">
@@ -23,51 +24,71 @@ tools:openDrawer="start">
<VideoView <VideoView
android:id="@+id/videoView" android:id="@+id/videoView"
android:layout_width="600dp" android:layout_width="450dp"
android:layout_height="550dp" android:layout_height="450dp"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.023" app:layout_constraintHorizontal_bias="0.04"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.064" /> app:layout_constraintVertical_bias="0.2" />
<VideoView
android:id="@+id/videoView2"
android:layout_width="450dp"
android:layout_height="450dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.96"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.2" />
<Button <Button
android:id="@+id/homeButton" android:id="@+id/homeButton"
style="@style/ButtonStyle" android:layout_width="150dp"
android:layout_width="180dp" android:layout_height="75dp"
android:layout_height="120dp" android:background="@drawable/red_button_gradient"
android:text="HOME" android:text="@string/home"
android:textAllCaps="false"
android:textColor="@color/white"
android:textSize="30sp"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.014" app:layout_constraintHorizontal_bias="0.02"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.976" /> app:layout_constraintVertical_bias="0.968" />
<Button <Button
android:id="@+id/skipButton" android:id="@+id/skipButton"
style="@style/ButtonStyle" android:layout_width="150dp"
android:layout_width="180dp" android:layout_height="75dp"
android:layout_height="120dp" android:background="@drawable/red_button_gradient"
android:text="SKIP" android:text="@string/skip"
android:textAllCaps="false"
android:textColor="@color/white"
android:textSize="30sp"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.976" /> app:layout_constraintVertical_bias="0.968" />
<Button <Button
android:id="@+id/buttonComplete" android:id="@+id/buttonComplete"
style="@style/ButtonStyle" android:layout_width="150dp"
android:layout_width="180dp" android:layout_height="75dp"
android:layout_height="120dp" android:background="@drawable/red_button_gradient"
android:text="Complete" android:text="@string/complete"
android:textAllCaps="false"
android:textColor="@color/white"
android:textSize="30sp"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.985" app:layout_constraintHorizontal_bias="0.979"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.976" /> app:layout_constraintVertical_bias="0.968" />
</android.support.constraint.ConstraintLayout> </android.support.constraint.ConstraintLayout>

View File

@@ -6,6 +6,7 @@
android:layout_height="match_parent" android:layout_height="match_parent"
android:background="#232323" android:background="#232323"
android:fitsSystemWindows="true" android:fitsSystemWindows="true"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
tools:context=".ui.activities.MainActivity" tools:context=".ui.activities.MainActivity"
tools:openDrawer="start"> tools:openDrawer="start">
@@ -19,24 +20,30 @@
android:id="@+id/toolbar" android:id="@+id/toolbar"
layout="@layout/toolbar" layout="@layout/toolbar"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" /> android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_marginTop="10dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView <TextView
android:id="@+id/textView2" android:id="@+id/textView2"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="300dp" android:layout_marginStart="232dp"
android:layout_marginTop="120dp"
android:text="@string/welkom_bij_fitbot" android:text="@string/welkom_bij_fitbot"
android:textColor="@color/white" android:textColor="@color/white"
android:textSize="64sp" android:textSize="64sp"
app:layout_constraintStart_toStartOf="parent" /> app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView <TextView
android:id="@+id/textView3" android:id="@+id/textView3"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="300dp" android:layout_marginStart="240dp"
android:layout_marginTop="80dp" android:layout_marginTop="200dp"
android:text="@string/robot_helpt" android:text="@string/robot_helpt"
android:textColor="@color/white" android:textColor="@color/white"
android:textSize="32sp" android:textSize="32sp"
@@ -45,10 +52,10 @@
<Button <Button
android:id="@+id/startButton" android:id="@+id/startButton"
android:layout_width="wrap_content" android:layout_width="200dp"
android:layout_height="wrap_content" android:layout_height="100dp"
android:layout_marginStart="400dp" android:layout_marginStart="380dp"
android:layout_marginTop="350dp" android:layout_marginTop="280dp"
android:background="@drawable/red_button_gradient" android:background="@drawable/red_button_gradient"
android:text="@string/start" android:text="@string/start"
android:textAllCaps="false" android:textAllCaps="false"
@@ -59,10 +66,10 @@
<Button <Button
android:id="@+id/helpButton" android:id="@+id/helpButton"
android:layout_width="wrap_content" android:layout_width="100dp"
android:layout_height="wrap_content" android:layout_height="50dp"
android:layout_marginStart="450dp" android:layout_marginStart="428dp"
android:layout_marginTop="500dp" android:layout_marginTop="400dp"
android:background="@drawable/darkred_button_gradient" android:background="@drawable/darkred_button_gradient"
android:text="@string/help" android:text="@string/help"
android:textAllCaps="false" android:textAllCaps="false"
@@ -73,23 +80,14 @@
<ImageView <ImageView
android:id="@+id/imageView2" android:id="@+id/imageView2"
android:layout_width="wrap_content" android:layout_width="200dp"
android:layout_height="wrap_content" android:layout_height="200dp"
android:layout_marginTop="260dp" android:layout_marginTop="340dp"
android:contentDescription="@string/todo" android:contentDescription="@string/robot_logo"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/robot_logo_inverted" /> app:srcCompat="@drawable/robot_logo_inverted" />
<!-- <Button-->
<!-- android:id="@+id/menu_switch_btn"-->
<!-- android:layout_width="200dp"-->
<!-- android:layout_height="50dp"-->
<!-- android:clickable="true"-->
<!-- android:text="Go to Sport Menu"-->
<!-- app:layout_constraintBottom_toBottomOf="parent"-->
<!-- app:layout_constraintLeft_toLeftOf="parent"-->
<!-- android:focusable="true" />-->
</android.support.constraint.ConstraintLayout> </android.support.constraint.ConstraintLayout>

View File

@@ -1,10 +1,9 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" <android.support.constraint.ConstraintLayout 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"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="200dp" android:layout_height="200dp"
android:orientation="vertical" android:orientation="horizontal"
android:background="@drawable/ic_launcher_background" android:background="@drawable/ic_launcher_background"
android:layout_gravity="top" android:layout_gravity="top"
android:padding="10dp"> android:padding="10dp">
@@ -25,6 +24,7 @@
android:layout_marginTop="60dp" android:layout_marginTop="60dp"
android:text="FitBot" android:text="FitBot"
android:textSize="48sp" android:textSize="48sp"
android:textColor="@color/black"
app:layout_constraintStart_toEndOf="@+id/imageView" app:layout_constraintStart_toEndOf="@+id/imageView"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />

View File

@@ -3,7 +3,6 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="#00000000" android:background="#00000000"
android:elevation="8dp" android:elevation="8dp">
android:theme="@style/Theme.AppCompat.Light.NoActionBar">
</android.support.v7.widget.Toolbar> </android.support.v7.widget.Toolbar>

View File

@@ -9,6 +9,10 @@
<string name="start">Start</string> <string name="start">Start</string>
<string name="help">Help</string> <string name="help">Help</string>
<string name="todo">TODO</string> <string name="todo">TODO</string>
<string name="robot_logo" />
<string name="home">Home</string>
<string name="skip">Skip</string>
<string name="complete">Complete</string>
<color name="red">#f22b1d</color> <color name="red">#f22b1d</color>
</resources> </resources>

View File

@@ -0,0 +1,29 @@
const express = require('express');
const mariadb = require('mariadb');
const app = express();
const port = 3000;
const pool = mariadb.createPool({
host: 'localhost',
user: 'fitbot',
password: 'fitbot123',
database: 'fitbot',
connectionLimit: 5
});
app.get('/data', async (req, res) => {
let conn;
try {
conn = await pool.getConnection();
const rows = await conn.query('SELECT * FROM Exercise');
res.json(rows);
} catch (err) {
res.status(500).json({ error: err.message });
} finally {
if (conn) conn.release();
}
});
app.listen(port, () => {
console.log(`Server running on http://localhost:${port}`);
});