deliverable 3 ui, methods to be filled in

This commit is contained in:
IvanaE 2018-11-11 15:52:55 -05:00
parent 16e39ff120
commit 32f1031782
18 changed files with 1153 additions and 26 deletions

View file

@ -30,22 +30,45 @@
<activity <activity
android:name=".SignUp" android:name=".SignUp"
android:label="Sign Up"
android:screenOrientation="portrait" /> android:screenOrientation="portrait" />
<activity <activity
android:name=".LogIn" android:name=".LogIn"
android:label="Log In"
android:screenOrientation="portrait" /> android:screenOrientation="portrait" />
<activity <activity
android:name=".Welcome" android:name=".Welcome"
android:label="Welcome"
android:screenOrientation="portrait" /> android:screenOrientation="portrait" />
<activity <activity
android:name=".AdminWelcome" android:name=".AdminWelcome"
android:label="Welcome"
android:screenOrientation="portrait" /> android:screenOrientation="portrait" />
<activity <activity
android:name=".UsersList" android:name=".UsersList"
android:label="List of Users"/> android:label="List of Users"
android:screenOrientation="portrait"/>
<activity <activity
android:name=".ServicesList" android:name=".AdminServicesList"
android:label="List of Services"></activity> android:label="List of Services"
android:screenOrientation="portrait"/>
<activity
android:name=".ServiceProviderWelcome"
android:label="Welcome"
android:screenOrientation="portrait"/>
<activity
android:name=".EditProfile"
android:label="Edit Profile"
android:screenOrientation="portrait"/>
<activity
android:name=".ServiceProviderServicesList"
android:label="List of Services"
android:screenOrientation="portrait"/>
<activity
android:name=".ServiceProviderAvailabilities"
android:label="Availabilities"
android:screenOrientation="portrait">
</activity>
</application> </application>
</manifest> </manifest>

View file

@ -10,9 +10,6 @@ import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.GridView;
import android.widget.TextView; import android.widget.TextView;
import android.widget.Toast; import android.widget.Toast;
@ -24,7 +21,7 @@ import java.util.List;
* which the admin can view and manipulate. * which the admin can view and manipulate.
* *
*/ */
public class ServicesList extends AppCompatActivity implements NewServiceDialogFragment.NoticeDialogListener, EditServiceDialogFragment.NoticeDialogListener{ public class AdminServicesList extends AppCompatActivity implements NewServiceDialogFragment.NoticeDialogListener, EditServiceDialogFragment.NoticeDialogListener{
//field for RecyclerView //field for RecyclerView
private RecyclerView mRecyclerView; private RecyclerView mRecyclerView;
@ -42,7 +39,7 @@ public class ServicesList extends AppCompatActivity implements NewServiceDialogF
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setContentView(R.layout.activity_services_list); setContentView(R.layout.activity_admin_services_list);
DBHelper dbHelper = new DBHelper(this); DBHelper dbHelper = new DBHelper(this);
List<String[]> serviceslist = dbHelper.getAllServices(); List<String[]> serviceslist = dbHelper.getAllServices();
Service[] services = new Service[(serviceslist.size())]; Service[] services = new Service[(serviceslist.size())];

View file

@ -70,7 +70,7 @@ public class AdminWelcome extends AppCompatActivity {
* @param view * @param view
*/ */
public void goToServices(View view){ public void goToServices(View view){
Intent intent = new Intent(getApplicationContext(), ServicesList.class); Intent intent = new Intent(getApplicationContext(), AdminServicesList.class);
startActivity(intent); startActivity(intent);
} }
} }

View file

@ -0,0 +1,64 @@
package com.uottawa.olympus.olympusservices;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
import android.support.v4.app.DialogFragment;
import android.view.LayoutInflater;
import android.widget.EditText;
import android.widget.Toast;
public class DeleteServiceDialogFragment extends DialogFragment{
public interface NoticeDialogListener {
public void onDialogDelete(DialogFragment dialog);
public void onDialogNevermind(DialogFragment dialog);
}
DeleteServiceDialogFragment.NoticeDialogListener mListener;
@Override
public void onAttach(Context context) {
super.onAttach(context);
// Verify that the host activity implements the callback interface
try {
// Instantiate the NoticeDialogListener so we can send events to the host
mListener = (DeleteServiceDialogFragment.NoticeDialogListener) context;
} catch (ClassCastException e) {
// The activity doesn't implement the interface, throw exception
throw new ClassCastException(this.toString()
+ " must implement NoticeDialogListener");
}
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
// Get the layout inflater
LayoutInflater inflater = getActivity().getLayoutInflater();
// Inflate and set the layout for the dialog
// Pass null as the parent view because its going in the dialog layout
builder.setView(inflater.inflate(R.layout.dialog_service_delete, null))
// Add action buttons
.setPositiveButton(R.string.delete, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
Bundle args = new Bundle();
args.putString("name", (String)getArguments().get("name"));
DeleteServiceDialogFragment.this.setArguments(args);
mListener.onDialogDelete(DeleteServiceDialogFragment.this);
}
})
.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
Bundle args = new Bundle();
args.putString("name", (String)getArguments().get("name"));
mListener.onDialogNevermind(DeleteServiceDialogFragment.this);
}
})
.setTitle((String)getArguments().get("name"));
return builder.create();
}
}

View file

@ -0,0 +1,54 @@
package com.uottawa.olympus.olympusservices;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;
public class EditProfile extends AppCompatActivity {
String username;
DBHelper dbHelper;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_edit_profile);
Bundle bundle = getIntent().getExtras();
username = bundle.getString("username");
dbHelper = new DBHelper(this);
UserType user;
user = dbHelper.findUserByUsername(username);
TextView firstname = findViewById(R.id.FirstNameInput);
TextView lastname = findViewById(R.id.LastNameInput);
TextView password = findViewById(R.id.PasswordInput);
firstname.setText(user.getFirstname());
lastname.setText(user.getLastname());
password.setText(user.getPassword());
}
/**
* Override so that previous screen refreshes when pressing the
* back button on this activity of the app.
*
*/
@Override
public void onBackPressed(){
Intent intent = new Intent(getApplicationContext(),ServiceProviderWelcome.class);
intent.putExtra("username", username);
startActivity(intent);
finish();
}
public void Save(View view){
TextView firstname = findViewById(R.id.FirstNameInput);
TextView lastname = findViewById(R.id.LastNameInput);
TextView password = findViewById(R.id.PasswordInput);
dbHelper.updateUserInfo(username, password.getText().toString(), firstname.getText().toString(), lastname.getText().toString());
Toast.makeText(this, "Profile has been updated", Toast.LENGTH_LONG).show();
}
}

View file

@ -50,6 +50,12 @@ public class LogIn extends AppCompatActivity {
startActivity(intent); startActivity(intent);
finish(); finish();
} }
else if(user.getRole()=="ServiceProvider"){
Intent intent = new Intent(getApplicationContext(),ServiceProviderWelcome.class);
intent.putExtra("username", username);
startActivity(intent);
finish();
}
else { else {
Intent intent = new Intent(getApplicationContext(),Welcome.class); Intent intent = new Intent(getApplicationContext(),Welcome.class);
intent.putExtra("username", username); intent.putExtra("username", username);

View file

@ -0,0 +1,65 @@
package com.uottawa.olympus.olympusservices;
import android.app.TimePickerDialog;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TimePicker;
import java.util.Calendar;
public class ServiceProviderAvailabilities extends AppCompatActivity {
private String username;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_service_provider_availabilities);
Bundle bundle = getIntent().getExtras();
username = bundle.getString("username");
}
public void onClick(View v) {
// Get Current Time
final Calendar c = Calendar.getInstance();
int hour = c.get(Calendar.HOUR_OF_DAY);
int minute = c.get(Calendar.MINUTE);
final Button button = (Button)v;
// Launch Time Picker Dialog
TimePickerDialog timePickerDialog = new TimePickerDialog(this,
new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay,
int minute) {
button.setText(hourOfDay + ":" + minute);
//set availibility for service provider and check start time is less than finish
}
}, hour, minute, false);
timePickerDialog.show();
}
public void onRemove(View view){
//set time to Start/End, set availibility for start and end to null
}
/**
* Override so that previous screen refreshes when pressing the
* back button on this activity of the app.
*
*/
@Override
public void onBackPressed(){
Intent intent = new Intent(getApplicationContext(),ServiceProviderWelcome.class);
intent.putExtra("username", username);
startActivity(intent);
finish();
}
}

View file

@ -0,0 +1,234 @@
package com.uottawa.olympus.olympusservices;
import android.content.Context;
import android.content.Intent;
import android.support.annotation.NonNull;
import android.support.design.widget.Snackbar;
import android.support.v4.app.DialogFragment;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListAdapter;
import android.widget.TextView;
import android.widget.Toast;
import com.jaredrummler.materialspinner.MaterialSpinner;
import java.util.Iterator;
import java.util.List;
/**
* Creates the view and dialog listener for List of services
* which the admin can view and manipulate.
*
*/
public class ServiceProviderServicesList extends AppCompatActivity implements DeleteServiceDialogFragment.NoticeDialogListener{
//field for RecyclerView
private RecyclerView mRecyclerView;
//field for adapter of Recycler view
private RecyclerView.Adapter mAdapter;
//field for layout manager of Recyler view.
private RecyclerView.LayoutManager mLayoutManager;
private String username;
/**
* On creation loads up the xml, and generates the services list,
* and fillsout the recylerView fields.
*
* @param savedInstanceState Bundle to transfer information.
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_service_provider_services_list);
Bundle bundle = getIntent().getExtras();
username = bundle.getString("username");
DBHelper dbHelper = new DBHelper(this);
//grid
List<String[]> serviceslist2 = dbHelper.getAllServices();
Service[] services2 = new Service[(serviceslist2.size())];
Iterator iter2 = serviceslist2.iterator();
for (int i=0; i<serviceslist2.size();i++){
String[] current = (String[])iter2.next();
services2[i] = new Service(current[0], Double.parseDouble(current[1]));
}
mRecyclerView = (RecyclerView) findViewById(R.id.Services);
mLayoutManager = new LinearLayoutManager(this);
mRecyclerView.setLayoutManager(mLayoutManager);
mAdapter = new MyAdapter(services2, this);
mRecyclerView.setAdapter(mAdapter);
//spinner
MaterialSpinner spinner = findViewById(R.id.ServicesInput);
List<String[]> serviceslist = dbHelper.getAllServices();
String[] services = new String[(serviceslist.size())];
Iterator iter = serviceslist.iterator();
for (int i=0; i<serviceslist.size();i++){
String[] current = (String[])iter.next();
services[i] = current[0];
}
ArrayAdapter<String> servicesadapter = new ArrayAdapter<String>
(this, android.R.layout.simple_spinner_item, services);
servicesadapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(servicesadapter);
spinner.setOnItemSelectedListener(new MaterialSpinner.OnItemSelectedListener<String>() {
@Override public void onItemSelected(MaterialSpinner view, int position, long id, String item) {
Snackbar.make(view, "Clicked " + item, Snackbar.LENGTH_LONG).show();
}
});
}
/**
* Override so that previous screen refreshes when pressing the
* back button on this activity of the app.
*
*/
@Override
public void onBackPressed(){
Intent intent = new Intent(getApplicationContext(),ServiceProviderWelcome.class);
intent.putExtra("username", username);
startActivity(intent);
finish();
}
/**
* Deletes services from the list.
*
* @param view View object contains the generated list and buttons
*/
public void deleteService(View view, String name) {
DialogFragment newFragment = new DeleteServiceDialogFragment();
newFragment.show(getSupportFragmentManager(), "addService");
Bundle args = new Bundle();
args.putString("name", name);
newFragment.setArguments(args);
}
/**
* Adds service to the list.
*
* @param view View object contains the generated list and buttons
*/
public void addService(View view, String name) {
MaterialSpinner spinner = findViewById(R.id.RoleInput);
String servicename = spinner.getText().toString();
//add service to service provider if doesn't already exist
}
/**
* Uses Dialog to delete a service from the serviceList.
*
* @param dialog DialogFragment that contains the delete service button.
*/
@Override
public void onDialogDelete(DialogFragment dialog) {
DBHelper dbHelper = new DBHelper(this);
String name = (String)dialog.getArguments().get("name");
//remove service from service provider
dialog.dismiss();
this.recreate();
}
/**
* Does nothing
*
* @param dialog DialogFragment that contains the cancel button.
*/
@Override
public void onDialogNevermind(DialogFragment dialog) {
}
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ServicesHolder> {
private Service[] services;
private Context context;
// Provide a reference to the views for each data item
// Complex data items may need more than one view per item, and
// you provide access to all the views for a data item in a view holder
// Provide a suitable constructor (depends on the kind of dataset)
public MyAdapter(Service[] services, Context context) {
this.services = services;
}
// Create new views (invoked by the layout manager)
@NonNull
@Override
public ServicesHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext())
.inflate(R.layout.list_item, parent, false);
ServicesHolder vh = new ServicesHolder(v);
return vh;
}
// Replace the contents of a view (invoked by the layout manager)
@Override
public void onBindViewHolder(ServicesHolder holder, int position) {
Service service = services[position];
holder.name.setText(service.getName());
holder.rate.setText(String.format("$%,.2f", service.getRate()));
}
// Return the size of your dataset (invoked by the layout manager)
@Override
public int getItemCount() {
return services.length;
}
class ServicesHolder extends RecyclerView.ViewHolder implements View.OnClickListener{
TextView name;
TextView rate;
public ServicesHolder(View row){
super(row);
name = row.findViewById(R.id.Name);
rate = row.findViewById(R.id.Rate);
row.setOnClickListener(this);
}
@Override
public void onClick(View view) {
TextView nameview = (TextView)view.findViewById(R.id.Name);
String name = nameview.getText().toString();
deleteService(view, name);
}
}
}
}

View file

@ -2,12 +2,83 @@ package com.uottawa.olympus.olympusservices;
import android.support.v7.app.AppCompatActivity; import android.support.v7.app.AppCompatActivity;
import android.os.Bundle; import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import android.content.Intent;
/**
* Welcome class creates the welcome screen for the HomeOwners and ServiceProviders
* as a temporary screen until full functionality of those two a classes are
* implemented.
*
*/
public class ServiceProviderWelcome extends AppCompatActivity { public class ServiceProviderWelcome extends AppCompatActivity {
String username;
/**
* On creation of this object the app will display the xml file for
* the welcome page which gets the role and username of the UserType
* object and welcomes the user with a message.
*
* @param savedInstanceState Bundle to transfer data
*/
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setContentView(R.layout.activity_service_provider_welcome); setContentView(R.layout.activity_service_provider_welcome);
Bundle bundle = getIntent().getExtras();
username = bundle.getString("username");
DBHelper dbHelper = new DBHelper(this);
UserType user;
user = dbHelper.findUserByUsername(username);
TextView welcome = findViewById(R.id.Welcome);
welcome.setText("Welcome "+user.getFirstname()+ " you are logged in as a Service Provider");
} }
/**
* Override so that nothing occurs when pressing the
* back button on this activity of the app.
*
*/
@Override
public void onBackPressed(){
}
/**
* Logs out the user and returns them back to
* main activity. End all current user activity
* for security purposes.
*
* @param view View object of current activity.
*/
public void LogOut(View view){
Intent intent = new Intent(getApplicationContext(), Main.class);
startActivity(intent);
finish();
}
public void EditProfile(View view){
Intent intent = new Intent(getApplicationContext(),EditProfile.class);
intent.putExtra("username", username);
startActivity(intent);
finish();
}
public void EditServices(View view){
Intent intent = new Intent(getApplicationContext(),ServiceProviderServicesList.class);
intent.putExtra("username", username);
startActivity(intent);
finish();
}
public void EditAvailabilities(View view){
Intent intent = new Intent(getApplicationContext(),ServiceProviderAvailabilities.class);
intent.putExtra("username", username);
startActivity(intent);
finish();
}
} }

View file

@ -11,7 +11,7 @@
android:paddingRight="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin" android:paddingTop="@dimen/activity_vertical_margin"
android:background="@drawable/background" android:background="@drawable/background"
tools:context=".ServicesList"> tools:context=".AdminServicesList">
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"

View file

@ -0,0 +1,92 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:gravity="center_horizontal"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:background="@drawable/background"
tools:context=".EditProfile">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/Title"
android:layout_width="300dp"
android:layout_height="80dp"
android:layout_marginBottom="10dp"
android:gravity="center"
android:text="Edit Profile"
android:textAppearance="@style/TextAppearance.AppCompat.Large"
android:textColor="@android:color/white"
android:textSize="30sp"
android:layout_marginTop="10dp"
app:fontFamily="@font/julius_sans_one" />
//component used from https://github.com/rengwuxian/MaterialEditText
<com.rengwuxian.materialedittext.MaterialEditText
android:id="@+id/FirstNameInput"
android:layout_width="match_parent"
android:layout_height="80dp"
android:layout_marginTop="30dp"
android:background="@drawable/customborder"
android:hint="First Name"
android:textSize="15sp"
app:met_baseColor="@android:color/white"
app:met_floatingLabel="highlight"
app:met_primaryColor="@color/colorWhite"
app:met_singleLineEllipsis="true"
android:textCursorDrawable="@color/colorWhite" />
//component used from https://github.com/rengwuxian/MaterialEditText
<com.rengwuxian.materialedittext.MaterialEditText
android:id="@+id/LastNameInput"
android:layout_width="match_parent"
android:layout_height="80dp"
android:background="@drawable/customborder"
android:hint="Last Name"
android:textSize="15sp"
app:met_baseColor="@android:color/white"
app:met_floatingLabel="highlight"
app:met_primaryColor="@color/colorWhite"
app:met_singleLineEllipsis="true"
android:textCursorDrawable="@color/colorWhite"/>
//component used from https://github.com/rengwuxian/MaterialEditText
<com.rengwuxian.materialedittext.MaterialEditText
android:id="@+id/PasswordInput"
android:layout_width="match_parent"
android:layout_height="80dp"
android:background="@drawable/customborder"
android:hint="Password"
android:textSize="15sp"
app:met_baseColor="@android:color/white"
app:met_floatingLabel="highlight"
app:met_primaryColor="@color/colorWhite"
app:met_singleLineEllipsis="true"
android:inputType="textPassword"
android:textCursorDrawable="@color/colorWhite"/>
<Button
android:id="@+id/SignUp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Save"
android:onClick="Save"
android:theme="@style/AppTheme.Button" />
</LinearLayout>
</ScrollView>
</LinearLayout>

View file

@ -16,8 +16,9 @@
<TextView <TextView
android:id="@+id/Title" android:id="@+id/Title"
android:layout_width="300dp" android:layout_width="300dp"
android:layout_height="50dp" android:layout_height="wrap_content"
android:layout_marginBottom="20dp" android:layout_marginBottom="20dp"
android:paddingTop="20dp"
android:gravity="center" android:gravity="center"
android:text="@string/login" android:text="@string/login"
android:textAppearance="@style/TextAppearance.AppCompat.Large" android:textAppearance="@style/TextAppearance.AppCompat.Large"

View file

@ -0,0 +1,350 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:gravity="center_horizontal"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:background="@drawable/background"
tools:context=".ServiceProviderAvailabilities">
<TableLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<TableRow
android:layout_width="match_parent"
android:layout_height="45dp"
android:layout_marginTop="10dp">
<TextView
android:id="@+id/Day"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:text="Day"
android:textAppearance="@style/TextAppearance.AppCompat.Large"
android:textColor="@android:color/white"
android:textSize="15sp"
android:layout_marginTop="10dp"
android:layout_gravity="center_vertical"/>
<TextView
android:id="@+id/Start"
android:layout_width="80dp"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:paddingLeft="20dp"
android:text="Start"
android:textAppearance="@style/TextAppearance.AppCompat.Large"
android:textColor="@android:color/white"
android:textSize="15sp"
android:layout_marginTop="10dp"
android:layout_gravity="center_vertical"/>
<TextView
android:id="@+id/End"
android:layout_width="80dp"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:paddingLeft="20dp"
android:text="End"
android:textAppearance="@style/TextAppearance.AppCompat.Large"
android:textColor="@android:color/white"
android:textSize="15sp"
android:layout_marginTop="10dp"
android:layout_gravity="center_vertical"/>
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="45dp">
<TextView
android:id="@+id/Monday"
android:layout_width="105dp"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:text="Monday"
android:textAppearance="@style/TextAppearance.AppCompat.Large"
android:textColor="@android:color/white"
android:textSize="15sp"
android:layout_marginTop="10dp"
android:layout_gravity="center_vertical"/>
<Button
android:id="@+id/MondayStart"
android:layout_width="80dp"
android:layout_height="wrap_content"
android:text="Start"
android:theme="@style/AppTheme.Button"
android:onClick="onClick"
android:layout_marginRight="10dp"/>
<Button
android:id="@+id/MondayEnd"
android:layout_width="80dp"
android:layout_height="wrap_content"
android:text="End"
android:layout_marginRight="10dp"
android:onClick="onClick"
android:theme="@style/AppTheme.Button" />
<Button
android:id="@+id/DeleteMon"
android:layout_width="50dp"
android:layout_height="wrap_content"
android:text="X"
android:onClick="onRemove"
android:theme="@style/AppTheme.Button" />
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="45dp"
android:layout_marginTop="10dp">
<TextView
android:id="@+id/Tuesday"
android:layout_width="105dp"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:text="Tuesday"
android:textAppearance="@style/TextAppearance.AppCompat.Large"
android:textColor="@android:color/white"
android:textSize="15sp"
android:layout_marginTop="10dp"
android:layout_gravity="center_vertical"/>
<Button
android:id="@+id/TuesdayStart"
android:layout_width="80dp"
android:layout_height="wrap_content"
android:text="Start"
android:theme="@style/AppTheme.Button"
android:onClick="onClick"
android:layout_marginRight="10dp"/>
<Button
android:id="@+id/TuesdayEnd"
android:layout_width="80dp"
android:layout_height="wrap_content"
android:text="End"
android:layout_marginRight="10dp"
android:onClick="onClick"
android:theme="@style/AppTheme.Button" />
<Button
android:id="@+id/DeleteTuesday"
android:layout_width="50dp"
android:layout_height="wrap_content"
android:text="X"
android:onClick="onRemove"
android:theme="@style/AppTheme.Button" />
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="45dp"
android:layout_marginTop="10dp">
<TextView
android:id="@+id/Wednesday"
android:layout_width="105dp"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:text="Wednesday"
android:textAppearance="@style/TextAppearance.AppCompat.Large"
android:textColor="@android:color/white"
android:textSize="15sp"
android:layout_marginTop="10dp"
android:layout_gravity="center_vertical"/>
<Button
android:id="@+id/WednesdayStart"
android:layout_width="80dp"
android:layout_height="wrap_content"
android:text="Start"
android:theme="@style/AppTheme.Button"
android:onClick="onClick"
android:layout_marginRight="10dp"/>
<Button
android:id="@+id/WednesdayEnd"
android:layout_width="80dp"
android:layout_height="wrap_content"
android:text="End"
android:layout_marginRight="10dp"
android:onClick="onClick"
android:theme="@style/AppTheme.Button" />
<Button
android:id="@+id/DeleteWednesday"
android:layout_width="50dp"
android:layout_height="wrap_content"
android:text="X"
android:onClick="onRemove"
android:theme="@style/AppTheme.Button" />
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="45dp"
android:layout_marginTop="10dp">
<TextView
android:id="@+id/Thursday"
android:layout_width="105dp"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:text="Thursday"
android:textAppearance="@style/TextAppearance.AppCompat.Large"
android:textColor="@android:color/white"
android:textSize="15sp"
android:layout_marginTop="10dp"
android:layout_gravity="center_vertical"/>
<Button
android:id="@+id/ThursdayStart"
android:layout_width="80dp"
android:layout_height="wrap_content"
android:text="Start"
android:theme="@style/AppTheme.Button"
android:onClick="onClick"
android:layout_marginRight="10dp"/>
<Button
android:id="@+id/ThursdayEnd"
android:layout_width="80dp"
android:layout_height="wrap_content"
android:text="End"
android:layout_marginRight="10dp"
android:onClick="onClick"
android:theme="@style/AppTheme.Button" />
<Button
android:id="@+id/DeleteThursday"
android:layout_width="50dp"
android:layout_height="wrap_content"
android:text="X"
android:onClick="onRemove"
android:theme="@style/AppTheme.Button" />
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="45dp"
android:layout_marginTop="10dp">
<TextView
android:id="@+id/Friday"
android:layout_width="105dp"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:text="Friday"
android:textAppearance="@style/TextAppearance.AppCompat.Large"
android:textColor="@android:color/white"
android:textSize="15sp"
android:layout_marginTop="10dp"
android:layout_gravity="center_vertical"/>
<Button
android:id="@+id/FridayStart"
android:layout_width="80dp"
android:layout_height="wrap_content"
android:text="Start"
android:theme="@style/AppTheme.Button"
android:onClick="onClick"
android:layout_marginRight="10dp"/>
<Button
android:id="@+id/FridayEnd"
android:layout_width="80dp"
android:layout_height="wrap_content"
android:text="End"
android:layout_marginRight="10dp"
android:onClick="onClick"
android:theme="@style/AppTheme.Button" />
<Button
android:id="@+id/DeleteFriday"
android:layout_width="50dp"
android:layout_height="wrap_content"
android:text="X"
android:onClick="onRemove"
android:theme="@style/AppTheme.Button" />
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="45dp"
android:layout_marginTop="10dp">
<TextView
android:id="@+id/Saturday"
android:layout_width="105dp"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:text="Saturday"
android:textAppearance="@style/TextAppearance.AppCompat.Large"
android:textColor="@android:color/white"
android:textSize="15sp"
android:layout_marginTop="10dp"
android:layout_gravity="center_vertical"/>
<Button
android:id="@+id/SaturdayStart"
android:layout_width="80dp"
android:layout_height="wrap_content"
android:text="Start"
android:theme="@style/AppTheme.Button"
android:onClick="onClick"
android:layout_marginRight="10dp"/>
<Button
android:id="@+id/SaturdayEnd"
android:layout_width="80dp"
android:layout_height="wrap_content"
android:text="End"
android:layout_marginRight="10dp"
android:onClick="onClick"
android:theme="@style/AppTheme.Button" />
<Button
android:id="@+id/DeleteSaturday"
android:layout_width="50dp"
android:layout_height="wrap_content"
android:text="X"
android:onClick="onRemove"
android:theme="@style/AppTheme.Button" />
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="45dp"
android:layout_marginTop="10dp">
<TextView
android:id="@+id/Sunday"
android:layout_width="105dp"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:text="Sunday"
android:textAppearance="@style/TextAppearance.AppCompat.Large"
android:textColor="@android:color/white"
android:textSize="15sp"
android:layout_marginTop="10dp"
android:layout_gravity="center_vertical"/>
<Button
android:id="@+id/SundayStart"
android:layout_width="80dp"
android:layout_height="wrap_content"
android:text="Start"
android:theme="@style/AppTheme.Button"
android:onClick="onClick"
android:layout_marginRight="10dp"/>
<Button
android:id="@+id/SundayEnd"
android:layout_width="80dp"
android:layout_height="wrap_content"
android:text="End"
android:layout_marginRight="10dp"
android:onClick="onClick"
android:theme="@style/AppTheme.Button" />
<Button
android:id="@+id/DeleteSunday"
android:layout_width="50dp"
android:layout_height="wrap_content"
android:text="X"
android:onClick="onRemove"
android:theme="@style/AppTheme.Button" />
</TableRow>
</TableLayout>
</LinearLayout>

View file

@ -0,0 +1,98 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:gravity="center_horizontal"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:background="@drawable/background"
tools:context=".ServiceProviderServicesList">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingBottom="10dp">
<TextView
android:id="@+id/Title1"
android:layout_width="300dp"
android:layout_height="wrap_content"
android:paddingLeft="10dp"
android:layout_marginBottom="5dp"
android:layout_marginTop="10dp"
android:layout_weight="1"
android:text="Name"
android:textAppearance="@style/TextAppearance.AppCompat.Large"
android:textColor="@android:color/white"
android:textSize="15sp" />
<TextView
android:id="@+id/Title2"
android:layout_width="300dp"
android:layout_height="wrap_content"
android:layout_marginBottom="5dp"
android:layout_marginTop="10dp"
android:layout_weight="1"
android:text="Hourly Rate"
android:gravity="end"
android:paddingRight="10dp"
android:textAppearance="@style/TextAppearance.AppCompat.Large"
android:textColor="@android:color/white"
android:textSize="15sp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.v7.widget.RecyclerView
android:id="@+id/Services"
android:scrollbars="vertical"
android:layout_width="match_parent"
android:layout_height="300dp"/>
</LinearLayout>
<TextView
android:id="@+id/Title3"
android:layout_width="300dp"
android:layout_height="wrap_content"
android:layout_marginBottom="5dp"
android:layout_marginTop="10dp"
android:gravity="center"
android:text="Click on service to remove"
android:textAppearance="@style/TextAppearance.AppCompat.Large"
android:textColor="@android:color/white"
android:textSize="15sp" />
// component used from https://github.com/jaredrummler/MaterialSpinner
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginTop="20dp">
<com.jaredrummler.materialspinner.MaterialSpinner
android:id="@+id/ServicesInput"
android:layout_width="250dp"
android:layout_height="45dp"
android:layout_weight="1"
android:layout_marginTop="5dp"/>
<Button
android:id="@+id/newService"
android:layout_width="wrap_content"
android:layout_height="55dp"
android:layout_weight="1"
android:onClick="addService"
android:text="Add"
android:textSize="10sp"
android:theme="@style/AppTheme.Button"/>
</LinearLayout>
</LinearLayout>

View file

@ -1,9 +1,69 @@
<?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" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:gravity="center_horizontal"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:background="@drawable/background"
tools:context=".ServiceProviderWelcome"> tools:context=".ServiceProviderWelcome">
<TextView
android:id="@+id/Welcome"
android:layout_width="300dp"
android:layout_height="80dp"
android:layout_marginBottom="10dp"
android:gravity="center"
android:text="Welcome"
android:textAppearance="@style/TextAppearance.AppCompat.Large"
android:textColor="@android:color/white"
android:textSize="20sp"
android:layout_marginTop="10dp"
app:fontFamily="@font/julius_sans_one" />
</android.support.constraint.ConstraintLayout>
<Button
android:id="@+id/Profile"
android:layout_width="match_parent"
android:layout_height="60dp"
android:layout_marginTop="10dp"
android:onClick="EditProfile"
android:text="Profile"
android:theme="@style/AppTheme.Button" />
<Button
android:id="@+id/Services"
android:layout_width="match_parent"
android:layout_height="60dp"
android:layout_marginTop="15dp"
android:onClick="EditServices"
android:text="Services"
android:theme="@style/AppTheme.Button" />
<Button
android:id="@+id/Availabilities"
android:layout_width="match_parent"
android:layout_height="60dp"
android:layout_marginTop="15dp"
android:text="Availabilities"
android:onClick="EditAvailabilities"
android:theme="@style/AppTheme.Button" />
<Button
android:id="@+id/Bookings"
android:layout_width="match_parent"
android:layout_height="60dp"
android:layout_marginTop="20dp"
android:text="Bookings"
android:theme="@style/AppTheme.Button" />
<Button
android:id="@+id/LogOut"
android:layout_width="match_parent"
android:layout_height="60dp"
android:layout_marginTop="15dp"
android:onClick="LogOut"
android:text="Logout"
android:theme="@style/AppTheme.Button" />
</LinearLayout>

View file

@ -13,24 +13,13 @@
android:background="@drawable/background" android:background="@drawable/background"
tools:context=".SignUp"> tools:context=".SignUp">
<ScrollView <ScrollView
android:layout_width="wrap_content" android:layout_width="match_parent"
android:layout_height="wrap_content"> android:layout_height="wrap_content">
<LinearLayout <LinearLayout
android:orientation="vertical" android:orientation="vertical"
android:layout_width="wrap_content" android:layout_width="match_parent"
android:layout_height="wrap_content"> android:layout_height="wrap_content">
<TextView
android:id="@+id/Title"
android:layout_width="300dp"
android:layout_height="20dp"
android:layout_marginBottom="10dp"
android:gravity="center"
android:text="@string/signup"
android:textAppearance="@style/TextAppearance.AppCompat.Large"
android:textColor="@android:color/white"
android:textSize="15sp"
app:fontFamily="@font/julius_sans_one" />
<TextView <TextView
android:id="@+id/textView" android:id="@+id/textView"

View file

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:id="@+id/Title1"
android:layout_width="300dp"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_weight="1"
android:text="Are you sure you want to delete this service?"
android:textAppearance="@style/TextAppearance.AppCompat.Large"
android:textColor="@android:color/black"
android:textSize="15sp"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:textAlignment="center"/>
</LinearLayout>