diff --git a/app/build.gradle b/app/build.gradle index e548b26ec0559c7b54fb36ea3000c560a1cfaa4e..96859a497e0884c5a52612e9c42081ff7ffdec22 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -4,8 +4,9 @@ android { compileSdkVersion 29 buildToolsVersion "29.0.2" defaultConfig { + vectorDrawables.useSupportLibrary = true applicationId "com.yearthreeproject.xbframework" - minSdkVersion 15 + minSdkVersion 16 targetSdkVersion 29 versionCode 1 versionName "1.0" @@ -33,4 +34,5 @@ dependencies { implementation 'com.google.android.material:material:1.1.0' api 'com.theartofdev.edmodo:android-image-cropper:2.8.0' implementation 'com.jjoe64:graphview:4.2.2' + implementation 'com.github.sundeepk:compact-calendar-view:3.0.0' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 00befa9b2ab57a26e303090b9bb128ac45394897..5a267e8271d865adfbdb91eb763c76c2b483f75d 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -7,7 +7,7 @@ <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <application - android:allowBackup="false" + android:allowBackup="true" android:icon="@raw/logo" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" diff --git a/app/src/main/java/com/yearthreeproject/xbframework/AboutActivity.java b/app/src/main/java/com/yearthreeproject/xbframework/AboutActivity.java index 046055e986032cc2e6c26d346bb0855daaaf0e61..836bb36cfe21bbf142bcc0c1a3821462bfc2ff5f 100644 --- a/app/src/main/java/com/yearthreeproject/xbframework/AboutActivity.java +++ b/app/src/main/java/com/yearthreeproject/xbframework/AboutActivity.java @@ -2,8 +2,6 @@ package com.yearthreeproject.xbframework; import android.os.Build; import android.os.Bundle; -import android.view.View; -import android.widget.Button; import androidx.annotation.Nullable; import androidx.annotation.RequiresApi; @@ -14,6 +12,12 @@ import java.util.Objects; public class AboutActivity extends AppCompatActivity { + @Override + public boolean onSupportNavigateUp() { + finish(); + return true; + } + @RequiresApi(api = Build.VERSION_CODES.KITKAT) @Override protected void onCreate(@Nullable Bundle savedInstanceState) { @@ -21,16 +25,14 @@ public class AboutActivity extends AppCompatActivity { setContentView(R.layout.activity_about); Toolbar toolbar = findViewById(R.id.toolbar); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { + toolbar.setNestedScrollingEnabled(false); + } setSupportActionBar(toolbar); Objects.requireNonNull(getSupportActionBar()).setDisplayShowHomeEnabled(true); getSupportActionBar().setLogo(R.mipmap.ic_launcher); getSupportActionBar().setDisplayUseLogoEnabled(true); - - Button backHomeButton = findViewById(R.id.AboutBackHomeButton); - backHomeButton.setOnClickListener(new View.OnClickListener() { - public void onClick(View v) { - finish(); - } - }); + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + getSupportActionBar().setDisplayShowHomeEnabled(true); } } diff --git a/app/src/main/java/com/yearthreeproject/xbframework/BoxesActivity.java b/app/src/main/java/com/yearthreeproject/xbframework/BoxesActivity.java index 331058b039d572669a0d2e7c670a82b93508acb8..6040de4c5c2af6ca2d51dfe2bd8eb186c63dc9cb 100644 --- a/app/src/main/java/com/yearthreeproject/xbframework/BoxesActivity.java +++ b/app/src/main/java/com/yearthreeproject/xbframework/BoxesActivity.java @@ -9,7 +9,6 @@ import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; -import android.widget.Button; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; @@ -29,6 +28,12 @@ import static android.util.Log.d; public class BoxesActivity extends AppCompatActivity { + @Override + public boolean onSupportNavigateUp() { + finish(); + return true; + } + @Override public boolean onCreateOptionsMenu(Menu menu) { MenuItem createBox = menu.add("Create New Box!"); @@ -49,20 +54,19 @@ public class BoxesActivity extends AppCompatActivity { super.onCreate(savedInstanceState); setContentView(R.layout.activity_boxes); Toolbar toolbar = findViewById(R.id.toolbar); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { + toolbar.setNestedScrollingEnabled(false); + } setSupportActionBar(toolbar); Objects.requireNonNull(getSupportActionBar()).setDisplayShowHomeEnabled(true); getSupportActionBar().setLogo(R.mipmap.ic_launcher); getSupportActionBar().setDisplayUseLogoEnabled(true); + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + getSupportActionBar().setDisplayShowHomeEnabled(true); + // JSON loading from local directory, could be implemented to stream from online loadAndDisplayJSON(); - - Button backHomeButton = findViewById(R.id.BoxesBackHomeButton); - backHomeButton.setOnClickListener(new View.OnClickListener() { - public void onClick(View v) { - finish(); - } - }); } @RequiresApi(api = Build.VERSION_CODES.KITKAT) @@ -90,6 +94,7 @@ public class BoxesActivity extends AppCompatActivity { inFiveTitle.setText(inFive[i]); inFiveTitle.setTextSize(TypedValue.COMPLEX_UNIT_SP, 36); inFiveTitle.setPadding(0, 8, 0, 0); + inFiveTitle.setTextColor(getColor(R.color.colorPrimary)); inFiveLayoutArray[i].setOrientation(LinearLayout.VERTICAL); inFiveLayoutArray[i].addView(inFiveTitle); @@ -97,7 +102,7 @@ public class BoxesActivity extends AppCompatActivity { View hr = new View(this); ViewGroup.LayoutParams hrLayoutParams = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 4); hr.setLayoutParams(hrLayoutParams); - hr.setBackgroundColor(Color.parseColor("#888888")); + hr.setBackgroundColor(Color.parseColor("#587B7F")); inFiveLayoutArray[i].addView(hr); @@ -116,8 +121,10 @@ public class BoxesActivity extends AppCompatActivity { TextView titleOfBox = new TextView(this); titleOfBox.setText(box.getString("Name")); titleOfBox.setTextSize(TypedValue.COMPLEX_UNIT_SP, 28); + titleOfBox.setTextColor(getColor(R.color.colorPrimary)); TextView descriptionOfBox = new TextView(this); + descriptionOfBox.setTextColor(getColor(R.color.colorPrimary)); descriptionOfBox.setText(box.getString("Blurb")); diff --git a/app/src/main/java/com/yearthreeproject/xbframework/ExperimentActivity.java b/app/src/main/java/com/yearthreeproject/xbframework/ExperimentActivity.java index 0de53054cf5c9303c9ce5976554c09f677dfd352..20d54bc2f2317f19f1f9573b7e420d6089b06203 100644 --- a/app/src/main/java/com/yearthreeproject/xbframework/ExperimentActivity.java +++ b/app/src/main/java/com/yearthreeproject/xbframework/ExperimentActivity.java @@ -7,7 +7,6 @@ import android.os.Bundle; import android.text.Html; import android.view.View; import android.view.ViewGroup; -import android.widget.Button; import android.widget.LinearLayout; import android.widget.RadioButton; import android.widget.TextView; @@ -17,12 +16,15 @@ import androidx.annotation.RequiresApi; import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.widget.Toolbar; +import com.google.android.material.floatingactionbutton.FloatingActionButton; + import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import java.util.ArrayList; import java.util.Calendar; +import java.util.Objects; import static android.util.Log.d; import static java.util.Objects.requireNonNull; @@ -31,16 +33,28 @@ public class ExperimentActivity extends AppCompatActivity { private ArrayList<RadioButton> experimentsRadioButtonArray; + @Override + public boolean onSupportNavigateUp() { + finish(); + return true; + } + @RequiresApi(api = Build.VERSION_CODES.KITKAT) @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_experiment); Toolbar toolbar = findViewById(R.id.toolbar); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { + toolbar.setNestedScrollingEnabled(false); + } setSupportActionBar(toolbar); - requireNonNull(getSupportActionBar()).setDisplayShowHomeEnabled(true); + Objects.requireNonNull(getSupportActionBar()).setDisplayShowHomeEnabled(true); getSupportActionBar().setLogo(R.mipmap.ic_launcher); getSupportActionBar().setDisplayUseLogoEnabled(true); + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + getSupportActionBar().setDisplayShowHomeEnabled(true); + LinearLayout experimentInfoLayout = findViewById(R.id.ExperimentInfoLayout); @@ -57,6 +71,7 @@ public class ExperimentActivity extends AppCompatActivity { */ TextView boxDescription = new TextView(this); + boxDescription.setTextColor(getColor(R.color.colorPrimary)); boxDescription.setText(Html.fromHtml(boxJSON.getString("Description") + "<font color=red> " + boxJSON.getString("WarningText") + "</font color>")); @@ -74,12 +89,14 @@ public class ExperimentActivity extends AppCompatActivity { View hr = new View(this); ViewGroup.LayoutParams hrLayoutParams = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 4); hr.setLayoutParams(hrLayoutParams); - hr.setBackgroundColor(Color.parseColor("#888888")); + hr.setBackgroundColor(getColor(R.color.colorPrimary)); hr.setPadding(0, 0, 0, 16); TextView experimentGroupName = new TextView(this); experimentGroupName.setText(experimentsJSONArray.getJSONObject(i).getString("Group")); experimentGroupName.setPadding(0, 8, 0, 8); + experimentGroupName.setTextColor(getColor(R.color.colorPrimary)); + experimentInfoLayout.addView(hr); experimentInfoLayout.addView(experimentGroupName); @@ -93,6 +110,7 @@ public class ExperimentActivity extends AppCompatActivity { experimentRadioButton.setId(radioButtonUniqueId); experimentRadioButton.setText(experimentData.getString("Title")); + experimentRadioButton.setTextColor(getColor(R.color.colorPrimary)); experimentRadioButton.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { for (int x = 0; x < experimentsRadioButtonArray.size(); x++) { @@ -113,8 +131,8 @@ public class ExperimentActivity extends AppCompatActivity { e.printStackTrace(); } - Button submitButton = findViewById(R.id.ExperimentSubmitButton); - submitButton.setOnClickListener(new View.OnClickListener() { + FloatingActionButton fab = findViewById(R.id.experimentFAB); + fab.setOnClickListener(new View.OnClickListener() { @RequiresApi(api = Build.VERSION_CODES.N) public void onClick(View v) { for (int x = 0; x < experimentsRadioButtonArray.size(); x++) @@ -153,12 +171,5 @@ public class ExperimentActivity extends AppCompatActivity { } } }); - - Button backHomeButton = findViewById(R.id.ExperimentBackHomeButton); - backHomeButton.setOnClickListener(new View.OnClickListener() { - public void onClick(View v) { - finish(); - } - }); } } diff --git a/app/src/main/java/com/yearthreeproject/xbframework/ExperimentSurveyCreatorActivity.java b/app/src/main/java/com/yearthreeproject/xbframework/ExperimentSurveyCreatorActivity.java index c1b4beb728f2e67ccf016cd9695f2fbf151383ad..4a5ea799e438179dc6b1f0291bdb17f853fd7e0d 100644 --- a/app/src/main/java/com/yearthreeproject/xbframework/ExperimentSurveyCreatorActivity.java +++ b/app/src/main/java/com/yearthreeproject/xbframework/ExperimentSurveyCreatorActivity.java @@ -27,6 +27,8 @@ import androidx.annotation.RequiresApi; import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.widget.Toolbar; +import com.google.android.material.floatingactionbutton.FloatingActionButton; + import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; @@ -63,6 +65,12 @@ public class ExperimentSurveyCreatorActivity extends AppCompatActivity { private boolean customNotifications = false; private boolean artefactImplementation = false; + @Override + public boolean onSupportNavigateUp() { + finish(); + return true; + } + // TODO: Basic functionality of submission is competed, the next step here would be to give some hints as to what each section did and what is advised to go there (for a later date) @RequiresApi(api = Build.VERSION_CODES.KITKAT) @@ -75,9 +83,16 @@ public class ExperimentSurveyCreatorActivity extends AppCompatActivity { submitToast = new Toast(this); Toolbar toolbar = findViewById(R.id.toolbar); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { + toolbar.setNestedScrollingEnabled(false); + } setSupportActionBar(toolbar); Objects.requireNonNull(getSupportActionBar()).setDisplayShowHomeEnabled(true); + getSupportActionBar().setLogo(R.mipmap.ic_launcher); getSupportActionBar().setDisplayUseLogoEnabled(true); + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + getSupportActionBar().setDisplayShowHomeEnabled(true); + try { JSONObject boxInfo = new JSONObject(Objects.requireNonNull(getIntent().getStringExtra("JSON"))); @@ -85,11 +100,20 @@ public class ExperimentSurveyCreatorActivity extends AppCompatActivity { //JSONObject groupJSON = boxInfo.getJSONArray("Experiments").getJSONObject(getIntent().getIntExtra("GroupIndex", 0)); //JSONArray experimentJSON = groupJSON.getJSONArray("Options"); - Button submitButton = findViewById(R.id.ExperimentSurveyCreatorSubmitButton); + /*Button submitButton = findViewById(R.id.ExperimentSurveyCreatorSubmitButton); submitButton.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { submitCheck(); } + });*/ + + FloatingActionButton fab = findViewById(R.id.experimentSurveyCreatorFAB); + fab.setImageResource(R.drawable.ic_action_right); + fab.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + submitCheck(); + } }); initialGUILoad(boxInfo); @@ -99,13 +123,6 @@ public class ExperimentSurveyCreatorActivity extends AppCompatActivity { e.printStackTrace(); } - Button backHomeButton = findViewById(R.id.ExperimentSurveyCreatorBackHomeButton); - backHomeButton.setOnClickListener(new View.OnClickListener() { - public void onClick(View v) { - finish(); - } - }); - } @RequiresApi(api = Build.VERSION_CODES.KITKAT) diff --git a/app/src/main/java/com/yearthreeproject/xbframework/LoginActivity.java b/app/src/main/java/com/yearthreeproject/xbframework/LoginActivity.java index 2023f5c47d4b01f790dee54fdcae1f9d576f09d1..f8b66afd53c3f0a8730a5c79559408cb557b3d01 100644 --- a/app/src/main/java/com/yearthreeproject/xbframework/LoginActivity.java +++ b/app/src/main/java/com/yearthreeproject/xbframework/LoginActivity.java @@ -14,6 +14,12 @@ import java.util.Objects; public class LoginActivity extends AppCompatActivity { + @Override + public boolean onSupportNavigateUp() { + finish(); + return true; + } + @RequiresApi(api = Build.VERSION_CODES.KITKAT) @Override protected void onCreate(@Nullable Bundle savedInstanceState) { @@ -32,12 +38,5 @@ public class LoginActivity extends AppCompatActivity { //TODO: implement what happens on submitting login } }); - - Button backHomeButton = findViewById(R.id.LoginBackHomeButton); - backHomeButton.setOnClickListener(new View.OnClickListener() { - public void onClick(View v) { - finish(); - } - }); } } diff --git a/app/src/main/java/com/yearthreeproject/xbframework/MainActivity.java b/app/src/main/java/com/yearthreeproject/xbframework/MainActivity.java index af4626bf567fd91b5b5c0ae5ab8dfbf4c0af2a3c..836886908d79b6d05667dee0433971666f5f81dc 100644 --- a/app/src/main/java/com/yearthreeproject/xbframework/MainActivity.java +++ b/app/src/main/java/com/yearthreeproject/xbframework/MainActivity.java @@ -69,7 +69,7 @@ public class MainActivity extends AppCompatActivity { } for (int i = 0; i < localDataJson.getJSONObject("lockedExperiment").getJSONArray("Notification").length(); i++) { JSONObject notificationObject = localDataJson.getJSONObject("lockedExperiment").getJSONArray("Notification").getJSONObject(i); - ProjectMacros.cancelNotification(notificationObject.getString("Title"), notificationObject.getString("Message"), R.drawable.ic_launcher_foreground, "ALL_CHANNEL", MainActivity.this); + ProjectMacros.cancelNotification(notificationObject.getString("Title"), notificationObject.getString("Message"), R.raw.box_outline, "ALL_CHANNEL", MainActivity.this); } } catch (JSONException e) { e.printStackTrace(); @@ -249,14 +249,14 @@ public class MainActivity extends AppCompatActivity { d("dbg_timesNstuff", notificationObject.getString("Repeat").substring(0,2) + " hours /" + notificationObject.getString("Repeat").substring(3,5) + " minutes"); - ProjectMacros.createNotification(notificationObject.getString("Title"), notificationObject.getString("Message"), R.drawable.ic_launcher_foreground, "ALL_CHANNEL", MainActivity.this, start, repeat); + ProjectMacros.createNotification(notificationObject.getString("Title"), notificationObject.getString("Message"), R.raw.box_outline, "ALL_CHANNEL", MainActivity.this, start, repeat); } } else { d("dbg_checkNotifs", "not locked"); for(int i = 0; i < localDataJson.getJSONObject("lockedExperiment").getJSONArray("Notification").length(); i++){ JSONObject notificationObject = localDataJson.getJSONObject("lockedExperiment").getJSONArray("Notification").getJSONObject(i); - ProjectMacros.cancelNotification(notificationObject.getString("Title"), notificationObject.getString("Message"), R.drawable.ic_launcher_foreground, "ALL_CHANNEL", MainActivity.this); + ProjectMacros.cancelNotification(notificationObject.getString("Title"), notificationObject.getString("Message"), R.raw.box_outline, "ALL_CHANNEL", MainActivity.this); } } } catch (JSONException e) { diff --git a/app/src/main/java/com/yearthreeproject/xbframework/NewBox.java b/app/src/main/java/com/yearthreeproject/xbframework/NewBox.java index 55f1a8b552c2562d7e9967a055971dd9057ef6cc..9e44d6cd6a59b26755ca5ebf8e2f8cb698abcd1b 100644 --- a/app/src/main/java/com/yearthreeproject/xbframework/NewBox.java +++ b/app/src/main/java/com/yearthreeproject/xbframework/NewBox.java @@ -64,6 +64,12 @@ public class NewBox extends AppCompatActivity { Toast submitToast; + @Override + public boolean onSupportNavigateUp() { + finish(); + return true; + } + @RequiresApi(api = Build.VERSION_CODES.KITKAT) @Override protected void onCreate(@Nullable Bundle savedInstanceState) { @@ -74,19 +80,18 @@ public class NewBox extends AppCompatActivity { submitToast = new Toast(this); Toolbar toolbar = findViewById(R.id.toolbar); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { + toolbar.setNestedScrollingEnabled(false); + } setSupportActionBar(toolbar); Objects.requireNonNull(getSupportActionBar()).setDisplayShowHomeEnabled(true); getSupportActionBar().setLogo(R.mipmap.ic_launcher); getSupportActionBar().setDisplayUseLogoEnabled(true); + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + getSupportActionBar().setDisplayShowHomeEnabled(true); + uploadImageButton = findViewById(R.id.UploadImageButton); - Button backButton = findViewById(R.id.NewBoxBackButton); - backButton.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - finish(); - } - }); final Spinner inFiveSpinner = findViewById(R.id.MEECSSpinner); ArrayAdapter<CharSequence> inFiveAdapter = ArrayAdapter.createFromResource(this, R.array.meecs, android.R.layout.simple_spinner_dropdown_item); @@ -130,8 +135,8 @@ public class NewBox extends AppCompatActivity { } }); - Button submitButton = findViewById(R.id.NewBoxSubmitButton); - submitButton.setOnClickListener(new View.OnClickListener() { + Button submit = findViewById(R.id.NewBoxSubmitButton); + submit.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { submitNewBoxFunction(); diff --git a/app/src/main/java/com/yearthreeproject/xbframework/ProgressActivity.java b/app/src/main/java/com/yearthreeproject/xbframework/ProgressActivity.java index 0fa723ce62742486712de2b0c926c127542963d2..e82dabdaf097b21c44903ba7a42cc468e3a2466c 100644 --- a/app/src/main/java/com/yearthreeproject/xbframework/ProgressActivity.java +++ b/app/src/main/java/com/yearthreeproject/xbframework/ProgressActivity.java @@ -1,10 +1,10 @@ package com.yearthreeproject.xbframework; +import android.graphics.Color; import android.os.Build; import android.os.Bundle; +import android.text.Html; import android.view.View; -import android.widget.Button; -import android.widget.CalendarView; import android.widget.LinearLayout; import android.widget.TextView; @@ -13,12 +13,32 @@ import androidx.annotation.RequiresApi; import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.widget.Toolbar; +import com.github.sundeepk.compactcalendarview.CompactCalendarView; +import com.github.sundeepk.compactcalendarview.domain.Event; +import com.google.android.material.tabs.TabLayout; +import com.jjoe64.graphview.GraphView; +import com.jjoe64.graphview.helper.DateAsXAxisLabelFormatter; +import com.jjoe64.graphview.series.DataPoint; +import com.jjoe64.graphview.series.LineGraphSeries; +import com.jjoe64.graphview.series.PointsGraphSeries; + +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; +import java.util.List; +import java.util.Locale; import java.util.Objects; import static android.util.Log.d; public class ProgressActivity extends AppCompatActivity { + @Override + public boolean onSupportNavigateUp() { + finish(); + return true; + } + @RequiresApi(api = Build.VERSION_CODES.KITKAT) @Override protected void onCreate(@Nullable Bundle savedInstanceState) { @@ -26,35 +46,168 @@ public class ProgressActivity extends AppCompatActivity { setContentView(R.layout.activity_progress); - // TODO: implement any of this page / class - Toolbar toolbar = findViewById(R.id.toolbar); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { + toolbar.setNestedScrollingEnabled(false); + } + //toolbar.setExpanded(false); + toolbar.setActivated(false); setSupportActionBar(toolbar); Objects.requireNonNull(getSupportActionBar()).setDisplayShowHomeEnabled(true); getSupportActionBar().setLogo(R.mipmap.ic_launcher); getSupportActionBar().setDisplayUseLogoEnabled(true); + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + getSupportActionBar().setDisplayShowHomeEnabled(true); + + toolbar.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + findViewById(R.id.progressScrollObject).scrollTo(0,0); + } + }); + + final LinearLayout mainBody = findViewById(R.id.progressScrollLinLay); - TextView onlyTextView = findViewById(R.id.ProgressPlaceholderTextView); - onlyTextView.setText(ProjectMacros.readFile(ProgressActivity.this, "localUserData.json")); + final LinearLayout journalView = findViewById(R.id.progressJournal); - LinearLayout mainBody = (LinearLayout) onlyTextView.getParent(); + final LinearLayout calendarView = findViewById(R.id.calendarLinLay); + + generateCalendar(); + generateGraphs(); + + mainBody.removeView(journalView); + + + TabLayout tabLay = findViewById(R.id.tabs); + tabLay.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { + @Override + public void onTabSelected(TabLayout.Tab tab) { + switch(tab.getPosition()){ + case 0: + if(mainBody.getChildAt(0) == journalView) mainBody.removeView(journalView); + if(mainBody.getChildAt(0) != calendarView) mainBody.addView(calendarView); + findViewById(R.id.progressScrollObject).scrollTo(0,0); + break; + case 1: + if(mainBody.getChildAt(0) == calendarView) mainBody.removeView(calendarView); + if(mainBody.getChildAt(0) != journalView) mainBody.addView(journalView); + findViewById(R.id.progressScrollObject).scrollTo(0,0); + break; + default: + d("dbg_error", "no correct tab selected"); + } + } - CalendarView test = new CalendarView(this); - mainBody.addView(test); - test.setOnDateChangeListener(new CalendarView.OnDateChangeListener() { @Override - public void onSelectedDayChange(CalendarView CalendarView, int year, int month, int dayOfMonth) { - String date = year + "/" + (int)(month+1) + "/"+ dayOfMonth ; - d("dbg_calendar", "onSelectedDayChange: yyyy/mm/dd:" + date); + public void onTabUnselected(TabLayout.Tab tab) { + + } + + @Override + public void onTabReselected(TabLayout.Tab tab) { + } }); + } - Button backHomeButton = findViewById(R.id.ProgressBackHomButton); - backHomeButton.setOnClickListener(new View.OnClickListener() { - public void onClick(View v) { - finish(); + private void generateCalendar(){ + + + final CompactCalendarView compactCalendarView = (CompactCalendarView) findViewById(R.id.compactcalendar_view); + // Set first day of week to Monday, defaults to Monday so calling setFirstDayOfWeek is not necessary + // Use constants provided by Java Calendar class + compactCalendarView.setFirstDayOfWeek(Calendar.MONDAY); + final SimpleDateFormat dateFormatForMonth = new SimpleDateFormat("MMM - yyyy", Locale.getDefault()); + final String[] Month = {dateFormatForMonth.format(compactCalendarView.getFirstDayOfCurrentMonth())}; + final TextView monthTextView = new TextView(this); + monthTextView.setTextColor(getColor(R.color.colorPrimary)); + monthTextView.setTextSize(35); + monthTextView.setText(Month[0]); + calendarView.addView(monthTextView, 0); + + // Add event 1 on Sun, 07 Jun 2015 18:20:51 GMT + Event ev1 = new Event(Color.GREEN, 1583754563000L, "Some extra data that I want to store."); + compactCalendarView.addEvent(ev1); + + // Added event 2 GMT: Sun, 07 Jun 2015 19:10:51 GMT + Event ev2 = new Event(Color.RED, 1583581763000L); + compactCalendarView.addEvent(ev2); + + // Query for events on Sun, 07 Jun 2015 GMT. + // Time is not relevant when querying for events, since events are returned by day. + // So you can pass in any arbitary DateTime and you will receive all events for that day. + List<Event> events = compactCalendarView.getEvents(1583754563000L); // can also take a Date object + + // events has size 2 with the 2 events inserted previously + d("dbg", "Events: " + events); + + // define a listener to receive callbacks when certain events happen. + compactCalendarView.setListener(new CompactCalendarView.CompactCalendarViewListener() { + @Override + public void onDayClick(Date dateClicked) { + List<Event> events = compactCalendarView.getEvents(dateClicked); + d("dbg", "Day was clicked: " + dateClicked + " with events " + events); + } + + @Override + public void onMonthScroll(Date firstDayOfNewMonth) { + Month[0] = dateFormatForMonth.format(compactCalendarView.getFirstDayOfCurrentMonth()); + monthTextView.setText(Month[0]); + d("dbg", "Month was scrolled to: " + firstDayOfNewMonth); } }); + } + + private void generateGraphs(){ + final LinearLayout calendarView = findViewById(R.id.calendarLinLay); + calendarView.addView(ProjectMacros.newHR(this, 10, "#587B7F")); + + TextView graphTitle = new TextView(this); + graphTitle.setTextColor(getColor(R.color.colorPrimary)); + graphTitle.setTextSize(30); + graphTitle.setText(Html.fromHtml("Current Experiment Progress")); + calendarView.addView(graphTitle); + + GraphView currentExperiment = new GraphView(this); + currentExperiment.setMinimumHeight(300); + calendarView.addView(currentExperiment); + + calendarView.addView(ProjectMacros.newHR(this, 4, "#587B7F")); + + final Calendar calendar = Calendar.getInstance(); + Date d1 = calendar.getTime(); + calendar.add(Calendar.DATE, -1); + Date d2 = calendar.getTime(); + calendar.add(Calendar.DATE, -2); + Date d3 = calendar.getTime(); + + calendar.add(Calendar.DATE, -10); + Date d4 = calendar.getTime(); + + try { + LineGraphSeries <DataPoint> series1 = new LineGraphSeries< >(new DataPoint[] { + new DataPoint(d3, 1), + new DataPoint(d2, 5), + new DataPoint(d1, 3) + }); + currentExperiment.addSeries(series1); + PointsGraphSeries<DataPoint> series2 = new PointsGraphSeries< >(new DataPoint[] { + new DataPoint(d3, 1), + new DataPoint(d2, 5), + new DataPoint(d1, 3) + }); + currentExperiment.addSeries(series2); + } catch (IllegalArgumentException e) { + e.printStackTrace(); + } + + currentExperiment.getGridLabelRenderer().setLabelFormatter(new DateAsXAxisLabelFormatter(this)); + currentExperiment.getGridLabelRenderer().setNumHorizontalLabels(3); + currentExperiment.getViewport().setMinX(d4.getTime()); + currentExperiment.getViewport().setMaxX(d1.getTime()); + currentExperiment.getViewport().setXAxisBoundsManual(false); + currentExperiment.getGridLabelRenderer().setHumanRounding(false); + currentExperiment.getViewport().setScalableY(true); } -} +} \ No newline at end of file diff --git a/app/src/main/java/com/yearthreeproject/xbframework/ShopActivity.java b/app/src/main/java/com/yearthreeproject/xbframework/ShopActivity.java index 044546998cec1bf58dcd7c6994aa446e2b182923..d5e9e4d67ae8e8b59220bafe859f90c985f83774 100644 --- a/app/src/main/java/com/yearthreeproject/xbframework/ShopActivity.java +++ b/app/src/main/java/com/yearthreeproject/xbframework/ShopActivity.java @@ -6,7 +6,6 @@ import android.os.Build; import android.os.Bundle; import android.view.Gravity; import android.view.View; -import android.widget.Button; import android.widget.GridLayout; import android.widget.ImageView; import android.widget.RelativeLayout; @@ -38,6 +37,12 @@ public class ShopActivity extends AppCompatActivity { private Toast attemptToBuyPopup; + @Override + public boolean onSupportNavigateUp() { + finish(); + return true; + } + @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) @SuppressLint("ResourceType") @Override @@ -49,10 +54,16 @@ public class ShopActivity extends AppCompatActivity { // TODO: remove the dependency on the card-view and make the view yourself with relative layouts Toolbar toolbar = findViewById(R.id.toolbar); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { + toolbar.setNestedScrollingEnabled(false); + } setSupportActionBar(toolbar); Objects.requireNonNull(getSupportActionBar()).setDisplayShowHomeEnabled(true); getSupportActionBar().setLogo(R.mipmap.ic_launcher); getSupportActionBar().setDisplayUseLogoEnabled(true); + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + getSupportActionBar().setDisplayShowHomeEnabled(true); + GridLayout shopLayout = findViewById(R.id.ShopContentLayout); @@ -170,13 +181,5 @@ public class ShopActivity extends AppCompatActivity { } catch (IOException e) { e.printStackTrace(); } - - - Button backHomeButton = findViewById(R.id.ShopBackHomeButton); - backHomeButton.setOnClickListener(new View.OnClickListener() { - public void onClick(View v) { - finish(); - } - }); } } diff --git a/app/src/main/java/com/yearthreeproject/xbframework/SurveyResponseActivity.java b/app/src/main/java/com/yearthreeproject/xbframework/SurveyResponseActivity.java index 5420d55983adb71a27249da75c3fea54394feb89..7d16d895f955e3f6220415479e07d8ff2c9cbf0b 100644 --- a/app/src/main/java/com/yearthreeproject/xbframework/SurveyResponseActivity.java +++ b/app/src/main/java/com/yearthreeproject/xbframework/SurveyResponseActivity.java @@ -7,7 +7,6 @@ import android.util.DisplayMetrics; import android.view.Gravity; import android.view.View; import android.view.ViewGroup; -import android.widget.Button; import android.widget.LinearLayout; import android.widget.RadioButton; import android.widget.RelativeLayout; @@ -36,6 +35,12 @@ public class SurveyResponseActivity extends AppCompatActivity { private final List<Integer> responses = new ArrayList<>(); private Toast submitToast; + @Override + public boolean onSupportNavigateUp() { + finish(); + return true; + } + @RequiresApi(api = Build.VERSION_CODES.KITKAT) @Override protected void onCreate(@Nullable Bundle savedInstanceState) { @@ -45,10 +50,16 @@ public class SurveyResponseActivity extends AppCompatActivity { submitToast = new Toast(this); Toolbar toolbar = findViewById(R.id.toolbar); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { + toolbar.setNestedScrollingEnabled(false); + } setSupportActionBar(toolbar); Objects.requireNonNull(getSupportActionBar()).setDisplayShowHomeEnabled(true); getSupportActionBar().setLogo(R.mipmap.ic_launcher); getSupportActionBar().setDisplayUseLogoEnabled(true); + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + getSupportActionBar().setDisplayShowHomeEnabled(true); + LinearLayout surveyScrollView = findViewById(R.id.SurveyScrollView); @@ -74,25 +85,13 @@ public class SurveyResponseActivity extends AppCompatActivity { e.printStackTrace(); } - - Button backHomeButton = findViewById(R.id.SurveyResponseBackButton); - backHomeButton.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - finish(); - } - }); - - LinearLayout parentBackHome = (LinearLayout) backHomeButton.getParent(); - Button submitButton = new Button(this); - submitButton.setText(Html.fromHtml("Submit!")); - parentBackHome.addView(submitButton); - submitButton.setOnClickListener(new View.OnClickListener() { + //FloatingActionButton fab = findViewById; + /*fab.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { completeSubmission(); } - }); + });*/ } private void completeSubmission() { diff --git a/app/src/main/java/com/yearthreeproject/xbframework/TestingActivity.java b/app/src/main/java/com/yearthreeproject/xbframework/TestingActivity.java index 3ce2fed8aafcccafdcfb733c6211150e266b93ed..e4bddab4490f910c7960c8ea4dfe70de88d6b49f 100644 --- a/app/src/main/java/com/yearthreeproject/xbframework/TestingActivity.java +++ b/app/src/main/java/com/yearthreeproject/xbframework/TestingActivity.java @@ -3,7 +3,6 @@ package com.yearthreeproject.xbframework; import android.app.NotificationManager; import android.content.Context; import android.content.Intent; -import android.icu.text.SimpleDateFormat; import android.os.Build; import android.os.Bundle; import android.text.Html; @@ -20,6 +19,7 @@ import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; +import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Objects; @@ -27,6 +27,12 @@ import static android.util.Log.d; public class TestingActivity extends AppCompatActivity { + @Override + public boolean onSupportNavigateUp() { + finish(); + return true; + } + @RequiresApi(api = Build.VERSION_CODES.KITKAT) @Override protected void onCreate(@Nullable Bundle savedInstanceState) { @@ -38,8 +44,11 @@ public class TestingActivity extends AppCompatActivity { Objects.requireNonNull(getSupportActionBar()).setDisplayShowHomeEnabled(true); getSupportActionBar().setLogo(R.mipmap.ic_launcher); getSupportActionBar().setDisplayUseLogoEnabled(true); + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + getSupportActionBar().setDisplayShowHomeEnabled(true); Button testButton = findViewById(R.id.testingRunButton); + testButton.setText(Html.fromHtml("Create filled Box")); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { runOnLoad(); @@ -48,26 +57,83 @@ public class TestingActivity extends AppCompatActivity { testButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - runOnButton(); + Intent runIntent = new Intent(TestingActivity.this, ExperimentSurveyCreatorActivity.class); + + JSONObject box = null; + try { + box = new JSONObject(); + box.put("Name", "SleepBoxV2"); + box.put("Group", "Sleep"); + box.put("Blurb", "A less feature-full SleepBox"); + box.put("Locked", false); + box.put("Image", JSONObject.NULL); + box.put("Description", "Does not do anything close to SleepBox, just is my method of testing!"); + box.put("WarningText", "Once an experiment is chosen, will be locked into that experiment for 5 days."); + + JSONArray experimentGroups = new JSONArray(); + JSONObject experimentGroupInfo = new JSONObject(); + experimentGroupInfo.put("Group", "Light"); + JSONArray groupExperimentList = new JSONArray(); + JSONObject experiment = new JSONObject(); + + experiment.put("Title", "Sunlight"); + experiment.put("Instructions", "Get 30 to 45 minutes of sunlight a day. Make sure your room captures sunlight."); + experiment.put("Description", "This will boost circadian rhythm."); + + groupExperimentList.put(experiment); + experimentGroupInfo.put("Options", groupExperimentList); + experimentGroups.put(experimentGroupInfo); + box.put("Experiments", experimentGroups); + } catch (JSONException e) { + e.printStackTrace(); + } + + + runIntent.putExtra("JSON", box.toString()); + runIntent.putExtra("ExperimentIndex", 0); + runIntent.putExtra("GroupIndex", 0); + startActivity(runIntent); } }); Button secondTestButton = new Button(this); LinearLayout buttonHolder = (LinearLayout) testButton.getParent(); - secondTestButton.setText(Html.fromHtml("Cancel")); + secondTestButton.setText(Html.fromHtml("Cancel Notification")); secondTestButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - ProjectMacros.cancelNotification("Test Notification", "This is a test notification for the notification system!", R.drawable.ic_launcher_background, "ALL_CHANNEL", TestingActivity.this); + ProjectMacros.cancelNotification("Test Notification", "This is a test notification for the notification system!", R.raw.box_outline, "ALL_CHANNEL", TestingActivity.this); } }); buttonHolder.addView(secondTestButton); - Button backHomeButton = findViewById(R.id.TestingBackHomButton); - backHomeButton.setOnClickListener(new View.OnClickListener() { + Button thirdTestButton = new Button(this); + buttonHolder.addView(thirdTestButton); + thirdTestButton.setText(Html.fromHtml("Create Notification")); + thirdTestButton.setOnClickListener(new View.OnClickListener() { + @Override public void onClick(View v) { - finish(); + Calendar timeNowOffset = Calendar.getInstance(); + Calendar repeatTime = Calendar.getInstance(); + SimpleDateFormat simpleDateFormat = null; + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { + simpleDateFormat = new SimpleDateFormat("kkmmss"); + String timeNow = simpleDateFormat.format(timeNowOffset.getTime()); + timeNowOffset.set(Calendar.HOUR_OF_DAY, Integer.parseInt(timeNow.substring(0,2))); + timeNowOffset.set(Calendar.MINUTE, Integer.parseInt(timeNow.substring(2,4))+1); + timeNowOffset.set(Calendar.SECOND, 00); + repeatTime.set(Calendar.HOUR_OF_DAY, 00); + repeatTime.set(Calendar.MINUTE, 01); + repeatTime.set(Calendar.SECOND, 00); + } + + NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + d("dbg_notificationChnls", String.valueOf(notificationManager.getNotificationChannels())); + } + + ProjectMacros.createNotification("Test Notification", "This is a test notification for the notification system!", R.raw.box_outline, "ALL_CHANNEL", TestingActivity.this, timeNowOffset, repeatTime); } }); } @@ -77,70 +143,4 @@ public class TestingActivity extends AppCompatActivity { // Run immediate code in here // Try to figure out alarm manager here (spam you with a notification every minute) } - - @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) - private void runOnButton() { - // Code to run on button press - Intent runIntent = new Intent(this, ExperimentSurveyCreatorActivity.class); - - JSONObject box = null; - try { - box = new JSONObject(); - box.put("Name", "SleepBoxV2"); - box.put("Group", "Sleep"); - box.put("Blurb", "A less feature-full SleepBox"); - box.put("Locked", false); - box.put("Image", JSONObject.NULL); - box.put("Description", "Does not do anything close to SleepBox, just is my method of testing!"); - box.put("WarningText", "Once an experiment is chosen, will be locked into that experiment for 5 days."); - - JSONArray experimentGroups = new JSONArray(); - JSONObject experimentGroupInfo = new JSONObject(); - experimentGroupInfo.put("Group", "Light"); - JSONArray groupExperimentList = new JSONArray(); - JSONObject experiment = new JSONObject(); - - experiment.put("Title", "Sunlight"); - experiment.put("Instructions", "Get 30 to 45 minutes of sunlight a day. Make sure your room captures sunlight."); - experiment.put("Description", "This will boost circadian rhythm."); - - groupExperimentList.put(experiment); - experimentGroupInfo.put("Options", groupExperimentList); - experimentGroups.put(experimentGroupInfo); - box.put("Experiments", experimentGroups); - } catch (JSONException e) { - e.printStackTrace(); - } - - - runIntent.putExtra("JSON", box.toString()); - runIntent.putExtra("ExperimentIndex", 0); - runIntent.putExtra("GroupIndex", 0); - //startActivity(runIntent); - - // ==================================================== - - Calendar timeNowOffset = Calendar.getInstance(); - Calendar repeatTime = Calendar.getInstance(); - SimpleDateFormat simpleDateFormat = null; - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { - simpleDateFormat = new SimpleDateFormat("kkmmss"); - String timeNow = simpleDateFormat.format(timeNowOffset.getTime()); - timeNowOffset.set(Calendar.HOUR_OF_DAY, Integer.parseInt(timeNow.substring(0,2))); - timeNowOffset.set(Calendar.MINUTE, Integer.parseInt(timeNow.substring(2,4))+1); - timeNowOffset.set(Calendar.SECOND, 00); - repeatTime.set(Calendar.HOUR_OF_DAY, 00); - repeatTime.set(Calendar.MINUTE, 01); - repeatTime.set(Calendar.SECOND, 00); - } - - NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - d("dbg_notificationChnls", String.valueOf(notificationManager.getNotificationChannels())); - } - - ProjectMacros.createNotification("Test Notification", "This is a test notification for the notification system!", R.drawable.ic_launcher_background, "ALL_CHANNEL", TestingActivity.this, timeNowOffset, repeatTime); - } - - } diff --git a/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/app/src/main/res/drawable-v24/ic_launcher_foreground.xml deleted file mode 100644 index 1f6bb290603d7caa16c5fb6f61bbfdc750622f5c..0000000000000000000000000000000000000000 --- a/app/src/main/res/drawable-v24/ic_launcher_foreground.xml +++ /dev/null @@ -1,34 +0,0 @@ -<vector xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:aapt="http://schemas.android.com/aapt" - android:width="108dp" - android:height="108dp" - android:viewportWidth="108" - android:viewportHeight="108"> - <path - android:fillType="evenOdd" - android:pathData="M32,64C32,64 38.39,52.99 44.13,50.95C51.37,48.37 70.14,49.57 70.14,49.57L108.26,87.69L108,109.01L75.97,107.97L32,64Z" - android:strokeWidth="1" - android:strokeColor="#00000000"> - <aapt:attr name="android:fillColor"> - <gradient - android:endX="78.5885" - android:endY="90.9159" - android:startX="48.7653" - android:startY="61.0927" - android:type="linear"> - <item - android:color="#44000000" - android:offset="0.0" /> - <item - android:color="#00000000" - android:offset="1.0" /> - </gradient> - </aapt:attr> - </path> - <path - android:fillColor="#FFFFFF" - android:fillType="nonZero" - android:pathData="M66.94,46.02L66.94,46.02C72.44,50.07 76,56.61 76,64L32,64C32,56.61 35.56,50.11 40.98,46.06L36.18,41.19C35.45,40.45 35.45,39.3 36.18,38.56C36.91,37.81 38.05,37.81 38.78,38.56L44.25,44.05C47.18,42.57 50.48,41.71 54,41.71C57.48,41.71 60.78,42.57 63.68,44.05L69.11,38.56C69.84,37.81 70.98,37.81 71.71,38.56C72.44,39.3 72.44,40.45 71.71,41.19L66.94,46.02ZM62.94,56.92C64.08,56.92 65,56.01 65,54.88C65,53.76 64.08,52.85 62.94,52.85C61.8,52.85 60.88,53.76 60.88,54.88C60.88,56.01 61.8,56.92 62.94,56.92ZM45.06,56.92C46.2,56.92 47.13,56.01 47.13,54.88C47.13,53.76 46.2,52.85 45.06,52.85C43.92,52.85 43,53.76 43,54.88C43,56.01 43.92,56.92 45.06,56.92Z" - android:strokeWidth="1" - android:strokeColor="#00000000" /> -</vector> diff --git a/app/src/main/res/drawable/ic_action_right.xml b/app/src/main/res/drawable/ic_action_right.xml new file mode 100644 index 0000000000000000000000000000000000000000..00bd95a63b65b1bb9f57f2e9fd077b3c3ba92e31 --- /dev/null +++ b/app/src/main/res/drawable/ic_action_right.xml @@ -0,0 +1,14 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="250dp" + android:height="250dp" + android:viewportWidth="16" + android:viewportHeight="16" + android:tint="#FFFFFF" + android:alpha="0.8"> + <group android:translateX="-4" + android:translateY="-4"> + <path + android:fillColor="#FF000000" + android:pathData="M12,4l-1.41,1.41L16.17,11H4v2h12.17l-5.58,5.59L12,20l8,-8z"/> + </group> +</vector> diff --git a/app/src/main/res/layout/activity_progress.xml b/app/src/main/res/layout/activity_progress.xml index 37541723a607ffe584c5bbaccb04d53f97c26aca..06dcbee9d5ad92c41d6cbb0d01af80c5fe690a55 100644 --- a/app/src/main/res/layout/activity_progress.xml +++ b/app/src/main/res/layout/activity_progress.xml @@ -8,6 +8,7 @@ tools:context=".ProgressActivity"> <com.google.android.material.appbar.AppBarLayout + android:id="@+id/appbarId" android:layout_width="match_parent" android:layout_height="wrap_content" android:theme="@style/AppTheme.AppBarOverlay"> @@ -21,6 +22,27 @@ android:theme="@style/ThemeOverlay.AppCompat.ActionBar" app:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> + <com.google.android.material.tabs.TabLayout + android:id="@+id/tabs" + android:layout_width="match_parent" + android:layout_height="wrap_content" + app:tabGravity="fill" + app:tabMode="fixed" + app:layout_scrollFlags="exitUntilCollapsed"> + + <com.google.android.material.tabs.TabItem + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="Graph" /> + + <com.google.android.material.tabs.TabItem + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="Journal" /> + </com.google.android.material.tabs.TabLayout> + + + </com.google.android.material.appbar.AppBarLayout> <include layout="@layout/content_progress" /> diff --git a/app/src/main/res/layout/content_about.xml b/app/src/main/res/layout/content_about.xml index 6c0917709c1fd0baa9e7e562252520ecc2329a42..f85aae59d47f970b490c3ac2675ee45d1ac2a0da 100644 --- a/app/src/main/res/layout/content_about.xml +++ b/app/src/main/res/layout/content_about.xml @@ -26,16 +26,10 @@ android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" + android:textColor="@color/colorPrimary" android:text="@string/about_about_para" android:textSize="22sp" /> </LinearLayout> </ScrollView> - <Button - android:id="@+id/AboutBackHomeButton" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_weight="0" - android:text="@string/about_back_home_button" /> - </LinearLayout> diff --git a/app/src/main/res/layout/content_boxes.xml b/app/src/main/res/layout/content_boxes.xml index f528af98449f8cec369dd5d62a286941c9b3d95e..756a5d95ab007b36eca01c19b4bb3905318bd38b 100644 --- a/app/src/main/res/layout/content_boxes.xml +++ b/app/src/main/res/layout/content_boxes.xml @@ -24,10 +24,4 @@ android:weightSum="1" /> </ScrollView> - <Button - android:id="@+id/BoxesBackHomeButton" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:text="@string/about_back_home_button" /> - </LinearLayout> diff --git a/app/src/main/res/layout/content_experiment.xml b/app/src/main/res/layout/content_experiment.xml index 757f675921fcac3215657602504183d1f13c8f32..95e10c32314be771a0d72ca0fa52799827f5748d 100644 --- a/app/src/main/res/layout/content_experiment.xml +++ b/app/src/main/res/layout/content_experiment.xml @@ -24,29 +24,14 @@ </ScrollView> - <LinearLayout + <com.google.android.material.floatingactionbutton.FloatingActionButton + android:id="@+id/experimentFAB" android:layout_width="match_parent" android:layout_height="wrap_content" + android:layout_gravity="bottom|end" android:layout_weight="0" - android:orientation="horizontal" > - - <Button - android:id="@+id/ExperimentBackHomeButton" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:layout_weight="1" - style="?android:attr/buttonBarButtonStyle" - android:text="@string/about_back_home_button" - tools:ignore="NestedWeights" /> - - <Button - android:id="@+id/ExperimentSubmitButton" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:layout_weight="1" - style="?android:attr/buttonBarButtonStyle" - android:text="@string/experiment_submit" /> - - </LinearLayout> + app:backgroundTint="@color/colorPrimary" + app:fabSize="normal" + app:srcCompat="@drawable/ic_action_right" /> </LinearLayout> diff --git a/app/src/main/res/layout/content_experiment_survey_creator.xml b/app/src/main/res/layout/content_experiment_survey_creator.xml index b6ad6becae06fed266343e6f5713c3c0b11eb0e8..83d178bc0d70fe477c63ccab1eba97c0c41fcf55 100644 --- a/app/src/main/res/layout/content_experiment_survey_creator.xml +++ b/app/src/main/res/layout/content_experiment_survey_creator.xml @@ -24,29 +24,14 @@ </ScrollView> - <LinearLayout + <com.google.android.material.floatingactionbutton.FloatingActionButton + android:id="@+id/experimentSurveyCreatorFAB" android:layout_width="match_parent" android:layout_height="wrap_content" + android:layout_gravity="bottom|end" android:layout_weight="0" - android:orientation="horizontal"> - - <Button - android:id="@+id/ExperimentSurveyCreatorBackHomeButton" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:layout_weight="1" - style="?android:attr/buttonBarButtonStyle" - android:text="@string/about_back_home_button" - tools:ignore="NestedWeights" /> - - <Button - android:id="@+id/ExperimentSurveyCreatorSubmitButton" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:layout_weight="1" - style="?android:attr/buttonBarButtonStyle" - android:text="@string/next" /> - - </LinearLayout> + app:backgroundTint="@color/colorPrimary" + app:fabSize="normal" + app:srcCompat="@drawable/ic_action_right" /> </LinearLayout> diff --git a/app/src/main/res/layout/content_login.xml b/app/src/main/res/layout/content_login.xml index 5af95f18284a20b1fcf47e5baa1eb0168cbcb4c6..597dad6b712b57fa00eedeeaace4c12af41f634e 100644 --- a/app/src/main/res/layout/content_login.xml +++ b/app/src/main/res/layout/content_login.xml @@ -69,9 +69,4 @@ android:text="@string/login_login_button" /> </LinearLayout> - <Button - android:id="@+id/LoginBackHomeButton" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:text="@string/about_back_home_button" /> </LinearLayout> diff --git a/app/src/main/res/layout/content_main.xml b/app/src/main/res/layout/content_main.xml index a021bf2a2e38902f1830c6c278903e0c497cbf34..6ee5ef90e50b082fe16fbd64e1ff1a18dadaa05b 100644 --- a/app/src/main/res/layout/content_main.xml +++ b/app/src/main/res/layout/content_main.xml @@ -16,6 +16,8 @@ android:id="@+id/HomeHomeButton" android:layout_width="match_parent" android:layout_height="wrap_content" + android:backgroundTint="@color/calendarBackground" + android:textColor="@color/colorPrimary" android:layout_weight="1" android:text="@string/main_home" /> @@ -23,6 +25,8 @@ android:id="@+id/HomeLoginButton" android:layout_width="match_parent" android:layout_height="wrap_content" + android:backgroundTint="@color/calendarBackground" + android:textColor="@color/colorPrimary" android:layout_weight="1" android:text="@string/main_login" /> @@ -30,6 +34,8 @@ android:id="@+id/HomeSurveyButton" android:layout_width="match_parent" android:layout_height="wrap_content" + android:backgroundTint="@color/calendarBackground" + android:textColor="@color/colorPrimary" android:layout_weight="1" android:text="@string/HomeSurvey" /> @@ -37,6 +43,8 @@ android:id="@+id/HomeShopButton" android:layout_width="match_parent" android:layout_height="wrap_content" + android:backgroundTint="@color/calendarBackground" + android:textColor="@color/colorPrimary" android:layout_weight="1" android:text="@string/main_shop" /> @@ -44,6 +52,8 @@ android:id="@+id/HomeExperimentsButton" android:layout_width="match_parent" android:layout_height="wrap_content" + android:backgroundTint="@color/calendarBackground" + android:textColor="@color/colorPrimary" android:layout_weight="1" android:text="@string/main_experiments" /> @@ -51,6 +61,8 @@ android:id="@+id/HomeProgressButton" android:layout_width="match_parent" android:layout_height="wrap_content" + android:backgroundTint="@color/calendarBackground" + android:textColor="@color/colorPrimary" android:layout_weight="1" android:text="@string/main_progress" /> @@ -58,6 +70,8 @@ android:id="@+id/HomeAboutButton" android:layout_width="match_parent" android:layout_height="wrap_content" + android:backgroundTint="@color/calendarBackground" + android:textColor="@color/colorPrimary" android:layout_weight="1" android:text="@string/main_about" /> </LinearLayout> diff --git a/app/src/main/res/layout/content_new_box.xml b/app/src/main/res/layout/content_new_box.xml index cfe6842db38ac83fa34a39f4f6152ddc3f32b25e..e3179adecd3506562199c45632439174e44f6d1b 100644 --- a/app/src/main/res/layout/content_new_box.xml +++ b/app/src/main/res/layout/content_new_box.xml @@ -179,15 +179,6 @@ android:layout_weight="0" android:orientation="horizontal"> - <Button - android:id="@+id/NewBoxBackButton" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_weight="1" - style="?android:attr/buttonBarButtonStyle" - android:text="@string/NewBoxBackButton" - tools:ignore="NestedWeights" /> - <Button android:id="@+id/NewBoxSubmitButton" android:layout_width="match_parent" diff --git a/app/src/main/res/layout/content_progress.xml b/app/src/main/res/layout/content_progress.xml index 01b50d87153aafec9d82010802783ceaa744bc36..1ad3c4217d60ea04706583d8db8ebb3700eac3a2 100644 --- a/app/src/main/res/layout/content_progress.xml +++ b/app/src/main/res/layout/content_progress.xml @@ -1,37 +1,77 @@ <?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" +<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" + xmlns:app="http://schemas.android.com/apk/res-auto" + android:layout_width="match_parent" android:layout_height="match_parent" - android:layout_margin="16dp" - android:layout_marginTop="32dp" - android:orientation="vertical" - app:layout_behavior="@string/appbar_scrolling_view_behavior" tools:context=".ProgressActivity" tools:showIn="@layout/activity_progress"> - <ScrollView + <androidx.core.widget.NestedScrollView android:layout_width="match_parent" android:layout_height="match_parent" - android:layout_weight="1"> + + app:layout_behavior="com.google.android.material.appbar.AppBarLayout$ScrollingViewBehavior"> <LinearLayout android:layout_width="match_parent" - android:layout_height="wrap_content" - android:orientation="vertical"> + android:layout_height="match_parent" + android:layout_margin="16dp" + android:layout_marginTop="32dp" + android:orientation="vertical" + app:layout_behavior="@string/appbar_scrolling_view_behavior" + tools:context=".ProgressActivity" + tools:showIn="@layout/activity_progress"> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="horizontal"/> - <TextView - android:id="@+id/ProgressPlaceholderTextView" + <ScrollView + android:id="@+id/progressScrollObject" android:layout_width="match_parent" - android:layout_height="wrap_content" /> + android:layout_height="match_parent" + android:layout_weight="1"> + + <LinearLayout + android:id="@+id/progressScrollLinLay" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="vertical"> + <LinearLayout + android:id="@+id/calendarLinLay" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="vertical"> + + <com.github.sundeepk.compactcalendarview.CompactCalendarView xmlns:app="http://schemas.android.com/apk/res-auto" + android:id="@+id/compactcalendar_view" + android:layout_width="fill_parent" + android:paddingRight="10dp" + android:paddingLeft="10dp" + android:layout_height="250dp" + app:compactCalendarTargetHeight="250dp" + app:compactCalendarTextSize="12sp" + app:compactCalendarBackgroundColor="@color/calendarBackground" + app:compactCalendarTextColor="@color/colorPrimaryDark" + app:compactCalendarCurrentSelectedDayBackgroundColor="@color/colorPrimary" + app:compactCalendarCurrentDayBackgroundColor="@color/colorPrimary" + app:compactCalendarMultiEventIndicatorColor="@color/colorAccent" /> + </LinearLayout> + + <LinearLayout + android:id="@+id/progressJournal" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="vertical"> + + </LinearLayout> + + </LinearLayout> + </ScrollView> </LinearLayout> - </ScrollView> + </androidx.core.widget.NestedScrollView> - <Button - android:id="@+id/ProgressBackHomButton" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_weight="0" - android:text="@string/about_back_home_button" /> -</LinearLayout> +</androidx.coordinatorlayout.widget.CoordinatorLayout> diff --git a/app/src/main/res/layout/content_shop.xml b/app/src/main/res/layout/content_shop.xml index d49620be619429f2a6b2b664af313663e8b336b8..cf01f9120eb565a2d56eb3f5b7369b4d9b0ed5e0 100644 --- a/app/src/main/res/layout/content_shop.xml +++ b/app/src/main/res/layout/content_shop.xml @@ -26,11 +26,4 @@ /> </ScrollView> - <Button - android:id="@+id/ShopBackHomeButton" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_weight="0" - android:text="@string/about_back_home_button" /> - </LinearLayout> diff --git a/app/src/main/res/layout/content_survey_response.xml b/app/src/main/res/layout/content_survey_response.xml index 39174649e91bde81844b969d7bc40c26b44e73cb..cb10a02d5392d9e773620a70a79430b0b9838b40 100644 --- a/app/src/main/res/layout/content_survey_response.xml +++ b/app/src/main/res/layout/content_survey_response.xml @@ -20,15 +20,20 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/SurveyScrollView" - android:orientation="vertical"/> + android:orientation="vertical" + android:layout_weight="1"/> </ScrollView> - <Button - android:id="@+id/SurveyResponseBackButton" + <com.google.android.material.floatingactionbutton.FloatingActionButton + android:id="@+id/surveyExperimentFAB" android:layout_width="match_parent" android:layout_height="wrap_content" + android:layout_gravity="bottom|end" android:layout_weight="0" - android:text="@string/about_back_home_button" /> + android:clickable="true" + app:backgroundTint="@color/colorPrimary" + app:fabSize="normal" + app:srcCompat="@drawable/ic_action_right" /> </LinearLayout> diff --git a/app/src/main/res/layout/content_testing.xml b/app/src/main/res/layout/content_testing.xml index e61c055116f24f592f80d875a62d0fff38702ff1..6a31f08f25e30cc6d3963a9baa9fa3fb8cc80202 100644 --- a/app/src/main/res/layout/content_testing.xml +++ b/app/src/main/res/layout/content_testing.xml @@ -30,11 +30,4 @@ </LinearLayout> </ScrollView> - <Button - android:id="@+id/TestingBackHomButton" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_weight="0" - android:text="@string/about_back_home_button" /> - </LinearLayout> diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml deleted file mode 100644 index d372a4fca9b35d26af58c251afcad94bd67642ec..0000000000000000000000000000000000000000 --- a/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +++ /dev/null @@ -1,5 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android"> - <background android:drawable="@drawable/ic_launcher_background"/> - <foreground android:drawable="@mipmap/ic_launcher_foreground"/> -</adaptive-icon> diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml deleted file mode 100644 index d372a4fca9b35d26af58c251afcad94bd67642ec..0000000000000000000000000000000000000000 --- a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml +++ /dev/null @@ -1,5 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android"> - <background android:drawable="@drawable/ic_launcher_background"/> - <foreground android:drawable="@mipmap/ic_launcher_foreground"/> -</adaptive-icon> diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher.png b/app/src/main/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index 22b58ae416efe0de3375a018d947649afc6228ba..0000000000000000000000000000000000000000 Binary files a/app/src/main/res/mipmap-mdpi/ic_launcher.png and /dev/null differ diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png b/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png deleted file mode 100644 index 7dbecdd696a450b49574ab72bc15ebe79888ca88..0000000000000000000000000000000000000000 Binary files a/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png and /dev/null differ diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/app/src/main/res/mipmap-mdpi/ic_launcher_round.png deleted file mode 100644 index e1b447aa39a423846795880b202a88b7bcff5e13..0000000000000000000000000000000000000000 Binary files a/app/src/main/res/mipmap-mdpi/ic_launcher_round.png and /dev/null differ diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/app/src/main/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index 025197d56a5840589bbc866898e9d4cfed406f4c..0000000000000000000000000000000000000000 Binary files a/app/src/main/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png b/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png deleted file mode 100644 index 269ceef95d369216e3b5bab3a3876973f7819459..0000000000000000000000000000000000000000 Binary files a/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png and /dev/null differ diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png deleted file mode 100644 index d60b6434bf015cfb0fff5dec77e6df36cc9cb36f..0000000000000000000000000000000000000000 Binary files a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png and /dev/null differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index 1fdf476efee107159da7a8e6cc0eced18c7793f7..0000000000000000000000000000000000000000 Binary files a/app/src/main/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png deleted file mode 100644 index cdf0ce118953d7fd93806d26ffd0c658ba03d332..0000000000000000000000000000000000000000 Binary files a/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png and /dev/null differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png deleted file mode 100644 index dd1d658e7bcfb70f99d08cbd8d3f54e698ed7c69..0000000000000000000000000000000000000000 Binary files a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png and /dev/null differ diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index 7a88ed816832f2457fe5c1a9ae6af6bf0f5347a9..0000000000000000000000000000000000000000 Binary files a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png deleted file mode 100644 index 2c9615a66b88aed2a54eebbff21b35912f8df89f..0000000000000000000000000000000000000000 Binary files a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png and /dev/null differ diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png deleted file mode 100644 index 5a08b3ccd00cd585694939acd492efb025ee354e..0000000000000000000000000000000000000000 Binary files a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png and /dev/null differ diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.png b/app/src/main/res/mipmap/ic_launcher.png similarity index 100% rename from app/src/main/res/mipmap-hdpi/ic_launcher.png rename to app/src/main/res/mipmap/ic_launcher.png diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png b/app/src/main/res/mipmap/ic_launcher_foreground.png similarity index 100% rename from app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png rename to app/src/main/res/mipmap/ic_launcher_foreground.png diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/app/src/main/res/mipmap/ic_launcher_round.png similarity index 100% rename from app/src/main/res/mipmap-hdpi/ic_launcher_round.png rename to app/src/main/res/mipmap/ic_launcher_round.png diff --git a/app/src/main/res/raw/box_outline.png b/app/src/main/res/raw/box_outline.png new file mode 100644 index 0000000000000000000000000000000000000000..c70208017b9e9736cbcfcf95dd767f864403d06a Binary files /dev/null and b/app/src/main/res/raw/box_outline.png differ diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index dcff6cd7b884c6e206d3bc4657dae004b13e0a00..97af75ef764490e35c51777c83baa4e416a4c7e0 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -1,6 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <resources> <color name="colorPrimary">#587B7F</color> - <color name="colorPrimaryDark">#393E41</color> - <color name="colorAccent">#000000</color> + <color name="colorPrimaryDark">#212426</color> + <color name="calendarBackground">#CED9D9</color> + <color name="colorAccent">#FAFAFA</color> </resources> diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 9dab96d5924e18165508bb56573a609aa7720ae9..073dade0d9e9224407c384008274692397d36835 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -7,6 +7,8 @@ <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> + <item name="android:navigationBarColor">@color/colorAccent</item> + <item name="android:windowLightNavigationBar">true</item> </style> <style name="AppTheme.NoActionBar"> @@ -14,6 +16,7 @@ <item name="windowNoTitle">true</item> </style> - <style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" /> + <style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar"> + </style> </resources> diff --git a/app/src/test/java/com/yearthreeproject/xbframework/ExampleUnitTest.java b/app/src/test/java/com/yearthreeproject/xbframework/ExampleUnitTest.java index b4df0465240341bf8be6a892ba109f80e1e88734..f8934168031fb8278a3468f340baca5fd44ab100 100644 --- a/app/src/test/java/com/yearthreeproject/xbframework/ExampleUnitTest.java +++ b/app/src/test/java/com/yearthreeproject/xbframework/ExampleUnitTest.java @@ -14,4 +14,4 @@ public class ExampleUnitTest { public void addition_isCorrect() { assertEquals(4, 2 + 2); } -} \ No newline at end of file +} diff --git a/build.gradle b/build.gradle index 4870e5d727b0633ab9ddbbf5c2b4241d345581e6..670309ceb972615a5fb6f2b997bd766ea9e216e9 100644 --- a/build.gradle +++ b/build.gradle @@ -18,7 +18,7 @@ allprojects { repositories { google() jcenter() - + maven { url "https://jitpack.io" } } }