diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index e69144f..fd746cf 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -29,6 +29,8 @@
android:protectionLevel="signature" />
+
@@ -39,6 +41,10 @@
android:name="com.facebook.sdk.ApplicationId"
android:value="@string/facebook_app_id" />
+
+
getParams() {
- // Posting params to register url
Map params = new HashMap<>();
params.put("tag", "getincidentcount");
params.put("uid", user.get("uid"));
diff --git a/app/src/main/java/org/deke/risk/riskahead/MapsActivity.java b/app/src/main/java/org/deke/risk/riskahead/MapsActivity.java
index 6d2532e..b2ad7e7 100644
--- a/app/src/main/java/org/deke/risk/riskahead/MapsActivity.java
+++ b/app/src/main/java/org/deke/risk/riskahead/MapsActivity.java
@@ -5,6 +5,7 @@ import android.app.SearchableInfo;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
+import android.graphics.Color;
import android.os.Bundle;
import android.support.v4.app.LoaderManager;
import android.support.v4.content.CursorLoader;
@@ -13,6 +14,8 @@ import android.support.v7.widget.SearchView;
import android.util.Log;
import android.view.Menu;
import android.view.View;
+import android.widget.EditText;
+import android.widget.TextView;
import android.widget.Toast;
import com.android.volley.Request;
@@ -67,7 +70,7 @@ public class MapsActivity extends BaseActivity implements LoaderManager.LoaderCa
ClusterManager mClusterManager;
private static final int DEFAULT_ZOOM_LEVEL = 14;
- private static final int THRESHOLD_ZOOM_LEVEL = 6;
+ private static final int THRESHOLD_ZOOM_LEVEL = 7;
@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -251,6 +254,11 @@ public class MapsActivity extends BaseActivity implements LoaderManager.LoaderCa
SearchableInfo searchInfo = searchManager.getSearchableInfo(getComponentName());
searchView.setSearchableInfo(searchInfo);
+ EditText txtSearch = ((EditText)searchView.findViewById(android.support.v7.appcompat.R.id.search_src_text));
+ txtSearch.setHint(getResources().getString(R.string.search_hint));
+ txtSearch.setHintTextColor(Color.LTGRAY);
+ txtSearch.setTextColor(Color.WHITE);
+
return true;
}
@@ -275,6 +283,7 @@ public class MapsActivity extends BaseActivity implements LoaderManager.LoaderCa
}
private StringRequest getStringRequestGetAllIncidentsWithPosition() {
+ showDialog();
return new StringRequest(Request.Method.POST, AppConfig.URL_REGISTER, new Response.Listener() {
@Override
@@ -310,12 +319,12 @@ public class MapsActivity extends BaseActivity implements LoaderManager.LoaderCa
Circle circle = mMap.addCircle(circleOptions);
*/
}
-
addHeatMap();
} else {
String errorMsg = jObj.getString("error_msg");
- Toast.makeText(getApplicationContext(), errorMsg, Toast.LENGTH_LONG).show();
+ Log.e(TAG, "Error getting map positions (server returned error): " + errorMsg);
+ showMessage(errorMsg);
}
} catch (JSONException e) {
e.printStackTrace();
@@ -323,32 +332,25 @@ public class MapsActivity extends BaseActivity implements LoaderManager.LoaderCa
}
}, new Response.ErrorListener() {
-
@Override
public void onErrorResponse(VolleyError error) {
- Log.e(TAG, "Report Error: " + error.getMessage());
- Toast.makeText(getApplicationContext(),
- error.getMessage(), Toast.LENGTH_LONG).show();
+ Log.e(TAG, "Error getting map positions: " + error.getMessage());
+ showMessage(getString(R.string.errormsg_couldnotretrieve));
hideDialog();
}
}) {
-
@Override
protected Map getParams() {
- // Posting parameters to login url
Map params = new HashMap<>();
params.put("tag", "getincidentswithposition");
params.put("uid", user.get("uid"));
params.put("token", user.get("token"));
-
return params;
}
-
};
}
-
@Override
public void onClusterItemInfoWindowClick(AppClusterItem appClusterItem) {
gotoViewReportActivity(appClusterItem.getID());
diff --git a/app/src/main/java/org/deke/risk/riskahead/ProfileActivity.java b/app/src/main/java/org/deke/risk/riskahead/ProfileActivity.java
index f296d58..7072982 100644
--- a/app/src/main/java/org/deke/risk/riskahead/ProfileActivity.java
+++ b/app/src/main/java/org/deke/risk/riskahead/ProfileActivity.java
@@ -100,21 +100,19 @@ public class ProfileActivity extends BaseActivity {
posts.setText(jObj.getString("posts"));
} else {
String errorMsg = jObj.getString("error_msg");
- Toast.makeText(getApplicationContext(),
- errorMsg, Toast.LENGTH_LONG).show();
+ Log.e(TAG, "Error getting user stats (server returned error): " + errorMsg);
+ showMessage(errorMsg);
}
} catch (JSONException e) {
e.printStackTrace();
}
-
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e(TAG, "Error getting user stats: " + error.getMessage());
- Toast.makeText(getApplicationContext(),
- error.getMessage(), Toast.LENGTH_LONG).show();
+ showMessage(getString(R.string.errormsg_couldnotretrieve));
}
}) {
@@ -132,12 +130,13 @@ public class ProfileActivity extends BaseActivity {
}
private StringRequest getStringRequestTop10() {
+ showDialog();
return new StringRequest(Request.Method.POST, AppConfig.URL_REGISTER, new Response.Listener() {
@Override
public void onResponse(String response) {
Log.d(TAG, "Top 10 stats: " + response);
-
+ hideDialog();
try {
JSONObject jObj = new JSONObject(response);
boolean error = jObj.getBoolean("error");
@@ -170,12 +169,10 @@ public class ProfileActivity extends BaseActivity {
tbltop10.addView(row,i+1);
}
-
-
} else {
String errorMsg = jObj.getString("error_msg");
- Toast.makeText(getApplicationContext(),
- errorMsg, Toast.LENGTH_LONG).show();
+ Log.e(TAG, "Error getting top 10 stats (Server returned error): " + errorMsg);
+ showMessage(errorMsg);
}
} catch (JSONException e) {
e.printStackTrace();
@@ -187,14 +184,13 @@ public class ProfileActivity extends BaseActivity {
@Override
public void onErrorResponse(VolleyError error) {
Log.e(TAG, "Error getting top 10 stats: " + error.getMessage());
- Toast.makeText(getApplicationContext(),
- error.getMessage(), Toast.LENGTH_LONG).show();
+ showMessage(getString(R.string.errormsg_couldnotretrieve));
+ hideDialog();
}
}) {
@Override
protected Map getParams() {
- // Posting params to register url
Map params = new HashMap<>();
params.put("tag", "gettop10");
params.put("uid", user.get("uid"));
diff --git a/app/src/main/java/org/deke/risk/riskahead/ReportActivity.java b/app/src/main/java/org/deke/risk/riskahead/ReportActivity.java
index 7b31b55..8cfd7d8 100644
--- a/app/src/main/java/org/deke/risk/riskahead/ReportActivity.java
+++ b/app/src/main/java/org/deke/risk/riskahead/ReportActivity.java
@@ -191,75 +191,6 @@ public class ReportActivity extends BaseActivity {
});
}
- private StringRequest getStringRequestAddIncidentWithPosition(final String textshort, final String textlong, final int crimecategory, final String latitude, final String longitude, final int status, final int radius, final String day, final String time) {
- return new StringRequest(Request.Method.POST, AppConfig.URL_REGISTER, new Response.Listener() {
-
- @Override
- public void onResponse(String response) {
- Log.d(TAG, "Report response: " + response);
-
- try {
- JSONObject jObj = new JSONObject(response);
- boolean error = jObj.getBoolean("error");
-
- if (!error) {
- showMessage("Report added!");
- SharedPreferences.Editor editor = getPreferences(MODE_PRIVATE).edit();
- editor.clear().commit();
- txtTitle.setText("");
- txtDescription.setText("");
- txtCrimeCategory.setSelection(0);
- txtDay.setText("");
- txtTime.setText("");
- txtPosition.setText("");
- findViewById(R.id.btn_report_position).setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- gotoMapActivity();
- }
- });
- gotoMapActivity(latitude+":"+longitude);
- } else {
- 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, "Report Error: " + error.getMessage());
- Toast.makeText(getApplicationContext(),
- error.getMessage(), Toast.LENGTH_LONG).show();
- hideDialog();
- }
- }) {
-
- @Override
- protected Map getParams() {
- // Posting parameters to login url
- Map params = new HashMap<>();
- params.put("tag", "addincidentwithposition");
- params.put("uid", user.get("uid"));
- params.put("token", user.get("token"));
- params.put("textshort",textshort);
- params.put("textlong",textlong);
- params.put("fiduser",user.get("uid"));
- params.put("fidcategory", Integer.toString(crimecategory));
- params.put("latitude",latitude);
- params.put("longitude",longitude);
- params.put("status",Integer.toString(status));
- params.put("radius",Integer.toString(radius));
- params.put("happened_at",year+"-"+month+"-"+day+" "+hour+":"+minute+":00");
-
- return params;
- }
- };
- }
-
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
@@ -354,13 +285,82 @@ public class ReportActivity extends BaseActivity {
AppController.getInstance().addToRequestQueue(strReq, tag_string_req);
}
- private StringRequest getStringRequestGetIncidentCategories() {
+ private StringRequest getStringRequestAddIncidentWithPosition(final String textshort, final String textlong, final int crimecategory, final String latitude, final String longitude, final int status, final int radius, final String day, final String time) {
+ showDialog();
return new StringRequest(Request.Method.POST, AppConfig.URL_REGISTER, new Response.Listener() {
@Override
public void onResponse(String response) {
- Log.d(TAG, "Incident categories response: " + response);
+ Log.d(TAG, "Report response: " + response);
+ hideDialog();
+ try {
+ JSONObject jObj = new JSONObject(response);
+ boolean error = jObj.getBoolean("error");
+ if (!error) {
+ showMessage("Report added!");
+ SharedPreferences.Editor editor = getPreferences(MODE_PRIVATE).edit();
+ editor.clear().commit();
+ txtTitle.setText("");
+ txtDescription.setText("");
+ txtCrimeCategory.setSelection(0);
+ txtDay.setText("");
+ txtTime.setText("");
+ txtPosition.setText("");
+ findViewById(R.id.btn_report_position).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ gotoMapActivity();
+ }
+ });
+ gotoMapActivity(latitude+":"+longitude);
+ } else {
+ String errorMsg = jObj.getString("error_msg");
+ Log.e(TAG, "Error adding incident (Server returned error): " + errorMsg);
+ showMessage(errorMsg);
+ }
+ } catch (JSONException e) {
+ e.printStackTrace();
+ }
+ }
+ }, new Response.ErrorListener() {
+ @Override
+ public void onErrorResponse(VolleyError error) {
+ Log.e(TAG, "Error adding incident: " + error.getMessage());
+ showMessage(getString(R.string.errormsg_couldnotretrieve));
+ hideDialog();
+ }
+ }) {
+
+ @Override
+ protected Map getParams() {
+ Map params = new HashMap<>();
+ params.put("tag", "addincidentwithposition");
+ params.put("uid", user.get("uid"));
+ params.put("token", user.get("token"));
+ params.put("textshort",textshort);
+ params.put("textlong",textlong);
+ params.put("fiduser",user.get("uid"));
+ params.put("fidcategory", Integer.toString(crimecategory));
+ params.put("latitude",latitude);
+ params.put("longitude",longitude);
+ params.put("status",Integer.toString(status));
+ params.put("radius",Integer.toString(radius));
+ params.put("happened_at",year+"-"+month+"-"+day+" "+hour+":"+minute+":00");
+
+ return params;
+ }
+ };
+ }
+
+
+ private StringRequest getStringRequestGetIncidentCategories() {
+ showDialog();
+ return new StringRequest(Request.Method.POST, AppConfig.URL_REGISTER, new Response.Listener() {
+ @Override
+ public void onResponse(String response) {
+ Log.d(TAG, "Incident categories response: " + response);
+ hideDialog();
try {
JSONObject jObj = new JSONObject(response);
boolean error = jObj.getBoolean("error");
@@ -386,7 +386,8 @@ public class ReportActivity extends BaseActivity {
} else {
String errorMsg = jObj.getString("error_msg");
- Toast.makeText(getApplicationContext(), errorMsg, Toast.LENGTH_LONG).show();
+ Log.e(TAG, "Error getting incident categories (Server returned error): " + errorMsg);
+ showMessage(errorMsg);
}
} catch (JSONException e) {
e.printStackTrace();
@@ -397,9 +398,9 @@ public class ReportActivity extends BaseActivity {
@Override
public void onErrorResponse(VolleyError error) {
- Log.e(TAG, "Report Error: " + error.getMessage());
- Toast.makeText(getApplicationContext(),
- error.getMessage(), Toast.LENGTH_LONG).show();
+ Log.e(TAG, "Error getting incident categories: " + error.getMessage());
+ showMessage(getString(R.string.errormsg_couldnotretrieve));
+ hideDialog();
}
}) {
diff --git a/app/src/main/java/org/deke/risk/riskahead/ReportlistActivity.java b/app/src/main/java/org/deke/risk/riskahead/ReportlistActivity.java
index 720e818..8ccbbf4 100644
--- a/app/src/main/java/org/deke/risk/riskahead/ReportlistActivity.java
+++ b/app/src/main/java/org/deke/risk/riskahead/ReportlistActivity.java
@@ -76,6 +76,7 @@ public class ReportlistActivity extends BaseActivity {
}
private StringRequest getStringRequestGetIncidentsWithPositionFromUserID() {
+ showDialog();
return new StringRequest(Request.Method.POST, AppConfig.URL_REGISTER, new Response.Listener() {
@Override
@@ -87,7 +88,6 @@ public class ReportlistActivity extends BaseActivity {
JSONObject jObj = new JSONObject(response);
boolean error = jObj.getBoolean("error");
- // Check for error node in json
if (!error) {
JSONArray incidents = jObj.getJSONArray("message");
resultList = new ArrayList<>();
@@ -104,12 +104,11 @@ public class ReportlistActivity extends BaseActivity {
myListView.setAdapter(myListAdapter);
} else {
- // Error in login. Get the error message
String errorMsg = jObj.getString("error_msg");
- Toast.makeText(getApplicationContext(), errorMsg, Toast.LENGTH_LONG).show();
+ Log.e(TAG, "Error getting incident list (Server returned error): " + errorMsg);
+ showMessage(errorMsg);
}
} catch (JSONException e) {
- // JSON error
e.printStackTrace();
}
@@ -118,25 +117,21 @@ public class ReportlistActivity extends BaseActivity {
@Override
public void onErrorResponse(VolleyError error) {
- Log.e(TAG, "Report Error: " + error.getMessage());
- Toast.makeText(getApplicationContext(),
- error.getMessage(), Toast.LENGTH_LONG).show();
+ Log.e(TAG, "Error getting incident list: " + error.getMessage());
+ showMessage(getString(R.string.errormsg_couldnotretrieve));
hideDialog();
}
}) {
@Override
protected Map getParams() {
- // Posting parameters to login url
Map params = new HashMap<>();
params.put("tag", "getincidentsfromuserid");
params.put("uid", user.get("uid"));
params.put("token", user.get("token"));
-
return params;
}
-
};
}
}
diff --git a/app/src/main/java/org/deke/risk/riskahead/SettingsActivity.java b/app/src/main/java/org/deke/risk/riskahead/SettingsActivity.java
index 0ed4287..44897d9 100644
--- a/app/src/main/java/org/deke/risk/riskahead/SettingsActivity.java
+++ b/app/src/main/java/org/deke/risk/riskahead/SettingsActivity.java
@@ -146,11 +146,13 @@ public class SettingsActivity extends BaseActivity {
protected String getActivityName() { return mActivityTitle; }
private StringRequest getStringChangeUserSettings() {
+ showDialog();
return new StringRequest(Request.Method.POST, AppConfig.URL_REGISTER, new Response.Listener() {
@Override
public void onResponse(String response) {
Log.d(TAG, "Change user settings: " + response);
+ hideDialog();
try {
JSONObject jObj = new JSONObject(response);
@@ -162,10 +164,9 @@ public class SettingsActivity extends BaseActivity {
finish();
startActivity(getIntent());
} else {
-
String errorMsg = jObj.getString("error_msg");
- Toast.makeText(getApplicationContext(),
- errorMsg, Toast.LENGTH_LONG).show();
+ Log.e(TAG, "Error getting user settings (Server returned error): " + errorMsg);
+ showMessage(errorMsg);
}
} catch (JSONException e) {
e.printStackTrace();
@@ -176,9 +177,9 @@ public class SettingsActivity extends BaseActivity {
@Override
public void onErrorResponse(VolleyError error) {
- Log.e(TAG, "Change user settings Error: " + error.getMessage());
- Toast.makeText(getApplicationContext(),
- error.getMessage(), Toast.LENGTH_LONG).show();
+ Log.e(TAG, "Error getting user settings: " + error.getMessage());
+ showMessage(getString(R.string.errormsg_couldnotretrieve));
+ hideDialog();
}
}) {
@@ -202,20 +203,23 @@ public class SettingsActivity extends BaseActivity {
}
private StringRequest getStringRequestResetPW(final String email) {
+ showDialog();
return new StringRequest(Request.Method.POST, AppConfig.URL_REGISTER, new Response.Listener() {
@Override
public void onResponse(String response) {
Log.d(TAG, "Resend E-Mail Response: " + response);
+ hideDialog();
try {
JSONObject jObj = new JSONObject(response);
boolean error = jObj.getBoolean("error");
if (!error) {
+ //do nothing
} else {
String errorMsg = jObj.getString("error_msg");
- Toast.makeText(getApplicationContext(),
- errorMsg, Toast.LENGTH_LONG).show();
+ Log.e(TAG, "Error request email reset (Server returned error): " + errorMsg);
+ showMessage(errorMsg);
}
} catch (JSONException e) {
e.printStackTrace();
@@ -226,9 +230,9 @@ public class SettingsActivity extends BaseActivity {
@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();
+ Log.e(TAG, "Error request email reset: " + error.getMessage());
+ showMessage(getString(R.string.errormsg_couldnotretrieve));
+ hideDialog();
}
}) {
diff --git a/app/src/main/java/org/deke/risk/riskahead/ViewReportActivity.java b/app/src/main/java/org/deke/risk/riskahead/ViewReportActivity.java
index 932d04b..d7c85bb 100644
--- a/app/src/main/java/org/deke/risk/riskahead/ViewReportActivity.java
+++ b/app/src/main/java/org/deke/risk/riskahead/ViewReportActivity.java
@@ -128,6 +128,7 @@ public class ViewReportActivity extends BaseActivity {
}
private StringRequest getStringRequestDeleteIncident(final String incidentid) {
+ showDialog();
return new StringRequest(Request.Method.POST, AppConfig.URL_REGISTER, new Response.Listener() {
@Override
@@ -139,14 +140,13 @@ public class ViewReportActivity extends BaseActivity {
JSONObject jObj = new JSONObject(response);
boolean error = jObj.getBoolean("error");
- // Check for error node in json
if (!error) {
showMessage("Incident deleted");
gotoProfileActivity();
} else {
- // Error in login. Get the error message
String errorMsg = jObj.getString("error_msg");
- Toast.makeText(getApplicationContext(), errorMsg, Toast.LENGTH_LONG).show();
+ Log.e(TAG, "Error deleting incident (Server returned error): " + errorMsg);
+ showMessage(errorMsg);
}
} catch (JSONException e) {
e.printStackTrace();
@@ -156,9 +156,8 @@ public class ViewReportActivity extends BaseActivity {
@Override
public void onErrorResponse(VolleyError error) {
- Log.e(TAG, "Report Error: " + error.getMessage());
- Toast.makeText(getApplicationContext(),
- error.getMessage(), Toast.LENGTH_LONG).show();
+ Log.e(TAG, "Error deleting incident: " + error.getMessage());
+ showMessage(getString(R.string.errormsg_couldnotretrieve));
hideDialog();
}
}) {
@@ -180,7 +179,7 @@ public class ViewReportActivity extends BaseActivity {
private StringRequest getStringRequestGetIncidentWithPositionFromID(final String incidentid) {
-
+ showDialog();
return new StringRequest(Request.Method.POST, AppConfig.URL_REGISTER, new Response.Listener() {
@Override
@@ -192,7 +191,6 @@ public class ViewReportActivity extends BaseActivity {
JSONObject jObj = new JSONObject(response);
boolean error = jObj.getBoolean("error");
- // Check for error node in json
if (!error) {
JSONObject incident = jObj.getJSONArray("message").getJSONObject(0);
@@ -244,9 +242,9 @@ public class ViewReportActivity extends BaseActivity {
} else {
- // Error in login. Get the error message
String errorMsg = jObj.getString("error_msg");
- Toast.makeText(getApplicationContext(), errorMsg, Toast.LENGTH_LONG).show();
+ Log.e(TAG, "Error get incident (Server returned error): " + errorMsg);
+ showMessage(errorMsg);
}
} catch (JSONException e) {
e.printStackTrace();
@@ -256,9 +254,8 @@ public class ViewReportActivity extends BaseActivity {
@Override
public void onErrorResponse(VolleyError error) {
- Log.e(TAG, "Report Error: " + error.getMessage());
- Toast.makeText(getApplicationContext(),
- error.getMessage(), Toast.LENGTH_LONG).show();
+ Log.e(TAG, "Error get incident: " + error.getMessage());
+ showMessage(getString(R.string.errormsg_couldnotretrieve));
hideDialog();
}
}) {
@@ -302,7 +299,8 @@ public class ViewReportActivity extends BaseActivity {
scorelabel.setText(jObj.getString("points"));
} else {
String errorMsg = jObj.getString("error_msg");
- Toast.makeText(getApplicationContext(), errorMsg, Toast.LENGTH_LONG).show();
+ Log.e(TAG, "Error get incident vote score (Server returned error): " + errorMsg);
+ showMessage(errorMsg);
}
} catch (JSONException e) {
e.printStackTrace();
@@ -312,9 +310,8 @@ public class ViewReportActivity extends BaseActivity {
@Override
public void onErrorResponse(VolleyError error) {
- Log.e(TAG, "Report Error: " + error.getMessage());
- Toast.makeText(getApplicationContext(),
- error.getMessage(), Toast.LENGTH_LONG).show();
+ Log.e(TAG, "Error get incident vote score: " + error.getMessage());
+ showMessage(getString(R.string.errormsg_couldnotretrieve));
hideDialog();
}
}) {
@@ -363,7 +360,8 @@ public class ViewReportActivity extends BaseActivity {
} else {
String errorMsg = jObj.getString("error_msg");
- Toast.makeText(getApplicationContext(), errorMsg, Toast.LENGTH_LONG).show();
+ Log.e(TAG, "Error voting incident (Server returned error): " + errorMsg);
+ showMessage(errorMsg);
}
} catch (JSONException e) {
e.printStackTrace();
@@ -373,9 +371,8 @@ public class ViewReportActivity extends BaseActivity {
@Override
public void onErrorResponse(VolleyError error) {
- Log.e(TAG, "Report Error: " + error.getMessage());
- Toast.makeText(getApplicationContext(),
- error.getMessage(), Toast.LENGTH_LONG).show();
+ Log.e(TAG, "Error voting incident: " + error.getMessage());
+ showMessage(getString(R.string.errormsg_couldnotretrieve));
hideDialog();
}
}) {
diff --git a/app/src/main/java/org/deke/risk/riskahead/helper/AppController.java b/app/src/main/java/org/deke/risk/riskahead/helper/AppController.java
index b9ddecd..0a1f34d 100644
--- a/app/src/main/java/org/deke/risk/riskahead/helper/AppController.java
+++ b/app/src/main/java/org/deke/risk/riskahead/helper/AppController.java
@@ -2,8 +2,8 @@ package org.deke.risk.riskahead.helper;
import android.app.Application;
import android.text.TextUtils;
-import android.util.Log;
+import com.android.volley.DefaultRetryPolicy;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.toolbox.Volley;
@@ -12,6 +12,8 @@ import com.beardedhen.androidbootstrap.TypefaceProvider;
public class AppController extends Application {
public static final String TAG = AppController.class.getSimpleName();
+ private static final int MY_SOCKET_TIMEOUT_MS = 10000;
+ private static final int MY_SOCKET_RETRIES_MS = 3;
private RequestQueue mRequestQueue;
private static AppController mInstance;
@@ -38,6 +40,9 @@ public class AppController extends Application {
public void addToRequestQueue(Request req, String tag) {
req.setTag(TextUtils.isEmpty(tag) ? TAG : tag);
+ req.setRetryPolicy(new DefaultRetryPolicy(MY_SOCKET_TIMEOUT_MS,
+ MY_SOCKET_RETRIES_MS,
+ DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
getRequestQueue().add(req);
}
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 226ca79..c78cf1e 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
@@ -1,9 +1,15 @@
package org.deke.risk.riskahead.helper;
+import android.app.AlertDialog;
import android.app.ProgressDialog;
+import android.content.Context;
+import android.content.DialogInterface;
import android.content.Intent;
import android.content.res.Configuration;
+import android.net.ConnectivityManager;
+import android.net.NetworkInfo;
import android.net.Uri;
+import android.os.Handler;
import android.support.v4.widget.DrawerLayout;
import android.os.Bundle;
import android.support.v7.app.ActionBarDrawerToggle;
@@ -17,6 +23,11 @@ import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.Toast;
+import com.android.volley.toolbox.StringRequest;
+import com.google.android.gms.ads.AdListener;
+import com.google.android.gms.ads.AdRequest;
+import com.google.android.gms.ads.InterstitialAd;
+
import org.deke.risk.riskahead.LoginActivity;
import org.deke.risk.riskahead.MainActivity;
import org.deke.risk.riskahead.MapsActivity;
@@ -25,7 +36,6 @@ import org.deke.risk.riskahead.ReportActivity;
import org.deke.risk.riskahead.ProfileActivity;
import org.deke.risk.riskahead.ReportlistActivity;
import org.deke.risk.riskahead.SettingsActivity;
-import org.deke.risk.riskahead.StartActivity;
import org.deke.risk.riskahead.SubscriptionsActivity;
import org.deke.risk.riskahead.ViewReportActivity;
@@ -46,10 +56,15 @@ public abstract class BaseActivity extends AppCompatActivity {
public HashMap user;
public ProgressDialog pDialog;
+ Handler mHandler = new Handler();
+ private final static int INTERVAL = 1000 * 300; //300 seconds
+ InterstitialAd mInterstitialAd;
+
public void userHasToBeLoggedIn(){
if (!session.isLoggedIn()) {
logout();
}
+ isNetworkAvailable();
}
@Override
@@ -57,10 +72,26 @@ public abstract class BaseActivity extends AppCompatActivity {
super.onCreate(savedInstanceState);
setContentView(getLayoutResourceId());
+ mInterstitialAd = new InterstitialAd(getApplicationContext());
+ mInterstitialAd.setAdUnitId(getString(R.string.banner_ad_unit_id));
+
+ mInterstitialAd.setAdListener(new AdListener() {
+ @Override
+ public void onAdClosed() {
+ requestNewInterstitial();
+ }
+ });
+
+ requestNewInterstitial();
+
+
+
overridePendingTransition(R.anim.fade_in_anim, R.anim.fade_out_anim);
pDialog = new ProgressDialog(this);
pDialog.setCancelable(false);
+ pDialog.setTitle(getString(R.string.progress_getdata_title));
+ pDialog.setMessage(getString(R.string.progress_getdata_text));
session = new SessionManager(getApplicationContext());
user = session.getUserDetails();
@@ -86,6 +117,64 @@ public abstract class BaseActivity extends AppCompatActivity {
getSupportActionBar().setHomeButtonEnabled(true);
}
+ private void requestNewInterstitial() {
+ AdRequest adRequest = new AdRequest.Builder()
+ .addTestDevice("1C182703CED1D65AE86F9E51E94ECDE7")
+ .build();
+
+ mInterstitialAd.loadAd(adRequest);
+ }
+
+ @Override
+ protected void onPause(){
+ super.onPause();
+ stopRepeatingTask();
+ }
+
+ @Override
+ protected void onResume(){
+ super.onResume();
+ startRepeatingTask();
+ }
+
+ Runnable mHandlerTask = new Runnable()
+ {
+ @Override
+ public void run() {
+ if (mInterstitialAd.isLoaded()) {
+ mInterstitialAd.show();
+ }
+ mHandler.postDelayed(mHandlerTask, INTERVAL);
+ }
+ };
+
+ void startRepeatingTask()
+ {
+ mHandlerTask.run();
+ }
+
+ void stopRepeatingTask()
+ {
+ mHandler.removeCallbacks(mHandlerTask);
+ }
+
+ public void isNetworkAvailable() {
+ ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
+ NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
+ if(activeNetworkInfo == null){
+ new AlertDialog.Builder(this)
+ .setTitle(getString(R.string.alert_internetconnection_title))
+ .setMessage(getString(R.string.alert_internetconnection_text))
+ .setNeutralButton(android.R.string.yes, new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog, int which) {
+ logoutUser();
+ }
+ })
+ .setIcon(android.R.drawable.ic_dialog_alert)
+ .show();
+ }
+ }
+
public void logoutUser() {
session.removeUser();
logout();
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index d011120..6453a9b 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -1,6 +1,7 @@
RiskAhead
658657714234846
+ ca-app-pub-3940256099942544/6300978111
Login
Register
@@ -109,5 +110,10 @@
E-Mail was sent to your e-mail address
Activation E-Mail
An activation link was send to your e-mail address. Please follow the instructions to activate your account. Thank you!
+ No Internet Connection
+ You need an active internet connection to use this app. Please turn on your internet connection and login again.
+ Could not retrieve data from server. Please check internet connection.
+ Please wait...
+ Retrieve data from server