Skip to content
Snippets Groups Projects
Commit c283cf9d authored by ect1u17's avatar ect1u17
Browse files

Daily Commit

Changes:
- Implemented Date check for boxes
- Introduced localUserData json for local meta data
parent 4dd6d620
No related branches found
No related tags found
No related merge requests found
...@@ -2,6 +2,8 @@ package com.yearthreeproject.xbframework; ...@@ -2,6 +2,8 @@ package com.yearthreeproject.xbframework;
import android.content.Intent; import android.content.Intent;
import android.graphics.Color; import android.graphics.Color;
import android.icu.text.SimpleDateFormat;
import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.util.TypedValue; import android.util.TypedValue;
import android.view.Menu; import android.view.Menu;
...@@ -14,6 +16,7 @@ import android.widget.LinearLayout; ...@@ -14,6 +16,7 @@ import android.widget.LinearLayout;
import android.widget.TextView; import android.widget.TextView;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar; import androidx.appcompat.widget.Toolbar;
...@@ -21,6 +24,8 @@ import org.json.JSONArray; ...@@ -21,6 +24,8 @@ import org.json.JSONArray;
import org.json.JSONException; import org.json.JSONException;
import org.json.JSONObject; import org.json.JSONObject;
import java.util.Calendar;
import static android.util.Log.d; import static android.util.Log.d;
public class BoxesActivity extends AppCompatActivity { public class BoxesActivity extends AppCompatActivity {
...@@ -132,11 +137,15 @@ public class BoxesActivity extends AppCompatActivity { ...@@ -132,11 +137,15 @@ public class BoxesActivity extends AppCompatActivity {
inFiveAvailableBoxes[j].setId(j); inFiveAvailableBoxes[j].setId(j);
inFiveAvailableBoxes[j].setOnClickListener(new View.OnClickListener() { inFiveAvailableBoxes[j].setOnClickListener(new View.OnClickListener() {
@RequiresApi(api = Build.VERSION_CODES.N)
@Override @Override
public void onClick(View v) { public void onClick(View v) {
try { try {
boolean locked = box.getBoolean("Locked"); boolean locked = box.getBoolean("Locked");
if (!locked) {
JSONObject localData = new JSONObject(FileStoreReader.readFile(BoxesActivity.this, "localUserData.json"));
if (!locked && checkDateLimit(localData.getString("DateUntil"))) {
Intent openPage = new Intent(BoxesActivity.this, ExperimentActivity.class); Intent openPage = new Intent(BoxesActivity.this, ExperimentActivity.class);
openPage.putExtra("JSON", box.toString()); openPage.putExtra("JSON", box.toString());
startActivity(openPage); startActivity(openPage);
...@@ -156,4 +165,56 @@ public class BoxesActivity extends AppCompatActivity { ...@@ -156,4 +165,56 @@ public class BoxesActivity extends AppCompatActivity {
e.printStackTrace(); e.printStackTrace();
} }
} }
@RequiresApi(api = Build.VERSION_CODES.N)
private boolean checkDateLimit(String dateLimit){
Calendar calendar = Calendar.getInstance();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy");
String dateToday = simpleDateFormat.format(calendar.getTime());
d("dateToday", dateToday);
Integer dateTodayYear = 1000*Character.getNumericValue(dateToday.codePointAt(0))+100*Character.getNumericValue(dateToday.codePointAt(1))+10*Character.getNumericValue(dateToday.codePointAt(2))+Character.getNumericValue(dateToday.codePointAt(3));
String dateLimitFormatted = dateLimit.substring(dateLimit.length()-4);
d("dateDeadline", dateLimitFormatted);
Integer dateLimitYear = 1000*Character.getNumericValue(dateLimitFormatted.codePointAt(0))+100*Character.getNumericValue(dateLimitFormatted.codePointAt(1))+10*Character.getNumericValue(dateLimitFormatted.codePointAt(2))+Character.getNumericValue(dateLimitFormatted.codePointAt(3));
if(dateTodayYear >= dateLimitYear){
simpleDateFormat = new SimpleDateFormat("mm");
dateToday = simpleDateFormat.format(calendar.getTime());
d("dateToday", dateToday);
Integer dateTodayMonth = 10*Character.getNumericValue(dateToday.codePointAt(0))+Character.getNumericValue(dateToday.codePointAt(1));
dateLimitFormatted = dateLimit.substring(dateLimit.length()-7, dateLimit.length()-5);
d("dateDeadline", dateLimitFormatted);
Integer dateLimitMonth = 10*Character.getNumericValue(dateLimitFormatted.codePointAt(0))+Character.getNumericValue(dateLimitFormatted.codePointAt(1));
if(dateTodayMonth >= dateLimitMonth){
simpleDateFormat = new SimpleDateFormat("dd");
dateToday = simpleDateFormat.format(calendar.getTime());
d("dateToday", dateToday);
Integer dateTodayDay = 10*Character.getNumericValue(dateToday.codePointAt(0))+Character.getNumericValue(dateToday.codePointAt(1));
dateLimitFormatted = dateLimit.substring(dateLimit.length()-10, dateLimit.length()-8);
d("dateDeadline", dateLimitFormatted);
Integer dateLimitDay = 10*Character.getNumericValue(dateLimitFormatted.codePointAt(0))+Character.getNumericValue(dateLimitFormatted.codePointAt(1));
if(dateTodayDay >= dateLimitDay){
d("dateTest", "Date today is later than locked date!");
return true;
}
}
}
return false;
}
} }
...@@ -6,7 +6,6 @@ import android.content.DialogInterface; ...@@ -6,7 +6,6 @@ import android.content.DialogInterface;
import android.content.Intent; import android.content.Intent;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.icu.text.SimpleDateFormat;
import android.net.Uri; import android.net.Uri;
import android.os.Build; import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
...@@ -24,8 +23,8 @@ import androidx.core.app.ActivityCompat; ...@@ -24,8 +23,8 @@ import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat; import androidx.core.content.ContextCompat;
import java.io.ByteArrayOutputStream; import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.InputStream; import java.io.InputStream;
import java.util.Calendar;
import java.util.Random; import java.util.Random;
import static android.util.Log.d; import static android.util.Log.d;
...@@ -61,10 +60,8 @@ public class MainActivity extends AppCompatActivity { ...@@ -61,10 +60,8 @@ public class MainActivity extends AppCompatActivity {
getSupportActionBar().setDisplayUseLogoEnabled(true); getSupportActionBar().setDisplayUseLogoEnabled(true);
askForWriteAccess(); askForWriteAccess();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
testingDateAndTime();
}
createSalt(); createSalt();
checkLocalUserFile();
homeButton = findViewById(R.id.HomeHomeButton); homeButton = findViewById(R.id.HomeHomeButton);
loginButton = findViewById(R.id.HomeLoginButton); loginButton = findViewById(R.id.HomeLoginButton);
...@@ -116,6 +113,16 @@ public class MainActivity extends AppCompatActivity { ...@@ -116,6 +113,16 @@ public class MainActivity extends AppCompatActivity {
} }
private void checkLocalUserFile() {
File file = new File(this.getFilesDir(), "localUserData.json");
if(!file.exists()) {
// Do stuff to initialise the file
FileStoreReader.saveFile(this, "localUserData.json", "{DateUntil:'31/01/1999'}");
} else {
// Do nothing
}
}
private void createSalt(){ private void createSalt(){
SharedPreferences savedSettings = this.getSharedPreferences("com.yearthreeproject.xbframework.PREFERENCE_FILE_KEY", Context.MODE_PRIVATE); SharedPreferences savedSettings = this.getSharedPreferences("com.yearthreeproject.xbframework.PREFERENCE_FILE_KEY", Context.MODE_PRIVATE);
SharedPreferences.Editor savedSettingsEditor = savedSettings.edit(); SharedPreferences.Editor savedSettingsEditor = savedSettings.edit();
...@@ -137,72 +144,6 @@ public class MainActivity extends AppCompatActivity { ...@@ -137,72 +144,6 @@ public class MainActivity extends AppCompatActivity {
} }
} }
@RequiresApi(api = Build.VERSION_CODES.N)
private void testingDateAndTime(){
Calendar calendar = Calendar.getInstance();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy");
String dateToday = simpleDateFormat.format(calendar.getTime());
d("dateToday", dateToday);
Integer dateTodayYear = 1000*Character.getNumericValue(dateToday.codePointAt(0))+100*Character.getNumericValue(dateToday.codePointAt(1))+10*Character.getNumericValue(dateToday.codePointAt(2))+Character.getNumericValue(dateToday.codePointAt(3));
calendar.add(Calendar.DATE, 5);
String dateLater = simpleDateFormat.format(calendar.getTime());
d("dateDeadline", dateLater);
Integer dateLaterYear = 1000*Character.getNumericValue(dateLater.codePointAt(0))+100*Character.getNumericValue(dateLater.codePointAt(1))+10*Character.getNumericValue(dateLater.codePointAt(2))+Character.getNumericValue(dateLater.codePointAt(3));
d("dateTest", dateTodayYear.toString());
d("dateTest", dateLaterYear.toString());
if(dateTodayYear <= dateLaterYear){
d("dateTest", "Release from experiment!");
simpleDateFormat = new SimpleDateFormat("mm");
dateToday = simpleDateFormat.format(calendar.getTime());
d("dateToday", dateToday);
Integer dateTodayMonth = 10*Character.getNumericValue(dateToday.codePointAt(0))+Character.getNumericValue(dateToday.codePointAt(1));
calendar.add(Calendar.DATE, 5);
dateLater = simpleDateFormat.format(calendar.getTime());
d("dateDeadline", dateLater);
Integer dateLaterMonth = 10*Character.getNumericValue(dateLater.codePointAt(0))+Character.getNumericValue(dateLater.codePointAt(1));
d("dateTest", dateTodayMonth.toString());
d("dateTest", dateLaterMonth.toString());
if(dateTodayMonth <= dateLaterMonth){
d("dateTest", "Release from experiment!");
simpleDateFormat = new SimpleDateFormat("dd");
dateToday = simpleDateFormat.format(calendar.getTime());
d("dateToday", dateToday);
Integer dateTodayDay = 10*Character.getNumericValue(dateToday.codePointAt(0))+Character.getNumericValue(dateToday.codePointAt(1));
calendar.add(Calendar.DATE, 5);
dateLater = simpleDateFormat.format(calendar.getTime());
d("dateDeadline", dateLater);
Integer dateLaterDay = 10*Character.getNumericValue(dateLater.codePointAt(0))+Character.getNumericValue(dateLater.codePointAt(1));
d("dateTest", dateTodayDay.toString());
d("dateTest", dateLaterDay.toString());
if(dateTodayDay <= dateLaterDay){
d("dateTest", "Release from experiment!");
}
}
}
}
private void resetBoxJSON() { private void resetBoxJSON() {
// Load Box Json and initialise to internal storage // Load Box Json and initialise to internal storage
InputStream inputStream = getResources().openRawResource(R.raw.box); InputStream inputStream = getResources().openRawResource(R.raw.box);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment