From a24dc8cb670f62cfc0ebeb76bf88c569e47afb22 Mon Sep 17 00:00:00 2001 From: Christof Wolke Date: Thu, 25 Aug 2016 15:44:18 +0200 Subject: [PATCH] DB helper to save the event and new Projectstructure --- BIDL/BIDL/app/src/main/AndroidManifest.xml | 62 ++++++--- .../BIDL/app/src/main/java/classes/Event.java | 10 +- .../src/main/java/classes/LocalStorage.java | 125 +++++++++++++++++ .../java/classes/{ => apps}/AppContainer.java | 8 +- .../main/java/classes/{ => apps}/Comment.java | 7 +- .../java/classes/{ => apps}/Feedback.java | 8 +- .../main/java/classes/{ => apps}/Forum.java | 9 +- .../java/classes/{ => apps}/Materials.java | 8 +- .../java/de/uni_oldenburg/bidl/AppClass.java | 27 ++++ .../bidl/base_view/MainActivity.java | 101 +++++++------- .../bidl/base_view/SplashActivity.java | 128 ------------------ .../bidl/guest_view/LoginActivity.java | 24 +++- .../src/main/java/services/db/DBHelper.java | 46 +++++++ .../src/main/res/layout/activity_login.xml | 7 +- 14 files changed, 360 insertions(+), 210 deletions(-) create mode 100644 BIDL/BIDL/app/src/main/java/classes/LocalStorage.java rename BIDL/BIDL/app/src/main/java/classes/{ => apps}/AppContainer.java (91%) rename BIDL/BIDL/app/src/main/java/classes/{ => apps}/Comment.java (88%) rename BIDL/BIDL/app/src/main/java/classes/{ => apps}/Feedback.java (85%) rename BIDL/BIDL/app/src/main/java/classes/{ => apps}/Forum.java (80%) rename BIDL/BIDL/app/src/main/java/classes/{ => apps}/Materials.java (88%) create mode 100644 BIDL/BIDL/app/src/main/java/de/uni_oldenburg/bidl/AppClass.java delete mode 100644 BIDL/BIDL/app/src/main/java/de/uni_oldenburg/bidl/base_view/SplashActivity.java create mode 100644 BIDL/BIDL/app/src/main/java/services/db/DBHelper.java diff --git a/BIDL/BIDL/app/src/main/AndroidManifest.xml b/BIDL/BIDL/app/src/main/AndroidManifest.xml index ec0e67d..bdf66d4 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 99c424b..74081ac 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 0000000..9d67792 --- /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 b369b3b..8116c9d 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 06a1425..9adaf52 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 54590b4..6ef0257 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 133d78c..7b031cb 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 954b05e..2bc1ac3 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 0000000..26102b1 --- /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 e4ba618..a0067cd 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 1cea42f..0000000 --- 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 caef6e9..a5b90e0 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 0000000..81f43dc --- /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 af95c94..ca46216 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 @@ - + + -- GitLab