diff --git a/BIDL/BIDL/app/src/main/AndroidManifest.xml b/BIDL/BIDL/app/src/main/AndroidManifest.xml
index ec0e67d3dac87a725f43933d427f5c57bc6b4878..bdf66d4bdd15711e948fc4ba61ada591765bb17c 100644
--- a/BIDL/BIDL/app/src/main/AndroidManifest.xml
+++ b/BIDL/BIDL/app/src/main/AndroidManifest.xml
@@ -2,39 +2,67 @@
+
+
+
+
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
\ No newline at end of file
diff --git a/BIDL/BIDL/app/src/main/java/classes/Event.java b/BIDL/BIDL/app/src/main/java/classes/Event.java
index 99c424b78b2be442a5ad463f061494fbbf657f93..74081accdf8715e635452549eedc9dc397eaaef0 100644
--- a/BIDL/BIDL/app/src/main/java/classes/Event.java
+++ b/BIDL/BIDL/app/src/main/java/classes/Event.java
@@ -3,11 +3,17 @@ package classes;
import com.bluelinelabs.logansquare.annotation.JsonField;
import com.bluelinelabs.logansquare.annotation.JsonObject;
+import java.io.Serializable;
+
+import classes.apps.AppContainer;
+import co.uk.rushorm.core.RushObject;
+import co.uk.rushorm.core.annotations.RushClassSerializationName;
+
/**
* Created by Christof on 23.08.2016.
*/
@JsonObject
-public class Event {
+public class Event extends RushObject implements Serializable {
@JsonField(name = "id")
private int eventId;
@@ -15,6 +21,7 @@ public class Event {
@JsonField(name = "name")
private String name;
+
@JsonField(name = "appContainer")
private AppContainer appContainer;
@@ -27,6 +34,7 @@ public class Event {
this.appContainer = appContainer;
}
+
public int getEventId() {
return eventId;
}
diff --git a/BIDL/BIDL/app/src/main/java/classes/LocalStorage.java b/BIDL/BIDL/app/src/main/java/classes/LocalStorage.java
new file mode 100644
index 0000000000000000000000000000000000000000..9d67792f662db9f1c37f2e4fbb153650a85d634c
--- /dev/null
+++ b/BIDL/BIDL/app/src/main/java/classes/LocalStorage.java
@@ -0,0 +1,125 @@
+package classes;
+
+import android.content.Context;
+import android.content.SharedPreferences;
+
+/**
+ * Created by Christof on 25.08.2016.
+ */
+public class LocalStorage {
+
+ public static final String SP_NAME = "userDetails";
+ private SharedPreferences userLocalDatabase;
+
+ /**
+ *
+ * @param context App-context zum Zugriff auf die SharedPreference API
+ */
+ public LocalStorage(Context context){
+ this.userLocalDatabase = context.getSharedPreferences(SP_NAME, 0);
+ }
+
+ /**
+ * Speichert Userdaten in SharedPreference
+ * @param user User Object, welches gespeichert werden soll
+ */
+ public void storeUserData(User user){
+ SharedPreferences.Editor spEditor = this.userLocalDatabase.edit();
+ spEditor.putString("username", user.getUsername());
+ spEditor.putString("email", user.getEmail());
+ spEditor.putLong("id", user.getUserId());
+ spEditor.putString("image", user.getImagePath());
+ spEditor.apply();
+ }
+
+ /**
+ * Löscht alle Userdaten aus dem Storage
+ */
+ public void deleteUserData(){
+ SharedPreferences.Editor spEditor = userLocalDatabase.edit();
+ spEditor.remove("username");
+ spEditor.remove("email");
+ spEditor.remove("id");
+ spEditor.remove("image");
+ spEditor.remove("loggedIn");
+ spEditor.apply();
+ }
+
+ /**
+ *
+ * @return derzeit gespeicherter (eingeloggter) User
+ */
+ public User getLoggedInUser(){
+ String username = this.userLocalDatabase.getString("username","");
+ String email = this.userLocalDatabase.getString("email", "");
+ Long id = this.userLocalDatabase.getLong("id", 0);
+ String image = this.userLocalDatabase.getString("image", "");
+ return new User(username, email, id, image);
+ }
+
+ /**
+ * Ändert, ob ein User eingeloggt ist
+ * @param loggedIn true = eingeloggt, false = nicht eingeloggt
+ */
+ public void setLoggedIn(boolean loggedIn){
+ SharedPreferences.Editor spEditor = this.userLocalDatabase.edit();
+ spEditor.putBoolean("loggedIn", loggedIn);
+ spEditor.apply();
+ }
+
+ /**
+ * Liefert zurück, ob derzeit ein User eingeloggt ist.
+ * @return true = User eingeloggt, false = kein User eingeloggt
+ */
+ public Boolean isLoggedIn(){
+ return this.userLocalDatabase.getBoolean("loggedIn", false);
+ }
+
+ /**
+ * Liefert den Pfad zum Profilbild des Nutzers
+ * @return Pfad zum Profilbild des Nutzers
+ */
+ public String getUserImage() {
+ return this.userLocalDatabase.getString("image", "");
+ }
+
+ /**
+ * Ändert den Pfad zum Profilbild des Nutzers
+ * @param image neuen Pfad zum Profilbild des Nutzers
+ */
+ public void setUserImage(String image) {
+ SharedPreferences.Editor spEditor = this.userLocalDatabase.edit();
+ spEditor.putString("image", image);
+ spEditor.apply();
+ }
+
+
+ /**
+ * Löscht alle Datena us dem SharedPreference
+ */
+ public void clearData() {
+ SharedPreferences.Editor spEditor = this.userLocalDatabase.edit();
+ spEditor.clear();
+ spEditor.apply();
+ }
+
+ /**
+ * Setz einen neuen Nutzernamen für den eingeloggten Nutzer
+ * @param userName neuer Nutzername
+ */
+ public void setUserName(String userName) {
+ SharedPreferences.Editor spEditor = this.userLocalDatabase.edit();
+ spEditor.putString("username", userName);
+ spEditor.apply();
+ }
+
+ /**
+ * Setz einen neue Email-Adresse für den eingeloggten Nutzer
+ * @param userEmail neue Email-Adresse
+ */
+ public void setUserEmail(String userEmail) {
+ SharedPreferences.Editor spEditor = this.userLocalDatabase.edit();
+ spEditor.putString("email", userEmail);
+ spEditor.apply();
+ }
+}
diff --git a/BIDL/BIDL/app/src/main/java/classes/AppContainer.java b/BIDL/BIDL/app/src/main/java/classes/apps/AppContainer.java
similarity index 91%
rename from BIDL/BIDL/app/src/main/java/classes/AppContainer.java
rename to BIDL/BIDL/app/src/main/java/classes/apps/AppContainer.java
index b369b3b9a442582c0e58a4595c0e832159820f69..8116c9d5e2faf4390cd143d1a38ccddeabdbde9b 100644
--- a/BIDL/BIDL/app/src/main/java/classes/AppContainer.java
+++ b/BIDL/BIDL/app/src/main/java/classes/apps/AppContainer.java
@@ -1,13 +1,17 @@
-package classes;
+package classes.apps;
import com.bluelinelabs.logansquare.annotation.JsonField;
import com.bluelinelabs.logansquare.annotation.JsonObject;
+import java.io.Serializable;
+
+import co.uk.rushorm.core.RushObject;
+
/**
* Created by Christof on 23.08.2016.
*/
@JsonObject
-public class AppContainer {
+public class AppContainer extends RushObject implements Serializable{
@JsonField(name = "id")
private int appContainerId;
diff --git a/BIDL/BIDL/app/src/main/java/classes/Comment.java b/BIDL/BIDL/app/src/main/java/classes/apps/Comment.java
similarity index 88%
rename from BIDL/BIDL/app/src/main/java/classes/Comment.java
rename to BIDL/BIDL/app/src/main/java/classes/apps/Comment.java
index 06a14252a90f7b1dae518b72482ec9728e626416..9adaf5240d00c869bbf0e3942f01d575f87a0337 100644
--- a/BIDL/BIDL/app/src/main/java/classes/Comment.java
+++ b/BIDL/BIDL/app/src/main/java/classes/apps/Comment.java
@@ -1,15 +1,18 @@
-package classes;
+package classes.apps;
import com.bluelinelabs.logansquare.annotation.JsonField;
import com.bluelinelabs.logansquare.annotation.JsonObject;
+import java.io.Serializable;
import java.util.Date;
+import co.uk.rushorm.core.RushObject;
+
/**
* Created by Christof on 23.08.2016.
*/
@JsonObject
-public class Comment {
+public class Comment extends RushObject implements Serializable {
@JsonField(name = "id")
private int commentID;
diff --git a/BIDL/BIDL/app/src/main/java/classes/Feedback.java b/BIDL/BIDL/app/src/main/java/classes/apps/Feedback.java
similarity index 85%
rename from BIDL/BIDL/app/src/main/java/classes/Feedback.java
rename to BIDL/BIDL/app/src/main/java/classes/apps/Feedback.java
index 54590b452da148a4d8d4294f728e480b29cfbe7d..6ef0257c60f33fc046c3bada56865accda11c229 100644
--- a/BIDL/BIDL/app/src/main/java/classes/Feedback.java
+++ b/BIDL/BIDL/app/src/main/java/classes/apps/Feedback.java
@@ -1,13 +1,17 @@
-package classes;
+package classes.apps;
import com.bluelinelabs.logansquare.annotation.JsonField;
import com.bluelinelabs.logansquare.annotation.JsonObject;
+import java.io.Serializable;
+
+import co.uk.rushorm.core.RushObject;
+
/**
* Created by Christof on 23.08.2016.
*/
@JsonObject
-public class Feedback {
+public class Feedback extends RushObject implements Serializable {
@JsonField(name = "id")
private int feedbackId;
diff --git a/BIDL/BIDL/app/src/main/java/classes/Forum.java b/BIDL/BIDL/app/src/main/java/classes/apps/Forum.java
similarity index 80%
rename from BIDL/BIDL/app/src/main/java/classes/Forum.java
rename to BIDL/BIDL/app/src/main/java/classes/apps/Forum.java
index 133d78cb056910789829bec523e8ecd08dc88b5d..7b031cb821f01b850aa945ca985f03c7a05defee 100644
--- a/BIDL/BIDL/app/src/main/java/classes/Forum.java
+++ b/BIDL/BIDL/app/src/main/java/classes/apps/Forum.java
@@ -1,21 +1,24 @@
-package classes;
+package classes.apps;
import com.bluelinelabs.logansquare.annotation.JsonField;
import com.bluelinelabs.logansquare.annotation.JsonObject;
+import java.io.Serializable;
import java.util.ArrayList;
-import classes.Comment;
+import co.uk.rushorm.core.RushObject;
+import co.uk.rushorm.core.annotations.RushList;
/**
* Created by Christof on 23.08.2016.
*/
@JsonObject
-public class Forum {
+public class Forum extends RushObject implements Serializable {
@JsonField(name = "id")
private int forumId;
+ @RushList(classType = Comment.class)
@JsonField(name = "comments")
private ArrayListcomments;
diff --git a/BIDL/BIDL/app/src/main/java/classes/Materials.java b/BIDL/BIDL/app/src/main/java/classes/apps/Materials.java
similarity index 88%
rename from BIDL/BIDL/app/src/main/java/classes/Materials.java
rename to BIDL/BIDL/app/src/main/java/classes/apps/Materials.java
index 954b05e539ca70f6562b5cdb1a4bc8c53528036e..2bc1ac393bd953806ef1d3e06b1c295cd490a68c 100644
--- a/BIDL/BIDL/app/src/main/java/classes/Materials.java
+++ b/BIDL/BIDL/app/src/main/java/classes/apps/Materials.java
@@ -1,13 +1,17 @@
-package classes;
+package classes.apps;
import com.bluelinelabs.logansquare.annotation.JsonField;
import com.bluelinelabs.logansquare.annotation.JsonObject;
+import java.io.Serializable;
+
+import co.uk.rushorm.core.RushObject;
+
/**
* Created by Christof on 23.08.2016.
*/
@JsonObject
-public class Materials {
+public class Materials extends RushObject implements Serializable {
@JsonField(name = "id")
private int materialsId;
diff --git a/BIDL/BIDL/app/src/main/java/de/uni_oldenburg/bidl/AppClass.java b/BIDL/BIDL/app/src/main/java/de/uni_oldenburg/bidl/AppClass.java
new file mode 100644
index 0000000000000000000000000000000000000000..26102b12ad6212753c262e0f1bee89fb39946607
--- /dev/null
+++ b/BIDL/BIDL/app/src/main/java/de/uni_oldenburg/bidl/AppClass.java
@@ -0,0 +1,27 @@
+package de.uni_oldenburg.bidl;
+
+import android.app.Application;
+
+import co.uk.rushorm.android.AndroidInitializeConfig;
+import co.uk.rushorm.core.RushCore;
+
+/**
+ * Superklasse
+ * @author Christof
+ */
+
+public class AppClass extends Application {
+ @Override
+ public void onCreate() {
+ super.onCreate();
+
+ /**
+ * Uncomment this to drop the whole database (version mismatch during review / testing)
+ * don't increment database version during basic feature-branching to prevent!
+ * */
+ //this.deleteDatabase("bidl.db");
+
+ AndroidInitializeConfig config = new AndroidInitializeConfig(getApplicationContext());
+ RushCore.initialize(config);
+ }
+}
diff --git a/BIDL/BIDL/app/src/main/java/de/uni_oldenburg/bidl/base_view/MainActivity.java b/BIDL/BIDL/app/src/main/java/de/uni_oldenburg/bidl/base_view/MainActivity.java
index e4ba61891b4d639d726bac56d9e64f412e910479..a0067cd3d541240f32c3bec169e321f2b3677db6 100644
--- a/BIDL/BIDL/app/src/main/java/de/uni_oldenburg/bidl/base_view/MainActivity.java
+++ b/BIDL/BIDL/app/src/main/java/de/uni_oldenburg/bidl/base_view/MainActivity.java
@@ -1,9 +1,10 @@
package de.uni_oldenburg.bidl.base_view;
-import android.os.Handler;
+import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
+import android.util.Log;
import android.widget.TextView;
import android.widget.Toast;
@@ -16,17 +17,21 @@ import java.util.List;
import java.util.UUID;
import classes.Event;
+import classes.LocalStorage;
+import classes.User;
import de.uni_oldenburg.bidl.R;
+import de.uni_oldenburg.bidl.guest_view.LoginActivity;
import services.servercommunication.NetworkService;
-import static de.uni_oldenburg.bidl.R.string.noBeaconFound;
-
public class MainActivity extends AppCompatActivity {
/** Tag for Logging **/
private static final String TAG = MainActivity.class.getSimpleName();
+ /** Soll nach Beacons gesucht werden? **/
+ private static final Boolean RANGING = true;
+
/** Estimote Beacon UUID **/
private static final UUID PROXIMITY_UUID = UUID.fromString("B9407F30-F5F8-466E-AFF9-25556B57FE6D");
@@ -34,10 +39,12 @@ public class MainActivity extends AppCompatActivity {
private TextView beaconID;
/** values **/
- boolean doubleBackToExitPressedOnce = false;
private Region region;
private BeaconManager beaconManager;
private Beacon nearestBeacon;
+ private Event event;
+
+ protected LocalStorage localStorage;
@@ -45,32 +52,44 @@ public class MainActivity extends AppCompatActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
-
/** init **/
beaconID = (TextView) findViewById(R.id.BeaconID);
+ this.localStorage = new LocalStorage(this);
+ /*Weiterleitung je nach Login Status */
+ if(!localStorage.isLoggedIn()){
+ startActivity(new Intent(this, LoginActivity.class));
+ this.finish();
+ }
+
+ /** region is the hole university --> all beacons have the same proximity_UUID **/
+ region = new Region("ranged region", PROXIMITY_UUID, null, null);
+ beaconManager = new BeaconManager(this);
+
/**
* Start ranging for beacons.
**/
- beaconManager = new BeaconManager(this);
- /** region is the hole university --> all beacons have the same proximity_UUID **/
- region = new Region("ranged region", PROXIMITY_UUID, null, null);
- beaconManager.setRangingListener(new BeaconManager.RangingListener() {
- @Override
- public void onBeaconsDiscovered(Region region, List list) {
- if (!list.isEmpty() && !list.get(0).equals(nearestBeacon)){
- // TODO: 30.07.2016 React, when the user is nearer to another Beacon.
- nearestBeacon = list.get(0);
- getEventFromServer(nearestBeacon);
+ if(RANGING){
+ beaconManager.setRangingListener(new BeaconManager.RangingListener() {
+ @Override
+ public void onBeaconsDiscovered(Region region, List list) {
+ if (!list.isEmpty() && !list.get(0).equals(nearestBeacon)){
+ // TODO: 30.07.2016 React, when the user is nearer to another Beacon.
+ nearestBeacon = list.get(0);
+ getEventFromServer(nearestBeacon);
+ } if (list.isEmpty()){
+ showMessage(getResources().getString(R.string.noBeaconFound));
+ }
+ }
- } if (list.isEmpty()){
- showMessage();
+ });
+ }
- }
- }
- });
+ }
+ private void setEvent(Event event) {
+ this.event = event;
}
private void getEventFromServer(Beacon nearestBeacon) {
@@ -80,13 +99,19 @@ public class MainActivity extends AppCompatActivity {
NetworkService.getEvent(uud, major, minor, new NetworkService.RequestGetEventHandler() {
@Override
- public void done(final Event event) {
- MainActivity.this.runOnUiThread(new Runnable() {
- @Override
- public void run() {
- beaconID.setText(event.getName());
- }
- });
+ public void done(Event event) {
+ if (event != null){
+ setEvent(event);
+
+ }else{
+ runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ Toast.makeText(getApplicationContext(), "aktuell findet keine Veranstaltung statt", Toast.LENGTH_SHORT).show();
+ }
+ });
+ }
+
}
});
@@ -96,6 +121,7 @@ public class MainActivity extends AppCompatActivity {
protected void onResume(){
super.onResume();
// is Bluetooth on, is Location on, etc.
+ //TODO: only check if Bluethooth is on.
SystemRequirementsChecker.checkWithDefaultDialogs(this);
// Start ranging for beacons, when the activity appears on the screen
beaconManager.connect(new BeaconManager.ServiceReadyCallback() {
@@ -118,28 +144,11 @@ public class MainActivity extends AppCompatActivity {
super.onPause();
}
- @Override
- public void onBackPressed() {
- if (doubleBackToExitPressedOnce) {
- super.onBackPressed();
- this.finishAffinity();
- return;
- }
-
- this.doubleBackToExitPressedOnce = true;
- Toast.makeText(this, getString(R.string.clickAgainToExit), Toast.LENGTH_SHORT).show();
- new Handler().postDelayed(new Runnable() {
- @Override
- public void run() {
- doubleBackToExitPressedOnce = false;
- }
- }, 2000);
- }
- private void showMessage() {
- Toast.makeText(this, noBeaconFound, Toast.LENGTH_SHORT).show();
+ private void showMessage(String message) {
+ Toast.makeText(this, message, Toast.LENGTH_SHORT).show();
}
}
diff --git a/BIDL/BIDL/app/src/main/java/de/uni_oldenburg/bidl/base_view/SplashActivity.java b/BIDL/BIDL/app/src/main/java/de/uni_oldenburg/bidl/base_view/SplashActivity.java
deleted file mode 100644
index 1cea42ffad4c749bc72853831daa51e172c872d9..0000000000000000000000000000000000000000
--- a/BIDL/BIDL/app/src/main/java/de/uni_oldenburg/bidl/base_view/SplashActivity.java
+++ /dev/null
@@ -1,128 +0,0 @@
-package de.uni_oldenburg.bidl.base_view;
-
-import android.content.Intent;
-import android.content.SharedPreferences;
-import android.support.v7.app.AppCompatActivity;
-import android.os.Bundle;
-import android.view.View;
-import android.widget.ImageView;
-import android.widget.TextView;
-import android.widget.Toast;
-
-import com.estimote.sdk.Beacon;
-import com.estimote.sdk.BeaconManager;
-import com.estimote.sdk.Region;
-import com.estimote.sdk.SystemRequirementsChecker;
-
-import java.util.List;
-import java.util.UUID;
-
-import de.uni_oldenburg.bidl.R;
-import de.uni_oldenburg.bidl.guest_view.LoginActivity;
-import pl.droidsonroids.gif.GifImageView;
-import static de.uni_oldenburg.bidl.R.string.noBeaconFound;
-
-
-public class SplashActivity extends AppCompatActivity {
-
- /** Estimote Beacon UUID **/
- private static final UUID PROXIMITY_UUID = UUID.fromString("B9407F30-F5F8-466E-AFF9-25556B57FE6D");
-
- /** Tag for Logging **/
- private static final String TAG = SplashActivity.class.getSimpleName();
-
- /** GUI **/
- private ImageView uniLogo;
- private GifImageView loadingSpinner;
- private TextView splashMessage;
-
- /** Values **/
- private Region region;
- private BeaconManager beaconManager;
-
-
-
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_splash);
-
- /** init **/
- uniLogo = (ImageView) findViewById(R.id.uniLogo);
- loadingSpinner = (GifImageView) findViewById(R.id.loadingSpinner);
- splashMessage = (TextView) findViewById(R.id.splashText);
-
- /** Fullscreen modus **/
- getWindow().getDecorView().setSystemUiVisibility(
- View.SYSTEM_UI_FLAG_LAYOUT_STABLE
- | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
- | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
- | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
- | View.SYSTEM_UI_FLAG_FULLSCREEN);
-
-
- /**
- * Start ranging for beacons.
- **/
- beaconManager = new BeaconManager(this);
- beaconManager.setForegroundScanPeriod(7000,5000);
- beaconManager.setRangingListener(new BeaconManager.RangingListener() {
- @Override
- public void onBeaconsDiscovered(Region region, List list) {
- if (!list.isEmpty()){
- Beacon nearestBeacon = list.get(0);
- toLoginActivity();
- // TODO: 30.07.2016 save the Beacon in the database and overwrite the DB, when the nearestBeacon != the saved beacon.
- } if (list.isEmpty()){
- showMessage();
- toLoginActivity();
- }
- }
-
- });
-
- region = new Region("ranged region", PROXIMITY_UUID, null, null);
- //// TODO: 29.07.2016 Servercall to get the Event, which takes place, get the Beacon from the Database.
- // TODO: 30.07.2016 React, when the user is nearer to another Beacon.
-
- }
-
-
-
- @Override
- protected void onResume(){
- super.onResume();
- // is Bluetooth on, is Location on, etc.
- SystemRequirementsChecker.checkWithDefaultDialogs(this);
- // Start ranging for beacons, when the activity appears on the screen
- beaconManager.connect(new BeaconManager.ServiceReadyCallback() {
- @Override
- public void onServiceReady() {
- beaconManager.startRanging(region);
- }
- });
-
-
- }
-
- /**
- * Ranging ist stopped, if the Activity disappears.
- */
- @Override
- public void onPause(){
- beaconManager.stopRanging(region);
-
- super.onPause();
- }
-
-
- private void toLoginActivity() {
- startActivity(new Intent(this, LoginActivity.class));
- }
-
- private void showMessage() {
- Toast.makeText(this, noBeaconFound, Toast.LENGTH_SHORT).show();
- }
-
-}
diff --git a/BIDL/BIDL/app/src/main/java/de/uni_oldenburg/bidl/guest_view/LoginActivity.java b/BIDL/BIDL/app/src/main/java/de/uni_oldenburg/bidl/guest_view/LoginActivity.java
index caef6e9058f4d83f3d74a8d3ed52c644b93356cf..a5b90e0bdeedfd1eff7b1c522ea57d1c3c672fec 100644
--- a/BIDL/BIDL/app/src/main/java/de/uni_oldenburg/bidl/guest_view/LoginActivity.java
+++ b/BIDL/BIDL/app/src/main/java/de/uni_oldenburg/bidl/guest_view/LoginActivity.java
@@ -13,6 +13,7 @@ import android.widget.Toast;
import com.estimote.sdk.SystemRequirementsChecker;
+import classes.LocalStorage;
import classes.User;
import de.uni_oldenburg.bidl.R;
import de.uni_oldenburg.bidl.base_view.MainActivity;
@@ -29,6 +30,8 @@ public class LoginActivity extends AppCompatActivity {
private Button btLogin;
private TextView tvRegister;
+ private LocalStorage localStorage;
+
/** values **/
private String email;
private String password;
@@ -52,6 +55,8 @@ public class LoginActivity extends AppCompatActivity {
tvRegister = (TextView) findViewById(R.id.register);
/** Login **/
+ this.localStorage = new LocalStorage(this);
+
btLogin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(final View view) {
@@ -66,6 +71,17 @@ public class LoginActivity extends AppCompatActivity {
public void done(User user) {
//User cannot be null and cannot have the ID 0.
if (user != null && user.getUserId() > 0){
+
+ /* log in user and store data */
+ localStorage.setLoggedIn(true);
+ localStorage.storeUserData(user);
+ /* go to the MainActivity */
+ LoginActivity.this.runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ view.setEnabled(true);
+ }
+ });
toMainActivity();
} else {
LoginActivity.this.runOnUiThread(new Runnable() {
@@ -103,13 +119,9 @@ public class LoginActivity extends AppCompatActivity {
super.onResume();
//is Bluetooth on, is Location on, etc.
SystemRequirementsChecker.checkWithDefaultDialogs(this);
+
}
- @Override
- public void onBackPressed() {
- super.onBackPressed();
- this.finishAffinity();
- return;
- }
+
private void toRegisterActivity() {
startActivity(new Intent(this, RegisterActivity.class));
diff --git a/BIDL/BIDL/app/src/main/java/services/db/DBHelper.java b/BIDL/BIDL/app/src/main/java/services/db/DBHelper.java
new file mode 100644
index 0000000000000000000000000000000000000000..81f43dcc9feb4380a7ff1c6e8672455cb6d2a984
--- /dev/null
+++ b/BIDL/BIDL/app/src/main/java/services/db/DBHelper.java
@@ -0,0 +1,46 @@
+package services.db;
+
+import android.app.Application;
+import android.content.Context;
+
+import java.util.List;
+
+import classes.Event;
+import classes.LocalStorage;
+import co.uk.rushorm.core.RushSearch;
+
+/**
+ * Created by Christof on 25.08.2016.
+ */
+public class DBHelper {
+
+ LocalStorage localStorage = new LocalStorage(dbContext());
+
+ public static Application getApplicationUsingReflection() throws Exception{
+ return (Application) Class.forName("android.app.ActivityThread")
+ .getMethod("currentApplication").invoke(null, (Object[]) null);
+ }
+
+ private Context dbContext() {
+ Context dbContext = null;
+ try {
+ dbContext = getApplicationUsingReflection().getApplicationContext();
+ } catch (Exception e){
+ e.printStackTrace();
+ }
+ return dbContext;
+ }
+
+ /*
+ DB Operationen
+ */
+
+ /* Event */
+ public static Event getEventById(int eventId){
+ Event event = new RushSearch().whereEqual("eventId", eventId).findSingle(Event.class);
+ return event;
+
+ }
+
+
+}
diff --git a/BIDL/BIDL/app/src/main/res/layout/activity_login.xml b/BIDL/BIDL/app/src/main/res/layout/activity_login.xml
index af95c9421b4da1bf1d3ad407aaaef9b597246def..ca46216c4e751fcf4d1331a0e7a0352df256ae2e 100644
--- a/BIDL/BIDL/app/src/main/res/layout/activity_login.xml
+++ b/BIDL/BIDL/app/src/main/res/layout/activity_login.xml
@@ -1,5 +1,9 @@
-
+
+