Commit 6e9580be authored by Weesinghe W.M.P.D's avatar Weesinghe W.M.P.D

Add new physical activities

parent a6ffb88c
# Default ignored files
/shelf/
/workspace.xml
The Trek
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<bytecodeTargetLevel target="11" />
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="GradleMigrationSettings" migrationVersion="1" />
<component name="GradleSettings">
<option name="linkedExternalProjectsSettings">
<GradleProjectSettings>
<option name="testRunner" value="GRADLE" />
<option name="distributionType" value="DEFAULT_WRAPPED" />
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="modules">
<set>
<option value="$PROJECT_DIR$" />
<option value="$PROJECT_DIR$/app" />
</set>
</option>
</GradleProjectSettings>
</option>
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="ProjectRootManager" version="2" languageLevel="JDK_11" default="true" project-jdk-name="Android Studio default JDK" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" />
</component>
<component name="ProjectType">
<option name="id" value="Android" />
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>
\ No newline at end of file
......@@ -65,4 +65,9 @@ dependencies {
androidTestImplementation 'com.android.support.test:runner:1.0.2'
implementation 'org.tensorflow:tensorflow-android:1.13.1'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
implementation 'com.google.code.gson:gson:2.8.6'
implementation 'pl.droidsonroids.gif:android-gif-drawable:1.2.19'
}
\ No newline at end of file
......@@ -171,7 +171,7 @@
android:value="" />
</activity>
<activity
android:name=".MainActivity"
android:name=".activities.FirstActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
......@@ -197,6 +197,60 @@
android:name="android.app.lib_name"
android:value="" />
</activity>
<activity
android:name=".activities.BackActivity"
android:exported="false" />
<activity
android:name=".activities.OutdoorActivity"
android:exported="false" />
<activity
android:name=".activities.WorkoutActivity"
android:exported="false" />
<activity
android:name=".activities.SportsActivity"
android:exported="false" />
<activity
android:name=".activities.DanceActivity"
android:exported="false" />
<activity
android:name=".activities.CoreActivity"
android:exported="false" />
<activity
android:name=".activities.LegActivity"
android:exported="false" />
<activity
android:name=".activities.EmailActivity"
android:exported="false" />
<activity
android:name=".activities.HeadActivity"
android:exported="false" />
<activity
android:name=".activities.DisplayActivity"
android:exported="false" />
<activity
android:name=".StopwatchActivity"
android:exported="false" />
<activity
android:name=".activities.CreateActivity"
android:exported="false" />
<activity
android:name=".activities.DetailActivity"
android:exported="false" />
<activity
android:name=".activities.LaunchActivity"
android:exported="false" />
<activity
android:name=".activities.ShowPeopleActivity"
android:exported="false"/>
<activity
android:name=".MainActivity"
android:exported="false">
</activity>
<meta-data
android:name="com.google.ar.core"
android:value="required" />
......@@ -207,6 +261,6 @@
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="AIzaSyAynx5iCqfkqmUyUp3b2FNzf3OCm1dOrbU" />
</application>
</application>
</manifest>
\ No newline at end of file
package com.example.thetrek;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import java.util.Locale;
public class StopwatchActivity extends AppCompatActivity {
private int seconds = 0;
private boolean running;
private boolean wasRunning;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_stopwatch);
if (savedInstanceState != null) {
seconds
= savedInstanceState
.getInt("seconds");
running
= savedInstanceState
.getBoolean("running");
wasRunning
= savedInstanceState
.getBoolean("wasRunning");
}
runTimer();
}
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
super.onSaveInstanceState(savedInstanceState);
savedInstanceState
.putInt("seconds", seconds);
savedInstanceState
.putBoolean("running", running);
savedInstanceState
.putBoolean("wasRunning", wasRunning);
}
@Override
protected void onPause()
{
super.onPause();
wasRunning = running;
running = false;
}
@Override
protected void onResume()
{
super.onResume();
if (wasRunning) {
running = true;
}
}
public void onClickStart(View view)
{
running = true;
}
public void onClickStop(View view)
{
running = false;
}
public void onClickReset(View view)
{
running = false;
seconds = 0;
}
private void runTimer()
{
final TextView timeView
= (TextView)findViewById(
R.id.time_view);
final Handler handler
= new Handler();
handler.post(new Runnable() {
@Override
public void run()
{
int hours = seconds / 3600;
int minutes = (seconds % 3600) / 60;
int secs = seconds % 60;
String time
= String
.format(Locale.getDefault(),
"%d:%02d:%02d", hours,
minutes, secs);
timeView.setText(time);
if (running) {
seconds++;
}
handler.postDelayed(this, 1000);
}
});
}
}
\ No newline at end of file
package com.example.thetrek.activities;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import com.example.thetrek.R;
public class BackActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_back);
}
}
\ No newline at end of file
package com.example.thetrek.activities;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import com.example.thetrek.R;
public class CoreActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_core);
}
}
\ No newline at end of file
package com.example.thetrek.activities;
import android.content.Intent;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.Spinner;
import androidx.appcompat.app.AppCompatActivity;
import com.google.android.material.textfield.TextInputLayout;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.Locale;
import com.example.thetrek.R;
import com.example.thetrek.models.Person;
public class CreateActivity extends AppCompatActivity {
private Spinner gender;
private EditText dob, name, surname, weight;
private TextInputLayout dobContainer, nameContainer, surnameContainer, weightContainer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_create);
gender = findViewById(R.id.gender);
dob = findViewById(R.id.dob);
name = findViewById(R.id.name);
surname = findViewById(R.id.surname);
weight = findViewById(R.id.weight);
dobContainer = findViewById(R.id.dob_container);
nameContainer = findViewById(R.id.name_container);
surnameContainer = findViewById(R.id.surname_container);
weightContainer = findViewById(R.id.weight_container);
List<String> genders = Arrays.asList(getResources().getStringArray(R.array.genders));
ArrayAdapter<String> genderAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, genders) {
@Override
public boolean isEnabled(int position) {
return position != 0;
}
};
genderAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
gender.setAdapter(genderAdapter);
findViewById(R.id.save).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
boolean validationFailed = false;
SimpleDateFormat sdf = new SimpleDateFormat("d-M-yyyy", Locale.getDefault());
Date date = null;
try {
date = sdf.parse(dob.getText().toString());
} catch (ParseException e) {
dobContainer.setError(getString(R.string.dob_error));
dobContainer.requestFocus();
validationFailed = true;
}
String weightStr = weight.getText().toString();
try {
int weightInt = Integer.parseInt(weightStr);
} catch (NumberFormatException e) {
weightContainer.setError(getString(R.string.weight_error));
weightContainer.requestFocus();
validationFailed = true;
}
String surnameStr = surname.getText().toString();
if (surnameStr.isEmpty()) {
surnameContainer.setError(getString(R.string.surname_error));
surnameContainer.requestFocus();
validationFailed = true;
}
String nameStr = name.getText().toString();
if (nameStr.isEmpty()) {
nameContainer.setError(getString(R.string.name_error));
nameContainer.requestFocus();
validationFailed = true;
}
if (validationFailed) {
return;
}
String genderStr;
if (gender.getSelectedItemPosition() == 0) {
genderStr = getString(R.string.gender_unknown);
}
else {
genderStr = gender.getSelectedItem().toString();
}
Person person = new Person(nameStr, surnameStr, genderStr, date, weightStr);
Intent intent = new Intent();
intent.putExtra("person", person.serialize());
setResult(RESULT_OK, intent);
finish();
}
});
name.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
nameContainer.setError(null);
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {}
@Override
public void afterTextChanged(Editable s) {}
});
surname.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
surnameContainer.setError(null);
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {}
@Override
public void afterTextChanged(Editable s) {}
});
dob.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
dobContainer.setError(null);
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {}
@Override
public void afterTextChanged(Editable s) {}
});
weight.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
weightContainer.setError(null);
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {}
@Override
public void afterTextChanged(Editable s) {}
});
}
}
\ No newline at end of file
package com.example.thetrek.activities;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import com.example.thetrek.R;
public class DanceActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_dance);
}
}
\ No newline at end of file
package com.example.thetrek.activities;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import com.google.gson.Gson;
import java.text.SimpleDateFormat;
import java.util.Locale;
import com.example.thetrek.R;
import com.example.thetrek.StopwatchActivity;
import com.example.thetrek.models.Person;
public class DetailActivity extends AppCompatActivity {
private static final int REQUEST_IMAGE_CAPTURE = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_detail);
Gson gson = new Gson();
Person person = gson.fromJson(getIntent().getStringExtra("person"), Person.class);
((TextView) findViewById(R.id.name)).setText(person.getName());
((TextView) findViewById(R.id.surname)).setText(person.getSurname().toUpperCase());
SimpleDateFormat sdf = new SimpleDateFormat("d-M-yyyy", Locale.getDefault());
String gender = person.getGender();
if(gender.isEmpty()) {
gender = getString(R.string.gender_unknown);
}
((TextView) findViewById(R.id.info)).setText(String.format(getString(R.string.info), gender, sdf.format(person.getDob())));
((TextView) findViewById(R.id.weight)).setText(String.format(getString(R.string.weight), person.getWeight()));
ImageView genderImage = findViewById(R.id.gender);
switch (person.getGender()) {
case "Male":
genderImage.setImageResource(R.drawable.male);
break;
case "Female":
genderImage.setImageResource(R.drawable.user);
break;
default:
genderImage.setImageResource(R.drawable.unknown);
}
findViewById(R.id.display_exercises).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(DetailActivity.this, DisplayActivity.class);
startActivity(intent);
}
});
findViewById(R.id.stopwatch).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(DetailActivity.this, StopwatchActivity.class);
startActivity(intent);
}
});
// Button picture = findViewById(R.id.progress_picture);
// picture.setOnClickListener(new View.OnClickListener() {
// @Override
// public void onClick(View v)
// {
// Intent intent = new Intent(MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA);
// if (intent.resolveActivity(getPackageManager()) != null) {
// startActivityForResult(intent, REQUEST_IMAGE_CAPTURE);
// }
// }
// });
findViewById(R.id.progress_picture).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(DetailActivity.this, LaunchActivity.class);
startActivity(intent);
}
});
findViewById(R.id.email_self).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(DetailActivity.this, EmailActivity.class);
startActivity(intent);
}
});
}
}
\ No newline at end of file
package com.example.thetrek.activities;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import androidx.appcompat.app.AppCompatActivity;
import com.example.thetrek.R;
public class DisplayActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_display);
findViewById(R.id.head).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(DisplayActivity.this, HeadActivity.class);
startActivity(intent);
}
});
findViewById(R.id.legs).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(DisplayActivity. this, LegActivity.class);
startActivity(intent);
}
});
findViewById(R.id.back).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(DisplayActivity.this, BackActivity.class);
startActivity(intent);
}
});
findViewById(R.id.core).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(DisplayActivity. this, CoreActivity.class);
startActivity(intent);
}
});
}
}
\ No newline at end of file
package com.example.thetrek.activities;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.EditText;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import com.example.thetrek.R;
public class EmailActivity extends AppCompatActivity {
private boolean success;
private EditText bodyEditText, subjectEditText;
private Button send;
private String addresses[] = new String[1];
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_email);
bodyEditText = findViewById(R.id.body);
subjectEditText = findViewById(R.id.subject);
send = findViewById(R.id.send);
CheckBox successBox = findViewById(R.id.email_self);
success = successBox.isChecked();
setSubject();
setBody();
((EditText) findViewById(R.id.to)).addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
addresses[0] = s.toString();
send.setEnabled(!addresses[0].equals(""));
}
@Override
public void afterTextChanged(Editable s) {}
});
successBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
success = isChecked;
setBody();
setSubject();
}
});
send.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(Intent.ACTION_SENDTO);
intent.putExtra(Intent.EXTRA_EMAIL, addresses);
intent.putExtra(Intent.EXTRA_SUBJECT, subjectEditText.getText().toString());
intent.putExtra(Intent.EXTRA_TEXT, bodyEditText.getText().toString());
intent.setData(Uri.parse("mailto:"));
if (intent.resolveActivity(getPackageManager()) != null) {
startActivity(intent);
}
else {
Toast.makeText(EmailActivity.this, getString(R.string.no_mail), Toast.LENGTH_LONG).show();
}
}
});
}
private void setBody() {
String message;
if (success) {
bodyEditText.setText(String.format(getString(R.string.body_text)));
}
else {
bodyEditText.setText("");
}
}
private void setSubject() {
if (success) {
subjectEditText.setText(String.format(getString(R.string.subject_text)));
}
else {
subjectEditText.setText("");
}
}
}
\ No newline at end of file
package com.example.thetrek.activities;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import androidx.appcompat.app.AppCompatActivity;
import com.example.thetrek.R;
public class FirstActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_firstpage);
Button start = findViewById(R.id.get_started);
start.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
System.out.println("Before calling list intent");
Intent intentlist = new Intent(FirstActivity.this, ShowPeopleActivity.class);
startActivity(intentlist);
}
});
}
}
package com.example.thetrek.activities;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import com.example.thetrek.R;
public class HeadActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_head);
}
}
\ No newline at end of file
package com.example.thetrek.activities;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import androidx.appcompat.app.AppCompatActivity;
import com.example.thetrek.R;
public class LaunchActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_launch);
// ImageView yogi = findViewById(R.id.yogi);
// Button start = findViewById(R.id.get_started);
// start.setOnClickListener(new View.OnClickListener() {
// @Override
// public void onClick(View v) {
//
// System.out.println("Before calling list intent");
//
// Intent intentlist = new Intent(LaunchActivity.this, ShowPeopleActivity.class);
// startActivity(intentlist);
// }
// });
// }
//}
findViewById(R.id.outdoor).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(LaunchActivity.this, OutdoorActivity.class);
startActivity(intent);
}
});
findViewById(R.id.dance).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(LaunchActivity.this, DanceActivity.class);
startActivity(intent);
}
});
findViewById(R.id.dance).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(LaunchActivity.this, DanceActivity.class);
startActivity(intent);
}
});
findViewById(R.id.sports).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(LaunchActivity.this, SportsActivity.class);
startActivity(intent);
}
});
findViewById(R.id.workouts).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(LaunchActivity.this, WorkoutActivity.class);
startActivity(intent);
}
});
}
}
package com.example.thetrek.activities;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import com.example.thetrek.R;
public class LegActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_leg);
}
}
\ No newline at end of file
package com.example.thetrek.activities;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import com.example.thetrek.R;
public class OutdoorActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_outdoor);
}
}
package com.example.thetrek.activities;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.TextView;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import com.google.gson.Gson;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import com.example.thetrek.R;
import com.example.thetrek.adapter.PeopleAdapter;
import com.example.thetrek.models.Person;
public class ShowPeopleActivity extends AppCompatActivity {
private static final int PERSON_CREATED = 1;
private List<Person> people;
private SharedPreferences database;
private Gson gson;
private TextView noUsers;
private ListView users;
private PeopleAdapter peopleAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
System.out.println("im before super call");
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_show_people);
noUsers = findViewById(R.id.no_users);
users = findViewById(R.id.users_list);
people = new ArrayList<>();
database = getSharedPreferences("database", MODE_PRIVATE);
gson = new Gson();
String json = database.getString("people", "");
if (!json.isEmpty()) {
System.out.println("json isnt empty");
people = new ArrayList<>(Arrays.asList(gson.fromJson(json, Person[].class)));
users.setVisibility(View.VISIBLE);
noUsers.setVisibility(View.INVISIBLE);
}
else {
System.out.println("Json is empty.");
users.setVisibility(View.INVISIBLE);
noUsers.setVisibility(View.VISIBLE);
}
peopleAdapter = new PeopleAdapter(this, people);
System.out.println("at people adapter");
users.setAdapter(peopleAdapter);
users.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
people.remove(position);
System.out.println("in item long click");
saveAndUpdate();
return false;
}
});
System.out.println("before users ");
users.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Person person = (Person) parent.getAdapter().getItem(position);
Intent intent = new Intent(ShowPeopleActivity.this, DetailActivity.class);
intent.putExtra("person", person.serialize());
startActivity(intent);
}
});
System.out.println("before add ");
findViewById(R.id.add).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivityForResult(new Intent(ShowPeopleActivity.this, CreateActivity.class), PERSON_CREATED);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode != PERSON_CREATED || resultCode != RESULT_OK || data == null) {
return;
}
System.out.println("in activity result");
String json = data.getStringExtra("person");
Person person = gson.fromJson(json, Person.class);
people.add(person);
saveAndUpdate();
}
private void saveAndUpdate() {
System.out.println("in save and update");
SharedPreferences.Editor editor = database.edit();
editor.putString("people", gson.toJson(people));
editor.apply();
if (people.size() == 1 && users.getVisibility() == View.INVISIBLE) {
users.setVisibility(View.VISIBLE);
noUsers.setVisibility(View.INVISIBLE);
}
else if (people.size() == 0 && users.getVisibility() == View.VISIBLE) {
users.setVisibility(View.INVISIBLE);
noUsers.setVisibility(View.VISIBLE);
}
peopleAdapter.notifyDataSetChanged();
}
}
\ No newline at end of file
package com.example.thetrek.activities;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import com.example.thetrek.R;
public class SportsActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sports);
}
}
\ No newline at end of file
package com.example.thetrek.activities;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import com.example.thetrek.R;
public class WorkoutActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_workout);
}
}
\ No newline at end of file
package com.example.thetrek.adapter;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import java.util.List;
import com.example.thetrek.R;
import com.example.thetrek.models.Person;
public class PeopleAdapter extends BaseAdapter {
private Context context;
private List<Person> people;
public PeopleAdapter(Context context, List<Person> people) {
this.context = context;
this.people = people;
}
@Override
public int getCount() {
return people.size();
}
@Override
public Object getItem(int position) {
return people.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
LayoutInflater inflater = LayoutInflater.from(context);
convertView = inflater.inflate(R.layout.person_adapter_layout, parent, false);
}
Person person = (Person) getItem(position);
((TextView) convertView.findViewById(R.id.name)).setText(person.getName());
((TextView) convertView.findViewById(R.id.surname)).setText(person.getSurname());
ImageView gender = convertView.findViewById(R.id.gender);
switch (person.getGender()) {
case "Male":
gender.setImageResource(R.drawable.male);
break;
case "Female":
gender.setImageResource(R.drawable.user);
break;
default:
gender.setImageResource(R.drawable.unknown);
}
return convertView;
}
}
package com.example.thetrek.models;
import com.google.gson.Gson;
import java.util.Date;
public class Person {
private String name;
private String surname;
private String gender;
private Date dob;
private String weight;
public Person(String name, String surname, String gender, Date dob, String weight) {
this.name = name;
this.surname = surname;
this.gender = gender;
this.dob = dob;
this.weight = weight;
}
public String getName() {
return name;
}
public String getSurname() {
return surname;
}
public String getGender() {
return gender;
}
public Date getDob() {
return dob;
}
public String getWeight() {
return weight;
}
public String serialize(){
Gson gson = new Gson();
return gson.toJson(this);
}
}
\ No newline at end of file
<?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:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".activities.BackActivity">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/head_section"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/get_ready_to_strengthen_your_back"
android:textStyle="bold"
android:textColor="@color/black"
android:textSize="23sp" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20sp"
android:text="@string/CatCow"
android:textStyle="bold"
android:textColor="@color/black"
android:textSize="23sp" />
<pl.droidsonroids.gif.GifImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:src="@drawable/back1" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="7sp"
android:text="@string/catcowdes"
android:textColor="@color/black"
android:textSize="12sp" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="40sp"
android:text="@string/dwfdog"
android:textStyle="bold"
android:textColor="@color/black"
android:textSize="18sp"
android:id="@+id/dwfdog"
/>
<pl.droidsonroids.gif.GifImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:src="@drawable/back2" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="7sp"
android:text="@string/dwfdogdesc"
android:textColor="@color/black"
android:textSize="12sp" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="40sp"
android:text="@string/extriangle"
android:textStyle="bold"
android:textColor="@color/black"
android:textSize="18sp"
android:id="@+id/extTriangle"
/>
<pl.droidsonroids.gif.GifImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:src="@drawable/back3" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="7sp"
android:text="@string/extTriangleDesc"
android:textColor="@color/black"
android:textSize="12sp" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="40sp"
android:text="Two-Knee Spinal Twist"
android:textStyle="bold"
android:textColor="@color/black"
android:textSize="18sp"
android:id="@+id/kneetwist"
/>
<pl.droidsonroids.gif.GifImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:src="@drawable/back4" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="7sp"
android:text="@string/twokneetwistdesc"
android:layout_marginBottom="15dp"
android:textColor="@color/black"
android:textSize="12sp" />
</LinearLayout>
</ScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
<?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:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="15dp"
tools:context=".activities.CoreActivity">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/core_section"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/introtocore"
android:textStyle="bold"
android:textSize="23sp"
android:textColor="@color/black"/>
<TextView
android:id="@+id/boat_pose"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="18sp"
android:textColor="@color/black"
android:textStyle="bold"
android:text="Boat Pose"
android:layout_marginTop="20sp"/>
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:src="@drawable/boat_pose"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10sp"
android:textColor="@color/black"
android:textSize="12sp"
android:text="Breathing right is key for this pose. Remember to flex both the core and the legs for this exercise. Maximum time should be 1 minute. Stay in this pose for at most 10–20 breaths and repeat no more than 4 times.(sets)" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="40sp"
android:text="Doplhin Plank Pose"
android:textStyle="bold"
android:textColor="@color/black"
android:textSize="18sp"
android:id="@+id/dolphin_plank_pose"
/>
<androidx.constraintlayout.utils.widget.ImageFilterView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:src="@drawable/dolphinplank"
android:id="@+id/dolphin_plank_pic"
android:adjustViewBounds="true"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10sp"
android:textColor="@color/black"
android:textSize="12sp"
android:text="@string/dolphin_text"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="40sp"
android:text="@string/vwpose"
android:textStyle="bold"
android:textColor="@color/black"
android:textSize="18sp"
android:id="@+id/victorious_warrior"
/>
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:src="@drawable/warrior_pose"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10sp"
android:textColor="@color/black"
android:textSize="12sp"
android:text="@string/warriortext"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="40sp"
android:text="Bridge Pose"
android:textStyle="bold"
android:textColor="@color/black"
android:textSize="18sp"
android:id="@+id/bridgepose"
/>
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:src="@drawable/bridgepose"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10sp"
android:textColor="@color/black"
android:textSize="12sp"
android:layout_marginBottom="15dp"
android:text="@string/Bridgetext" />
</LinearLayout>
</ScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
<?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:layout_width="match_parent"
android:padding="16dp"
android:layout_height="match_parent"
android:background="@drawable/home"
tools:context=".activities.CreateActivity">
<TextView
android:id="@+id/profile_info"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/profile_info"
android:textSize="20sp"
android:textColor="@color/white"
android:paddingBottom="12dp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"/>
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/name_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@id/profile_info"
app:layout_constraintStart_toStartOf="parent"
app:errorEnabled="true"
android:hint="@string/name">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/name"
android:inputType="textPersonName"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/surname_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@id/name_container"
app:layout_constraintStart_toStartOf="parent"
app:errorEnabled="true"
android:hint="@string/surname">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/surname"
android:inputType="textPersonName"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/dob_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@id/surname_container"
app:layout_constraintStart_toStartOf="parent"
app:errorEnabled="true"
android:hint="@string/date_of_birth">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/dob"
android:inputType="date"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</com.google.android.material.textfield.TextInputLayout>
<Spinner
android:id="@+id/gender"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:paddingTop="25dp"
android:paddingBottom="25dp"
app:layout_constraintTop_toBottomOf="@id/dob_container"
app:layout_constraintStart_toStartOf="parent" />
<TextView
android:id="@+id/weight_label"
style="@android:style/TextAppearance.Widget.TextView.SpinnerItem"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:layout_marginTop="12dp"
android:gravity="center"
android:paddingTop="12dp"
android:paddingEnd="12dp"
android:paddingBottom="12dp"
android:paddingLeft="50dp"
android:text="@string/weight_label"
android:textColor="@color/white"
android:textSize="20sp"
app:layout_constraintEnd_toStartOf="@id/weight_container"
app:layout_constraintTop_toBottomOf="@id/gender" />
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/weight_container"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:paddingTop="12dp"
app:layout_constraintStart_toEndOf="@id/weight_label"
app:layout_constraintTop_toTopOf="@id/weight_label"
app:layout_constraintBottom_toBottomOf="@id/weight_label"
app:layout_constraintWidth_default="percent"
app:layout_constraintWidth_percent=".5"
android:hint="@string/kg">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/weight"
android:maxLines="1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="number"/>
</com.google.android.material.textfield.TextInputLayout>
<Button
android:id="@+id/save"
android:layout_width="115dp"
android:layout_height="60dp"
android:text="@string/save"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/weight_label" />
</androidx.constraintlayout.widget.ConstraintLayout>
<?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:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".activities.DanceActivity">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/head_section"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Dance and Movement Arts"
android:textSize="23sp"
android:textColor="@color/black"
android:textStyle="bold"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20sp"
android:textSize="23sp"
android:textColor="@color/black"
android:text="Hula Hooping"
android:textStyle="bold"/>
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:src="@drawable/hulahooping" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="7sp"
android:textSize="12sp"
android:layout_marginBottom="15dp"
android:textColor="@color/black"
android:text="@string/hulahooping" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20sp"
android:textSize="23sp"
android:textColor="@color/black"
android:text="Circus Arts"
android:textStyle="bold"/>
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:src="@drawable/circus" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="7sp"
android:textSize="12sp"
android:layout_marginBottom="15dp"
android:textColor="@color/black"
android:text="@string/circus" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20sp"
android:textSize="23sp"
android:textColor="@color/black"
android:text="Capoeira"
android:textStyle="bold"/>
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:src="@drawable/capoeira" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="7sp"
android:textSize="12sp"
android:textColor="@color/black"
android:text="@string/capoeira" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20sp"
android:textSize="23sp"
android:textColor="@color/black"
android:text="Aerial Silks"
android:textStyle="bold"/>
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:src="@drawable/aerialsilks" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="7sp"
android:textSize="12sp"
android:textColor="@color/black"
android:text="@string/aeriText" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20sp"
android:textSize="23sp"
android:textColor="@color/black"
android:text="Synchronized Swimming"
android:textStyle="bold"/>
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:src="@drawable/swiming" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="7sp"
android:textSize="12sp"
android:layout_marginBottom="15dp"
android:textColor="@color/black"
android:text="@string/swiming" />
</LinearLayout>
</ScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
<?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:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="16dp"
android:background="@drawable/background"
tools:context=".activities.DetailActivity">
<ImageView
android:id="@+id/gender"
android:layout_width="120dp"
android:layout_height="120dp"
android:layout_marginTop="30dp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" />
<TextView
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="18sp"
android:textColor="@color/black"
android:layout_marginTop="16dp"
app:layout_constraintTop_toBottomOf="@id/gender"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" />
<TextView
android:id="@+id/surname"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="36sp"
android:textStyle="bold"
android:textColor="@color/black"
android:layout_marginTop="16dp"
app:layout_constraintTop_toBottomOf="@id/name"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" />
<TextView
android:id="@+id/info"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="14sp"
android:textStyle="bold"
android:textColor="@color/black"
android:layout_marginTop="16dp"
app:layout_constraintTop_toBottomOf="@id/surname"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" />
<TextView
android:id="@+id/weight"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="16sp"
android:textStyle="bold"
android:textColor="@color/black"
android:layout_marginTop="16dp"
app:layout_constraintTop_toBottomOf="@id/info"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" />
<Button
android:id="@+id/display_exercises"
android:layout_width="match_parent"
android:layout_height="75dp"
android:text="@string/display_poses"
android:textSize="12sp"
android:layout_marginTop="65dp"
app:layout_constraintTop_toBottomOf="@id/weight"
app:layout_constraintBottom_toTopOf="@id/stopwatch"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
/>
<Button
android:id="@+id/stopwatch"
android:layout_width="match_parent"
android:layout_height="75dp"
android:text="@string/stopwatch"
android:textSize="12sp"
app:layout_constraintTop_toBottomOf="@id/display_exercises"
app:layout_constraintBottom_toTopOf="@id/progress_picture"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
/>
<Button
android:id="@+id/progress_picture"
android:layout_width="match_parent"
android:layout_height="75dp"
android:text="Physical Activity"
android:textSize="12sp"
android:layout_marginBottom="12dp"
android:layout_marginEnd="200dp"
app:layout_constraintTop_toBottomOf="@id/stopwatch"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@id/email_self"
/>
<Button
android:id="@+id/email_self"
android:layout_width="match_parent"
android:layout_height="75dp"
android:text="@string/send_email_to_self"
android:textSize="12sp"
android:layout_marginStart="200dp"
android:layout_marginBottom="12dp"
app:layout_constraintTop_toBottomOf="@id/stopwatch"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@id/progress_picture"
app:layout_constraintEnd_toEndOf="parent"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
<?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:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="16dp"
android:background="@drawable/model1"
tools:context=".activities.DisplayActivity">
<TextView
android:id="@+id/selection"
android:layout_width="wrap_content"
android:paddingTop = "1dp"
android:layout_height="wrap_content"
android:text="Select what to train:"
android:textColor="@color/black"
android:textStyle="bold|italic"
android:textSize="20sp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
/>
<Button
android:id="@+id/head"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="@string/mind"
android:layout_marginTop="80dp"
android:layout_marginStart="50dp"
app:layout_constraintTop_toBottomOf="@id/selection"
app:layout_constraintStart_toStartOf="parent"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/back"
android:layout_gravity="center"
android:text="Back"
android:layout_marginTop="120dp"
android:layout_marginEnd="35dp"
app:layout_constraintTop_toBottomOf="@+id/selection"
app:layout_constraintEnd_toEndOf="parent"/>
<Button
android:id="@+id/core"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="@string/abdominal"
android:layout_marginTop="250dp"
android:layout_marginEnd="40dp"
app:layout_constraintTop_toBottomOf="@id/selection"
app:layout_constraintEnd_toEndOf="parent"
/>
<Button
android:id="@+id/legs"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="@string/legs"
android:layout_marginTop="450dp"
android:layout_marginEnd="40dp"
app:layout_constraintTop_toBottomOf="@id/selection"
app:layout_constraintEnd_toEndOf="parent"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
<?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:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="16dp"
tools:context=".activities.EmailActivity">
<CheckBox
android:id="@+id/email_self"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingRight="10dp"
android:text="@string/email_yourself"
android:checked="true"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/to_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@id/email_self"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:hint="@string/to" >
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/to"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textEmailAddress"/>
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/subject_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@id/to_container"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:hint="@string/subject" >
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/subject"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textEmailSubject"/>
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/body_container"
android:layout_width="match_parent"
android:layout_height="0dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/subject_container"
app:layout_constraintBottom_toTopOf="@id/send"
android:paddingBottom="4dp"
android:hint="@string/email_body" >
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/body"
android:gravity="top|start"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:inputType="textCapSentences|textAutoCorrect|textMultiLine"/>
</com.google.android.material.textfield.TextInputLayout>
<Button
android:id="@+id/send"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
android:text="@string/send"/>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".activities.LaunchActivity"
android:background="@drawable/yoga_background">
<Button
android:id="@+id/get_started"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:text="Get Started"
android:layout_centerHorizontal="true"
android:layout_alignParentBottom="true"
android:layout_marginBottom="100dp"
/>
</RelativeLayout>
\ No newline at end of file
<?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:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".activities.HeadActivity">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/head_section"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/mindtext"
android:textSize="23sp"
android:textColor="@color/black"
android:textStyle="bold"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20sp"
android:textSize="23sp"
android:textColor="@color/black"
android:text="@string/cross_legged_position"
android:textStyle="bold"/>
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:src="@drawable/meditatecross" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="7sp"
android:textSize="12sp"
android:textColor="@color/black"
android:text="@string/medtext" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20sp"
android:textSize="23sp"
android:textColor="@color/black"
android:text="@string/kneeling_pose"
android:textStyle="bold"/>
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:src="@drawable/kneel" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="7sp"
android:textSize="12sp"
android:textColor="@color/black"
android:text="@string/kneelText" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20sp"
android:textSize="23sp"
android:textColor="@color/black"
android:textStyle="bold"
android:text="@string/chair_position" />
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:src="@drawable/chair" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="7sp"
android:textSize="12sp"
android:layout_marginBottom="15dp"
android:textColor="@color/black"
android:text="@string/textChair" />
</LinearLayout>
</ScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".activities.LaunchActivity"
android:background="@drawable/yoga_background">
<TextView
android:id="@+id/text1"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="600dp"
android:text="Craft Your Active Adventure"
android:textStyle="bold"
android:textSize="10pt"/>
<Button
android:id="@+id/workouts"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:text="Alternative Fitness Workouts"
android:layout_centerHorizontal="true"
android:layout_alignParentBottom="true"
android:layout_marginBottom="400dp"
/>
<Button
android:id="@+id/sports"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:text="Unique Sports and Games"
android:layout_centerHorizontal="true"
android:layout_alignParentBottom="true"
android:layout_marginBottom="300dp"
/>
<Button
android:id="@+id/dance"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:text="Dance and Movement Arts"
android:layout_centerHorizontal="true"
android:layout_alignParentBottom="true"
android:layout_marginBottom="200dp"
/>
<Button
android:id="@+id/outdoor"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="100dp"
android:text="Adventure and Outdoor Activities" />
</RelativeLayout>
\ No newline at end of file
<?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:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".activities.LegActivity">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/core_section"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/introtolegs"
android:textStyle="bold"
android:textSize="23sp"
android:textColor="@color/black"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20sp"
android:textSize="23sp"
android:textColor="@color/black"
android:textStyle="bold"
android:text="@string/DownDog"
/>
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:src="@drawable/downwarddog"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10sp"
android:textSize="12sp"
android:textColor="@color/black"
android:text="@string/dogstring"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20sp"
android:textSize="23sp"
android:textColor="@color/black"
android:text="@string/triangle_pose"
android:textStyle="bold"
/>
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:src="@drawable/trianglepose"
android:textStyle="bold"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10sp"
android:textSize="12sp"
android:textColor="@color/black"
android:text="@string/Tposestring"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20sp"
android:textSize="23sp"
android:textColor="@color/black"
android:text="Bridge Variation Pose"
android:textStyle="bold" />
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:src="@drawable/bridgevar"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/black"
android:textSize="12sp"
android:layout_marginTop="10sp"
android:text="@string/BridgevarText"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20sp"
android:textSize="23sp"
android:textColor="@color/black"
android:text="Half Moon Pose"
android:textStyle="bold" />
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:src="@drawable/halfmoon"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/black"
android:textSize="12sp"
android:layout_marginBottom="15dp"
android:layout_marginTop="10sp"
android:text="@string/Halfmoontext"
/>
</LinearLayout>
</ScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
<?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:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".activities.OutdoorActivity">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/head_section"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/outdoor1"
android:textSize="23sp"
android:textColor="@color/black"
android:textStyle="bold"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20sp"
android:textSize="23sp"
android:textColor="@color/black"
android:text="Parkour"
android:textStyle="bold"/>
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:src="@drawable/parkout" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="7sp"
android:textSize="12sp"
android:textColor="@color/black"
android:text="@string/outdoor2" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20sp"
android:textSize="23sp"
android:textColor="@color/black"
android:text="Geocaching"
android:textStyle="bold"/>
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:src="@drawable/geocaching" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="7sp"
android:textSize="12sp"
android:textColor="@color/black"
android:text="@string/geoText" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20sp"
android:textSize="23sp"
android:textColor="@color/black"
android:text="Rock Climbing"
android:textStyle="bold"/>
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:src="@drawable/rockclimbing" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="7sp"
android:textSize="12sp"
android:layout_marginBottom="15dp"
android:textColor="@color/black"
android:text="@string/textRock" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20sp"
android:textSize="23sp"
android:textColor="@color/black"
android:text="Disc Golf"
android:textStyle="bold"/>
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:src="@drawable/discgolf" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="7sp"
android:textSize="12sp"
android:layout_marginBottom="15dp"
android:textColor="@color/black"
android:text="@string/textDisk" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20sp"
android:textSize="23sp"
android:textColor="@color/black"
android:text="Hiking"
android:textStyle="bold"/>
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:src="@drawable/hiking" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="7sp"
android:textSize="12sp"
android:layout_marginBottom="15dp"
android:textColor="@color/black"
android:text="@string/hiking" />
</LinearLayout>
</ScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
<?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:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="16dp"
tools:context=".activities.ShowPeopleActivity"
android:background="@drawable/background">
<TextView
android:id="@+id/title"
android:layout_width="match_parent"
android:layout_height="78dp"
android:text="@string/users"
android:gravity="center"
android:autoSizeTextType="uniform"
android:textColor="@color/black"
android:maxLines="1"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"/>
<TextView
android:id="@+id/no_users"
android:layout_width="match_parent"
android:layout_height="0dp"
android:text="@string/add_your_first_user"
android:gravity="center"
android:autoSizeTextType="uniform"
android:textColor="@color/black"
android:maxLines="1"
app:layout_constraintTop_toBottomOf="@id/title"
app:layout_constraintBottom_toTopOf="@id/add"
app:layout_constraintStart_toStartOf="parent" />
<ListView
android:id="@+id/users_list"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginTop="8dp"
android:layout_marginBottom="8dp"
app:layout_constraintTop_toBottomOf="@id/title"
app:layout_constraintBottom_toTopOf="@id/add"
app:layout_constraintStart_toStartOf="parent" />
<Button
android:id="@+id/add"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/add"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toBottomOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
<?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:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".activities.SportsActivity">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/head_section"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Unique Sports and Games"
android:textSize="23sp"
android:textColor="@color/black"
android:textStyle="bold"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20sp"
android:textSize="23sp"
android:textColor="@color/black"
android:text="Pickleball"
android:textStyle="bold"/>
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:src="@drawable/pickleball" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="7sp"
android:textSize="12sp"
android:layout_marginBottom="15dp"
android:textColor="@color/black"
android:text="@string/pickleball" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20sp"
android:textSize="23sp"
android:textColor="@color/black"
android:text="Ultimate Frisbee"
android:textStyle="bold"/>
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:src="@drawable/ultimatefrisbee" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="7sp"
android:textSize="12sp"
android:textColor="@color/black"
android:text="@string/ultimatefrisbee" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20sp"
android:textSize="23sp"
android:textColor="@color/black"
android:text="Trampoline Dodgeball"
android:textStyle="bold"/>
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:src="@drawable/trampolinedodgeball" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="7sp"
android:textSize="12sp"
android:textColor="@color/black"
android:text="@string/trampolinedodgeball" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20sp"
android:textSize="23sp"
android:textColor="@color/black"
android:text="Frisbee Golf (Frolf)"
android:textStyle="bold"/>
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:src="@drawable/frolf" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="7sp"
android:textSize="12sp"
android:layout_marginBottom="15dp"
android:textColor="@color/black"
android:text="@string/frolf" />
</LinearLayout>
</ScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
<?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:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/background"
tools:context=".StopwatchActivity">
<TextView
android:id="@+id/time_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="@android:style/TextAppearance.Large"
android:textSize="56sp"
android:layout_marginTop="16dp"
android:layout_marginBottom="150dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"/>
<Button
android:id="@+id/start_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="20dp"
android:onClick="onClickStart"
android:text="@string/start"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@id/stop_button"
app:layout_constraintTop_toBottomOf="@id/time_view" />
<Button
android:id="@+id/stop_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:onClick="onClickStop"
android:text="@string/stop"
app:layout_constraintStart_toEndOf="@id/start_button"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/time_view" />
<Button
android:id="@+id/reset_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:onClick="onClickReset"
android:text="@string/reset"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/start_button" />
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
<?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:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".activities.WorkoutActivity">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/head_section"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Alternative Fitness Workouts"
android:textSize="23sp"
android:textColor="@color/black"
android:textStyle="bold"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20sp"
android:textSize="23sp"
android:textColor="@color/black"
android:text="Cardio Drumming"
android:textStyle="bold"/>
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:src="@drawable/cardiodrumming" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="7sp"
android:textSize="12sp"
android:textColor="@color/black"
android:text="@string/cardiodrumming" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20sp"
android:textSize="23sp"
android:textColor="@color/black"
android:text="Aqua Aerobics"
android:textStyle="bold"/>
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:src="@drawable/aqua" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="7sp"
android:textSize="12sp"
android:textColor="@color/black"
android:text="@string/aqua" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20sp"
android:textSize="23sp"
android:textColor="@color/black"
android:text="Pound Fit"
android:textStyle="bold"/>
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:src="@drawable/poundfit" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="7sp"
android:textSize="12sp"
android:layout_marginBottom="15dp"
android:textColor="@color/black"
android:text="@string/poundfit" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20sp"
android:textSize="23sp"
android:textColor="@color/black"
android:text="Bungee Fitness"
android:textStyle="bold"/>
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:src="@drawable/bungeefitness" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="7sp"
android:textSize="12sp"
android:layout_marginBottom="15dp"
android:textColor="@color/black"
android:text="@string/bungeefitness" />
</LinearLayout>
</ScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto">
<ImageView
android:id="@+id/gender"
android:layout_width="75dp"
android:layout_height="75dp"
android:paddingEnd="8dp"
android:paddingTop="8dp"
android:paddingBottom="8dp"
android:src="@drawable/user"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<TextView
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingTop="8dp"
android:text="Marian"
app:layout_constraintTop_toTopOf="@id/gender"
app:layout_constraintStart_toEndOf="@id/gender" />
<TextView
android:id="@+id/surname"
android:layout_width="0dp"
android:layout_height="0dp"
android:autoSizeTextType="uniform"
android:maxLines="1"
android:text="Pentagon"
android:paddingBottom="8dp"
app:layout_constraintTop_toBottomOf="@id/name"
app:layout_constraintBottom_toBottomOf="@id/gender"
app:layout_constraintStart_toEndOf="@id/gender"
app:layout_constraintEnd_toEndOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
......@@ -68,4 +68,95 @@
<string name="upstairs">Upstairs</string>
<string name="walking">Walking</string>
<string name="biking">Biking</string>
<string name="yogi" translatable="false">Yogi</string>
<string name="get_started" translatable="false">Get started</string>
<string name="built_for" translatable="false">Built for</string>
<string name="users" translatable="false">All users</string>
<string name="add_your_first_user" translatable="false">Add your first user</string>
<string name="add" translatable="false">Add</string>
<string name="display_poses" translatable="false">Display Poses</string>
<string name="stopwatch" translatable="false">Stopwatch</string>
<string name="send_email_to_self" translatable="false">Send email to self</string>
<string name="take_progress_picture" translatable="false">Take picture for form evaluation</string>
<string name="gender_unknown" formatted="false" translatable="false">Gender Unknown</string>
<string name="profile_info" translatable="false">Profile Information</string>
<string name="name" translatable="false">Name</string>
<string name="surname" translatable="false">Surname</string>
<string name="date_of_birth" translatable="false">Date of Birth</string>
<string name="weight_label" translatable="false">Weight:</string>
<string name="kg" translatable="false">kg</string>
<string name="save" translatable="false">Save</string>
<string name="dob_error" translatable="false">Please enter a date with the format D-M-YYYY</string>
<string name="weight_error" translatable="false">Please enter a valid number</string>
<string name="name_error" translatable="false">Name cannot be empty</string>
<string name="surname_error" translatable="false">Surname cannot be empty</string>
<string name="info" translatable="false">%s, born on %s</string>
<string name="weight" translatable="false">Weight: %s kg</string>
<string name="start" translatable="false">Start</string>
<string name="stop" translatable="false">Stop</string>
<string name="reset" translatable="false">Reset</string>
<string name="email_yourself" translatable="false">Send email to self</string>
<string name="to" translatable="false">To</string>
<string name="subject" translatable="false">Subject</string>
<string name="email_body" translatable="false">Email body</string>
<string name="send" translatable="false">Send</string>
<string name="body_text" translatable="false">Dear self, \nYou have done your yoga and meditation for the day.\nBelieve in yourself, trust your instincts \nand live life to the fullest each and every second.\nYours truly.</string>
<string name="no_mail" translatable="false">No activity for email found</string>
<string name="subject_text" translatable="false">You did awesome today!!</string>
<string name="mind" translatable="false">Mind</string>
<string name="abdominal" translatable="false">core</string>
<string name="legs" translatable="false">Legs</string>
<string name="introtocore" translatable="false">Get Ready to Stregthen your Core</string>
<string name="dolphin_text" translatable="false">Similar to the regular plank, but adding the dolphin pose. Goal is to keep arms parallel to each other when on the floor, while also curling your toes but keeping that core engaged almost as if your body is a table. Perform for 30 seconds, for 2–3 times but rest up properly before each execution</string>
<string name="warriortext" translatable="false">Start out in lunge position. Extend arms upwards but keep them parallel. Focus on breathing deeply, especially on exhaling which is what contracts alot of the core in this exercise. Repeat 2 times per leg for around 30 seconds - 1 minute.</string>
<string name="Bridgetext" translatable="false">Although this does bring the back muscles into play. We will see a different variation of this in our back category which will target the back even better. Remember to breath in and out while holding the position and press your arms on the floor almost as if you want to lift your whole body. Hold for 20-30 breaths.</string>
<string name="introtolegs" translatable="false">Get Ready to Strenthen your Legs</string>
<string name="DownDog" translatable="false">Downward-Facing Dog Pose</string>
<string name="dogstring" translatable="false">Streches back, hamstrings, glutes and calves, along with upper body muscles such as shoulders. Extreme flexibility can be showcased by having the no space between heels and floor.</string>
<string name="triangle_pose" translatable="false">Triangle Pose</string>
<string name="Tposestring" translatable="false">Triangle pose focuses on stretching and lengthening the muscles in your thighs, hips, and back. You should also feel a good stretch in your hamstrings.</string>
<string name="BridgevarText" translatable="false">Bridge Pose can help strengthen your glutes, hamstrings, and lower back. It’s also an excellent hip and chest opener.</string>
<string name="Halfmoontext" translatable="false">This standing pose helps strengthen your quads, glutes, ankles, and core. It also stretches your hamstrings, calves, and groin muscles.</string>
<string name="mindtext" translatable="false">Get Ready to Strengthen your Mind</string>
<string name="medtext" translatable="false">Meditating cross-legged is an excellent option for those with open hips and no joint problems. Sitting with crossed legs is symmetrical, secure, feels grounding, and allows for an unrestricted flow of prana throughout the body.</string>
<string name="cross_legged_position" translatable="false">Cross Legged Position</string>
<string name="kneeling_pose" translatable="false">Kneeling Pose</string>
<string name="kneelText" translatable="false">If you prefer to sit on the ground, but crossed legs are causing discomfort, kneeling in Hero pose is another possibility for a grounding meditation seat that lengthens the spine. Either sit back on your heels or add cushions underneath your sit bones to help alleviate weight-bearing stress on your lower body.</string>
<string name="textChair" translatable="false">Many people find that it’s most comfortable to meditate while sitting on a chair. If possible, sit near the edge of the chair, with a straight spine, relaxed shoulders, hands in your lap and your feet flat on the floor.</string>
<string name="chair_position" translatable="false">Chair Position</string>
<string name="get_ready_to_strengthen_your_back" translatable="false">Get Ready to Strengthen your Back</string>
<string name="catcowdes" translatable="false">Get on all fours. Balance your weight evenly between all four points. Inhale as you look up and let your stomach drop down toward the mat. Exhale as you tuck your chin into your chest, and arch your spine toward the ceiling. Maintain awareness of your body as you do this movement. Focus on noting and releasing tension in your body. Continue this fluid movement for at least 1 minute.</string>
<string name="vwpose" translatable="false">Victorious Warrior Pose</string>
<string name="CatCow" translatable="false">Cat - Cow</string>
<string name="dwfdog" translatable="false">Downward-Facing Dog</string>
<string name="dwfdogdesc" translatable="false">Place your hands in alignment under your wrists and your knees under your hips. Press into your hands, tuck your toes under, and lift up your knees. Keep a slight bend in your knees and lengthen your spine and tailbone. Keep your heels slightly off the ground. Distribute your weight evenly between both sides of your body, paying attention to the position of your hips and shoulders. Keep your head in line with your upper arms or with your chin tucked in slightly. Hold this pose for up to 1 minute.</string>
<string name="extriangle" translatable="false">Extended Triangle</string>
<string name="extTriangleDesc" translatable="false">From standing, walk your feet about 4 feet apart. Turn your right toes to face forward, and your left toes out at an angle. Lift your arms parallel to the floor with your palms facing down. Tilt forward and hinge at your right hip to come forward with your arm and torso. Bring your hand to your leg, a yoga block, or onto the floor. Extend your left arm up toward the ceiling. Look up, forward, or down. Hold this pose for up to 1 minute. Repeat on the opposite side.</string>
<string name="twokneetwistdesc" translatable="false">Lie on your back with your knees drawn into your chest and your arms extended to the side. Slowly lower your legs to the left side while keeping your knees as close together as possible. You may place a pillow under both knees or in between your knees. You can use your left hand to gently press down on your knees. Keep your neck straight, or turn it to either side. Focus on breathing deeply in this position. Hold this pose for at least 30 seconds. Repeat on the opposite side.</string>
<string name="outdoor1" translatable="false">Adventure and Outdoor Activities</string>
<string name="outdoor2" translatable="false"> Parkour is a movement discipline where you navigate your environment by running, jumping, and climbing over obstacles with fluidity and efficiency.</string>
<string name="geoText" translatable="false">Geocaching is like a real-world treasure hunt using GPS coordinates to find hidden caches. It gets you outdoors and can involve hiking, walking, or biking.</string>
<string name="textRock" translatable="false"> Indoor or outdoor rock climbing offers an excellent full-body workout while challenging your problem-solving skills.</string>
<string name="textDisk" translatable="false">Similar to traditional golf, but you throw a disc into a basket instead of hitting a ball into a hole. It is a low-impact activity that can be enjoyed in a variety of outdoor settings.</string>
<string name="capoeira" translatable="false">This Brazilian martial art combines elements of dance, acrobatics, and music.It is a great full-body workout that also teaches rhythm and balance.</string>
<string name="aeriText" translatable="false">Aerial silks involve performing acrobatic moves while suspended from fabric hung from the ceiling. It is an excellent way to build strength and flexibility.</string>
<string name="swiming" translatable="false">Try your hand at synchronized swimming, which combines swimming with dance and gymnastics. It is a fantastic way to improve your water skills and coordination.</string>
<string name="circus" translatable="false"> Learn circus skills like juggling, clowning, or even tightrope walking. These activities are not only physically demanding but also loads of fun.</string>
<string name="hulahooping" translatable="false">Hooping is a fun way to work your core muscles and improve your coordination. You can even find hula hoop dance classes for a more creative approach.</string>
<string name="ultimatefrisbee" translatable="false">This team sport combines elements of soccer, football, and basketball, but instead of a ball, you use a frisbee. It is a great way to improve your endurance and agility.</string>
<string name="trampolinedodgeball" translatable="false">Combine dodgeball with trampolines for an exciting, high-energy game that provides an excellent cardiovascular workout.</string>
<string name="pickleball" translatable="false">Pickleball is a paddle sport that combines elements of tennis, badminton, and table tennis. It is easy to learn and great for all ages.</string>
<string name="frolf" translatable="false"> Similar to disc golf, this game involves throwing a frisbee into a target in as few throws as possible. It is a relaxed outdoor activity that can be enjoyed with friends.</string>
<string name="cardiodrumming" translatable="false">Cardio drumming involves drumming on exercise balls while following an instructors rhythmic movements. It is a fantastic way to get your heart rate up while having fun.</string>
<string name="aqua" translatable="false">Aqua Aerobics is a fitness class conducted in a pool, featuring low-impact aerobic and resistance exercises. Utilizing the waters buoyancy to minimize joint stress, participants engage in activities like leg lifts, arm circles, and jumping jacks. This workout is adaptable for individuals of all fitness levels and is favored by those seeking a gentle yet comprehensive approach to enhancing cardiovascular fitness, strength, and flexibility.</string>
<string name="poundfit" translatable="false">Pound Fit is a high-energy fitness class that combines cardio, strength training, and drumming. Participants use lightly weighted drumsticks called Ripstix to perform rhythmic movements, drumming to the beat of the music while getting a full-body workout. It is a fun and unique way to improve coordination, endurance, and muscle tone.</string>
<string name="bungeefitness" translatable="false">Bungee fitness involves wearing a harness attached to bungee cords suspended from the ceiling. Participants can perform a variety of exercises, including jumps, flips, and resistance training, while experiencing a feeling of weightlessness. Bungee fitness provides an exciting and challenging full-body workout while also improving balance and core strength.</string>
<string name="hiking" translatable="false">Hiking is an outdoor activity that combines exercise with adventure by allowing individuals to explore natural trails and landscapes. It offers a chance to connect with nature, breathe in fresh air, and enjoy the sights and sounds of the outdoors. Whether for leisurely walks or challenging ascents, hiking provides physical fitness, mental relaxation, and a deep connection with the environment, making it accessible and enjoyable for people of all ages and fitness levels.</string>
<string-array name="genders">
<item>Select gender</item>
<item>Male</item>
<item>Female</item>
</string-array>
</resources>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment