diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 69f2f02..4c667d0 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -16,7 +16,7 @@
-
+
>
+ android:parentActivityName=".StartActivity" >
+>
+ android:parentActivityName=".LoginActivity" >
+ android:parentActivityName=".MainActivity" >
-
-
+
+
+
+ android:parentActivityName=".MainActivity" >
+
+
diff --git a/app/src/main/java/org/deke/risk/riskahead/LoginActivity.java b/app/src/main/java/org/deke/risk/riskahead/LoginActivity.java
index 677d547..24e075f 100644
--- a/app/src/main/java/org/deke/risk/riskahead/LoginActivity.java
+++ b/app/src/main/java/org/deke/risk/riskahead/LoginActivity.java
@@ -1,6 +1,10 @@
package org.deke.risk.riskahead;
+import android.app.AlertDialog;
+import android.app.Dialog;
import android.app.ProgressDialog;
+import android.content.Context;
+import android.content.DialogInterface;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.content.Intent;
@@ -15,6 +19,7 @@ import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
+import com.android.volley.Request;
import com.facebook.CallbackManager;
import org.deke.risk.riskahead.fragments.FacebookButtonFragment;
@@ -43,20 +48,20 @@ public class LoginActivity extends AppCompatActivity implements FacebookButtonFr
private TextView input_email;
private TextView input_full_name;
private TextView input_password;
+ private Context thiscontext;
private ProgressDialog pDialog;
private SessionManager session;
public final static String EXTRA_MESSAGE = "com.mycompany.myfirstapp.MESSAGE";
private SQLiteHandler db;
-
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent = getIntent();
inputMsg = intent.getStringExtra(StartActivity.EXTRA_MESSAGE);
callbackManager = CallbackManager.Factory.create();
-
+ thiscontext = this;
// Session manager
session = new SessionManager(getApplicationContext());
@@ -124,20 +129,6 @@ public class LoginActivity extends AppCompatActivity implements FacebookButtonFr
});
}
- private boolean isEmpty(TextView etText) {
- return etText.getText().toString().trim().length() == 0;
- }
-
- public void showMessage(String statusText){
- Toast.makeText(this, statusText, Toast.LENGTH_LONG).show();
- }
-
-
- public void onFragmentInteraction(Uri uri){
- //you can leave it empty
- }
-
-
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_login, menu);
@@ -155,6 +146,21 @@ public class LoginActivity extends AppCompatActivity implements FacebookButtonFr
return super.onOptionsItemSelected(item);
}
+ @Override
+ protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+ if (requestCode == GooglePlusButtonFragment.RC_SIGN_IN) {
+ GooglePlusButtonFragment fragment = (GooglePlusButtonFragment) getSupportFragmentManager().findFragmentById(R.id.fragment_btn_gp);
+ fragment.onActivityResult(requestCode, resultCode, data);
+ } else {
+ super.onActivityResult(requestCode, resultCode, data);
+ }
+
+ TwitterButtonFragment twitter_fragment = (TwitterButtonFragment) getSupportFragmentManager().findFragmentById(R.id.fragment_btn_tw);
+ if (twitter_fragment != null) {
+ twitter_fragment.onActivityResult(requestCode, resultCode, data);
+ }
+ }
+
public void handleSocialMediaLogin(final String key, final String providerType, final String username, final String email){
if(session.isLoggedIn()){
Intent intent = new Intent(
@@ -171,7 +177,69 @@ public class LoginActivity extends AppCompatActivity implements FacebookButtonFr
pDialog.setMessage("Social Media Login ...");
showDialog();
- StringRequest strReq = new StringRequest(Method.POST,
+ StringRequest strReq = getStringRequestSocialMediaLogin(key, providerType, username, email);
+
+ // Adding request to request queue
+ AppController.getInstance().addToRequestQueue(strReq, tag_string_req);
+ }
+
+ private void checkLogin(final String email, final String password) {
+ // Tag used to cancel the request
+ String tag_string_req = "req_login";
+ db.deleteUsers();
+ pDialog.setMessage("Logging in ...");
+ showDialog();
+
+ StringRequest strReq = getStringRequestLogin(email, password);
+
+ // Adding request to request queue
+ AppController.getInstance().addToRequestQueue(strReq, tag_string_req);
+ }
+
+ private void registerUser(final String username, final String email,final String password) {
+ // Tag used to cancel the request
+ String tag_string_req = "req_register";
+ db.deleteUsers();
+ pDialog.setMessage("Registering ...");
+ showDialog();
+
+ StringRequest strReq = getStringRequestRegisterUser(username, email, password);
+
+ // Adding request to request queue
+ AppController.getInstance().addToRequestQueue(strReq, tag_string_req);
+ }
+
+ public void onClick(View view){
+ if(input_email.getText().toString().isEmpty()){
+ showMessage("Enter your E-Mail to reset your password");
+ return;
+ }
+
+ new AlertDialog.Builder(this)
+ .setTitle("Send password reset E-Mail")
+ .setMessage("Do you really want to reset your password? An E-Mail will be send to your address. Please follow the instructions to reset your password.")
+ .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog, int which) {
+ String tag_string_req = "requestpwreset";
+
+ StringRequest strReq = getStringRequestResetPW(input_email.getText().toString());
+
+ // Adding request to request queue
+ AppController.getInstance().addToRequestQueue(strReq, tag_string_req);
+ showMessage("E-Mail was sent to your address");
+ }
+ })
+ .setNegativeButton(android.R.string.no, new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog, int which) {
+ // do nothing
+ }
+ })
+ .setIcon(android.R.drawable.ic_dialog_alert)
+ .show();
+ }
+
+ private StringRequest getStringRequestSocialMediaLogin(final String key, final String providerType, final String username, final String email) {
+ return new StringRequest(Method.POST,
AppConfig.URL_REGISTER, new Response.Listener() {
@Override
@@ -248,37 +316,10 @@ public class LoginActivity extends AppCompatActivity implements FacebookButtonFr
}
};
-
- // Adding request to request queue
- AppController.getInstance().addToRequestQueue(strReq, tag_string_req);
}
- @Override
- protected void onActivityResult(int requestCode, int resultCode, Intent data) {
- if (requestCode == GooglePlusButtonFragment.RC_SIGN_IN) {
- GooglePlusButtonFragment fragment = (GooglePlusButtonFragment) getSupportFragmentManager().findFragmentById(R.id.fragment_btn_gp);
- fragment.onActivityResult(requestCode, resultCode, data);
- } else {
- super.onActivityResult(requestCode, resultCode, data);
- }
-
- TwitterButtonFragment twitter_fragment = (TwitterButtonFragment) getSupportFragmentManager().findFragmentById(R.id.fragment_btn_tw);
- if (twitter_fragment != null) {
- twitter_fragment.onActivityResult(requestCode, resultCode, data);
- }
- }
-
- /**
- * function to verify login details in mysql db
- * */
- private void checkLogin(final String email, final String password) {
- // Tag used to cancel the request
- String tag_string_req = "req_login";
- db.deleteUsers();
- pDialog.setMessage("Logging in ...");
- showDialog();
-
- StringRequest strReq = new StringRequest(Method.POST, AppConfig.URL_REGISTER, new Response.Listener() {
+ private StringRequest getStringRequestLogin(final String email, final String password) {
+ return new StringRequest(Method.POST, AppConfig.URL_REGISTER, new Response.Listener() {
@Override
public void onResponse(String response) {
@@ -291,10 +332,6 @@ public class LoginActivity extends AppCompatActivity implements FacebookButtonFr
// Check for error node in json
if (!error) {
- // user successfully logged in
- // Create login session
- session.setLogin(true);
-
// Now store the user in sqlite
String uid = jObj.getString("uid");
@@ -308,17 +345,45 @@ public class LoginActivity extends AppCompatActivity implements FacebookButtonFr
String updated_at = user.getString("updated_at");
String providerType = "local";
- // Inserting row in users table
- db.addUser(uid, username, name, surname, email, status, providerType, created_at, updated_at);
+ if(status.equals("0")){
+ new AlertDialog.Builder(thiscontext)
+ .setTitle("Activate your account")
+ .setMessage("Your account is not activated yet. Please follow the instructions in your E-Mail. Do you want to resent the E-Mail?")
+ .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog, int which) {
+ String tag_string_req = "resendactivationusermail";
- // Launch main activity
- Intent intent = new Intent(LoginActivity.this, MainActivity.class);
- startActivity(intent);
- finish();
+ StringRequest strReq = getStringRequestActivationLinkUser(input_email.getText().toString());
+
+ // Adding request to request queue
+ AppController.getInstance().addToRequestQueue(strReq, tag_string_req);
+ showMessage("E-Mail was sent to your address");
+ }
+ })
+ .setNegativeButton(android.R.string.no, new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog, int which) {
+ //do nothing
+ }
+ })
+ .setIcon(android.R.drawable.ic_dialog_alert)
+ .show();
+ }else {
+ // Inserting row in users table
+ db.addUser(uid, username, name, surname, email, status, providerType, created_at, updated_at);
+
+ // user successfully logged in
+ // Create login session
+ session.setLogin(true);
+
+ // Launch main activity
+ Intent intent = new Intent(LoginActivity.this, MainActivity.class);
+ startActivity(intent);
+ finish();
+ }
} else {
// Error in login. Get the error message
String errorMsg = jObj.getString("error_msg");
- Toast.makeText(getApplicationContext(),errorMsg, Toast.LENGTH_LONG).show();
+ Toast.makeText(getApplicationContext(), errorMsg, Toast.LENGTH_LONG).show();
}
} catch (JSONException e) {
// JSON error
@@ -349,56 +414,89 @@ public class LoginActivity extends AppCompatActivity implements FacebookButtonFr
}
};
-
- // Adding request to request queue
- AppController.getInstance().addToRequestQueue(strReq, tag_string_req);
}
- /**
- * Function to store user in MySQL database will post params(tag, name,* email, password) to register url
- * */
- private void registerUser(final String username, final String email,final String password) {
- // Tag used to cancel the request
- String tag_string_req = "req_register";
- db.deleteUsers();
- pDialog.setMessage("Registering ...");
- showDialog();
+ private StringRequest getStringRequestRegisterUser(final String username, final String email, final String password) {
+ return new StringRequest(Method.POST, AppConfig.URL_REGISTER, new Response.Listener() {
- StringRequest strReq = new StringRequest(Method.POST,
- AppConfig.URL_REGISTER, new Response.Listener() {
+ @Override
+ public void onResponse(String response) {
+ Log.d(TAG, "Register Response: " + response.toString());
+ hideDialog();
+
+ try {
+ JSONObject jObj = new JSONObject(response);
+ boolean error = jObj.getBoolean("error");
+ if (!error) {
+ new AlertDialog.Builder(getApplicationContext())
+ .setTitle("Activation Link")
+ .setMessage("An activation link was send to your e-mail address. Please follow the instructions to activate your account. Thank you!")
+ .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog, int which) {
+ //do nothing
+ }
+ })
+ .setIcon(android.R.drawable.ic_dialog_alert)
+ .show();
+
+ // Launch login activity
+ Intent intent = new Intent(
+ LoginActivity.this,
+ LoginActivity.class);
+ intent.putExtra(EXTRA_MESSAGE, "login");
+ startActivity(intent);
+ finish();
+ } else {
+
+ // Error occurred in registration. Get the error
+ // message
+ String errorMsg = jObj.getString("error_msg");
+ Toast.makeText(getApplicationContext(),
+ errorMsg, Toast.LENGTH_LONG).show();
+ }
+ } catch (JSONException e) {
+ e.printStackTrace();
+ }
+
+ }
+ }, new Response.ErrorListener() {
+
+ @Override
+ public void onErrorResponse(VolleyError error) {
+ Log.e(TAG, "Registration Error: " + error.getMessage());
+ Toast.makeText(getApplicationContext(),
+ error.getMessage(), Toast.LENGTH_LONG).show();
+ hideDialog();
+ }
+ }) {
+
+ @Override
+ protected Map getParams() {
+ // Posting params to register url
+ Map params = new HashMap();
+ params.put("tag", "register");
+ params.put("username", username);
+ params.put("email", email);
+ params.put("password", password);
+
+ return params;
+ }
+ };
+ }
+
+ private StringRequest getStringRequestResetPW(final String email) {
+ return new StringRequest(Method.POST, AppConfig.URL_REGISTER, new Response.Listener() {
@Override
public void onResponse(String response) {
- Log.d(TAG, "Register Response: " + response.toString());
+ Log.d(TAG, "Resend E-Mail Response: " + response.toString());
hideDialog();
try {
JSONObject jObj = new JSONObject(response);
boolean error = jObj.getBoolean("error");
if (!error) {
- // User successfully stored in MySQL
- // Now store the user in sqlite
- String uid = jObj.getString("uid");
-
- JSONObject user = jObj.getJSONObject("user");
- String username = user.getString("username");
- String name = user.getString("name");
- String surname = user.getString("surname");
- String email = user.getString("email");
- String status = user.getString("status");
- String created_at = user.getString("created_at");
- String updated_at = user.getString("updated_at");
- String providerType = "local";
-
- // Inserting row in users table
- db.addUser(uid, username, name, surname, email, status, providerType, created_at, updated_at);
- // Launch login activity
- Intent intent = new Intent(
- LoginActivity.this,
- LoginActivity.class);
- intent.putExtra(EXTRA_MESSAGE, "login");
- startActivity(intent);
- finish();
+ // do nothing actually
} else {
// Error occurred in registration. Get the error
@@ -416,7 +514,7 @@ public class LoginActivity extends AppCompatActivity implements FacebookButtonFr
@Override
public void onErrorResponse(VolleyError error) {
- Log.e(TAG, "Registration Error: " + error.getMessage());
+ Log.e(TAG, "E-Mail pw resend Error: " + error.getMessage());
Toast.makeText(getApplicationContext(),
error.getMessage(), Toast.LENGTH_LONG).show();
hideDialog();
@@ -427,18 +525,73 @@ public class LoginActivity extends AppCompatActivity implements FacebookButtonFr
protected Map getParams() {
// Posting params to register url
Map params = new HashMap();
- params.put("tag", "register");
- params.put("username", username);
+ params.put("tag", "requestpwreset");
params.put("email", email);
- params.put("password", password);
return params;
}
-
};
+ }
- // Adding request to request queue
- AppController.getInstance().addToRequestQueue(strReq, tag_string_req);
+ private StringRequest getStringRequestActivationLinkUser(final String email) {
+ return new StringRequest(Method.POST, AppConfig.URL_REGISTER, new Response.Listener() {
+
+ @Override
+ public void onResponse(String response) {
+ Log.d(TAG, "Resend E-Mail Response: " + response.toString());
+ hideDialog();
+
+ try {
+ JSONObject jObj = new JSONObject(response);
+ boolean error = jObj.getBoolean("error");
+ if (!error) {
+ // do nothing actually
+ } else {
+
+ // Error occurred in registration. Get the error
+ // message
+ String errorMsg = jObj.getString("error_msg");
+ Toast.makeText(getApplicationContext(),
+ errorMsg, Toast.LENGTH_LONG).show();
+ }
+ } catch (JSONException e) {
+ e.printStackTrace();
+ }
+
+ }
+ }, new Response.ErrorListener() {
+
+ @Override
+ public void onErrorResponse(VolleyError error) {
+ Log.e(TAG, "E-Mail pw resend Error: " + error.getMessage());
+ Toast.makeText(getApplicationContext(),
+ error.getMessage(), Toast.LENGTH_LONG).show();
+ hideDialog();
+ }
+ }) {
+
+ @Override
+ protected Map getParams() {
+ // Posting params to register url
+ Map params = new HashMap();
+ params.put("tag", "resendactivationusermail");
+ params.put("email", email);
+
+ return params;
+ }
+ };
+ }
+
+ private boolean isEmpty(TextView etText) {
+ return etText.getText().toString().trim().length() == 0;
+ }
+
+ public void showMessage(String statusText){
+ Toast.makeText(this, statusText, Toast.LENGTH_LONG).show();
+ }
+
+ public void onFragmentInteraction(Uri uri){
+ //you can leave it empty
}
private void showDialog() {
@@ -450,5 +603,4 @@ public class LoginActivity extends AppCompatActivity implements FacebookButtonFr
if (pDialog.isShowing())
pDialog.dismiss();
}
-
}
diff --git a/app/src/main/java/org/deke/risk/riskahead/ReportActivity.java b/app/src/main/java/org/deke/risk/riskahead/ReportActivity.java
new file mode 100644
index 0000000..7ae162a
--- /dev/null
+++ b/app/src/main/java/org/deke/risk/riskahead/ReportActivity.java
@@ -0,0 +1,50 @@
+package org.deke.risk.riskahead;
+
+import android.support.v7.app.ActionBarActivity;
+import android.os.Bundle;
+import android.view.Menu;
+import android.view.MenuItem;
+
+import org.deke.risk.riskahead.helper.BaseActivity;
+
+
+public class ReportActivity extends BaseActivity {
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_report);
+ }
+
+ @Override
+ public boolean onCreateOptionsMenu(Menu menu) {
+ // Inflate the menu; this adds items to the action bar if it is present.
+ getMenuInflater().inflate(R.menu.menu_report, menu);
+ return true;
+ }
+
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item) {
+ // Handle action bar item clicks here. The action bar will
+ // automatically handle clicks on the Home/Up button, so long
+ // as you specify a parent activity in AndroidManifest.xml.
+ int id = item.getItemId();
+
+ //noinspection SimplifiableIfStatement
+ if (id == R.id.action_settings) {
+ return true;
+ }
+
+ return super.onOptionsItemSelected(item);
+ }
+
+ @Override
+ protected int getLayoutResourceId() {
+ return 0;
+ }
+
+ @Override
+ protected String getActivityName() {
+ return null;
+ }
+}
diff --git a/app/src/main/java/org/deke/risk/riskahead/helper/BaseActivity.java b/app/src/main/java/org/deke/risk/riskahead/helper/BaseActivity.java
index 25ba705..d05859c 100644
--- a/app/src/main/java/org/deke/risk/riskahead/helper/BaseActivity.java
+++ b/app/src/main/java/org/deke/risk/riskahead/helper/BaseActivity.java
@@ -111,7 +111,7 @@ public abstract class BaseActivity extends AppCompatActivity {
}
private void addDrawerItems() {
- String[] osArray = { "Start", "Maps", "Profile", "Settings", "Subscription", "Logout" };
+ String[] osArray = { "Start", "Report", "Incident Map", "Profile", "Settings", "Subscription", "Logout" };
mAdapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, osArray);
mDrawerList.setAdapter(mAdapter);
diff --git a/app/src/main/res/drawable/logo_riskahead.png b/app/src/main/res/drawable/logo_riskahead.png
index 9f56647..9b62faa 100644
Binary files a/app/src/main/res/drawable/logo_riskahead.png and b/app/src/main/res/drawable/logo_riskahead.png differ
diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml
index 85b9bba..f2d0134 100644
--- a/app/src/main/res/layout/activity_login.xml
+++ b/app/src/main/res/layout/activity_login.xml
@@ -13,6 +13,9 @@
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
+ android:textSize="20sp"
+ android:typeface="sans"
+ android:textStyle="bold"
android:id="@+id/hello" />
@@ -117,6 +120,8 @@
@@ -12,14 +14,81 @@
android:layout_height="match_parent" >
+ android:layout_marginTop="52dp"
+ android:textColor="@color/white"/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ android:layout_centerHorizontal="true" />
+
+
+
+
diff --git a/app/src/main/res/layout/fragment_facebook_button.xml b/app/src/main/res/layout/fragment_facebook_button.xml
index f54f4e7..095c094 100644
--- a/app/src/main/res/layout/fragment_facebook_button.xml
+++ b/app/src/main/res/layout/fragment_facebook_button.xml
@@ -4,15 +4,7 @@
xmlns:bootstrap="http://schemas.android.com/apk/res-auto"
android:layout_height="match_parent"
tools:context="org.deke.risk.riskahead.fragments.FacebookButtonFragment">
-
+
+
+
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 0f17645..fc0f2de 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -1,9 +1,9 @@
RiskAhead
658657714234846
- New here? Please register to use our service!
- Already registrated? Please log in to use our service!
- Resend Password
+ Register to RiskAhead
+ Log-in to RiskAhead
+ Forgot your password?\nClick here
Settings
Terms of Service and\nPrivacy Policy
Full Name
@@ -43,4 +43,7 @@
Label
Location
search settings
+ ReportActivity
+
+ Hello world!