Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 39 additions & 0 deletions .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

25 changes: 15 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,16 @@
# AAVax
## alxojy branch

### Master branch
Contains:
- bottom nav bar to 4 fragments:
- home page
- travel page
- reminder page
- profile page


### Current features
- Login page
- Done transitions for create acc text, login button
- Create new acc form
- Home page
- Done: Scrollable list of vaccines displayed
- Bottom nav bar transitions into home, travel, reminder, profile page

### TODO
- Login page
- transitions: forgot password text, invalid login
- Home page
- add button, delete button, click vaccine to view details
- Reminders
3 changes: 3 additions & 0 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,10 @@ dependencies {
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation 'androidx.vectordrawable:vectordrawable:1.1.0'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'androidx.annotation:annotation:1.1.0'
implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.2.0'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
implementation 'com.android.support:cardview-v7:28.0.0'
}
8 changes: 7 additions & 1 deletion app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,21 @@
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".boundary.login.CreateAccountActivity">
</activity>
<activity
android:name=".ui.MainActivity"
android:name=".boundary.login.LoginActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".boundary.MainActivity">
</activity>

</application>

</manifest>
68 changes: 68 additions & 0 deletions app/src/main/java/com/example/aavax/boundary/HomePageFragment.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
package com.example.aavax.boundary;

import android.os.Bundle;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.DividerItemDecoration;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;

import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import com.example.aavax.R;
import com.example.aavax.boundary.homepage.VaccineAdapter;

import java.util.ArrayList;

import control.Vaccine;

public class HomePageFragment extends Fragment {

private RecyclerView recyclerView;
private VaccineAdapter adapter;
private ArrayList<Vaccine> vaccineArrayList;

@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState);
vaccineArrayList = new ArrayList<>();
// initialise vaccines
createListData();
return inflater.inflate(R.layout.fragment_home_page, container, false);
}

@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
recyclerView = getView().findViewById(R.id.vaccine_recycler);
recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
// add line after each vaccine row
recyclerView.addItemDecoration(new DividerItemDecoration(getActivity(), LinearLayoutManager.VERTICAL));
adapter = new VaccineAdapter(getActivity(), vaccineArrayList);
recyclerView.setAdapter(adapter);
}

//TODO: call profile method to get list of vaccine log entries
private void createListData() {
Vaccine vac1 = new Vaccine("Hepatitis A", "detail 1");
vaccineArrayList.add(vac1);
Vaccine vac2 = new Vaccine("Measles", "detail 1");
vaccineArrayList.add(vac2);
Vaccine vac3 = new Vaccine("Rubella", "detail 1");
vaccineArrayList.add(vac3);
Vaccine vac4 = new Vaccine("Td Booster", "detail 1");
vaccineArrayList.add(vac4);
Vaccine vac5 = new Vaccine("Varicella", "detail 1");
vaccineArrayList.add(vac5);
Vaccine vac6 = new Vaccine("Malaria", "detail 1");
vaccineArrayList.add(vac6);
Vaccine vac7 = new Vaccine("Vaccine", "detail 1");
vaccineArrayList.add(vac7);
vaccineArrayList.add(vac7);
vaccineArrayList.add(vac7);
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.example.aavax.ui;
package com.example.aavax.boundary;

import android.os.Bundle;
import android.view.MenuItem;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package com.example.aavax.ui;
package com.example.aavax.boundary;

import android.net.Uri;
import android.os.Bundle;

import androidx.annotation.Nullable;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package com.example.aavax.ui;
package com.example.aavax.boundary;

import android.net.Uri;
import android.os.Bundle;

import androidx.annotation.Nullable;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package com.example.aavax.ui;
package com.example.aavax.boundary;

import android.net.Uri;
import android.os.Bundle;

import androidx.annotation.Nullable;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package com.example.aavax.boundary.homepage;

import android.os.Bundle;

import androidx.fragment.app.Fragment;

import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import com.example.aavax.R;

//TODO: display correct vacc info
//might have to pass the vaccine log entry in vaccineholder when instantiating new fragment
public class MyVaccInfoFragment extends Fragment {

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_my_vacc_info, container, false);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
package com.example.aavax.boundary.homepage;

import android.content.Context;
import android.text.style.UpdateLayout;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;

import com.example.aavax.R;

import java.util.ArrayList;

import control.Vaccine;

public class VaccineAdapter extends RecyclerView.Adapter<VaccineHolder> {

private Context context;

private ArrayList<Vaccine> vaccines;

public VaccineAdapter(Context context, ArrayList<Vaccine> vaccines) {
this.context = context;
this.vaccines = vaccines;
}

@Override
public int getItemCount() {
return vaccines.size();
}

@NonNull
@Override
public VaccineHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(context).inflate(R.layout.vaccine_row, parent, false);
return new VaccineHolder(view);
}

@Override
public void onBindViewHolder(VaccineHolder holder, int position) {
Vaccine vaccine = vaccines.get(position);
holder.setDetails(vaccine);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package com.example.aavax.boundary.homepage;

import android.view.View;
import android.widget.TextView;

import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.RecyclerView;

import com.example.aavax.R;

import control.Vaccine;

public class VaccineHolder extends RecyclerView.ViewHolder implements View.OnClickListener {

private TextView vaccineName;

public VaccineHolder(View itemView) {
super(itemView);
itemView.setOnClickListener(this);
vaccineName = itemView.findViewById(R.id.vaccine_name);
}

public void setDetails(Vaccine vaccine) {
vaccineName.setText(vaccine.getName());
}

@Override
public void onClick(View itemView) {
AppCompatActivity activity = (AppCompatActivity) itemView.getContext();
Fragment myFragment = new MyVaccInfoFragment();
activity.getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, myFragment).addToBackStack(null).commit();
}
}

Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
package com.example.aavax.boundary.login;

import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

import com.example.aavax.R;

public class CreateAccountActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_create_account);

final Button createAccount = findViewById(R.id.create_account_button);

Toolbar toolbar = findViewById(R.id.create_account_toolbar);
toolbar.setNavigationIcon(R.drawable.ic_arrow_back_24dp);

// back button
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onBackPressed(); // Implemented by activity
}
});

// create account button
createAccount.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onBackPressed();
}
});
}

@Override
public void onBackPressed() {
startActivity(new Intent(this, LoginActivity.class));
finish();
}
}
Loading