DT @27.11.2015: Fehler-handling verbessert und implementiert, Adds eingebaut

This commit is contained in:
Dennis Thießen
2015-11-27 14:34:59 +01:00
parent 23c2a84802
commit 28b9ac96fe
11 changed files with 261 additions and 162 deletions

View File

@@ -29,6 +29,8 @@
android:protectionLevel="signature" />
<!-- Google Maps Fragment API Key Data -->
<meta-data android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="AIzaSyALm-1lEf5xualfyHdmNEdAsXlbwOQhbI8" />
@@ -39,6 +41,10 @@
android:name="com.facebook.sdk.ApplicationId"
android:value="@string/facebook_app_id" />
<activity android:name="com.google.android.gms.ads.AdActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
android:theme="@android:style/Theme.Translucent" />
<activity
android:name=".StartActivity"
android:screenOrientation="portrait"

View File

@@ -34,8 +34,7 @@ public class MainActivity extends BaseActivity{
Handler mHandler = new Handler();
private final static int INTERVAL = 1000 * 10; //10 seconds
private TextView incidentCount;
private final static int INTERVAL = 1000 * 20; //20 seconds
@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -46,7 +45,6 @@ public class MainActivity extends BaseActivity{
msg_input = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);
fragmentManager = getSupportFragmentManager();
incidentCount = (TextView) findViewById(R.id.txt_main_incidents);
findViewById(R.id.btn_main_report).setOnClickListener(new View.OnClickListener() {
@Override
@@ -63,6 +61,18 @@ public class MainActivity extends BaseActivity{
});
}
@Override
protected int getLayoutResourceId() {
return R.layout.activity_main;
}
@Override
protected String getActivityName() {
return mActivityTitle;
}
@Override
protected void onPause(){
super.onPause();
@@ -75,16 +85,6 @@ public class MainActivity extends BaseActivity{
startRepeatingTask();
}
@Override
protected int getLayoutResourceId() {
return R.layout.activity_main;
}
@Override
protected String getActivityName() {
return mActivityTitle;
}
Runnable mHandlerTask = new Runnable()
{
@Override
@@ -121,8 +121,8 @@ public class MainActivity extends BaseActivity{
count.setText(jObj.getString("msg"));
} else {
String errorMsg = jObj.getString("error_msg");
Toast.makeText(getApplicationContext(),
errorMsg, Toast.LENGTH_LONG).show();
Log.e(TAG, "Error getting incident count (server returned error): " + errorMsg);
showMessage(errorMsg);
}
} catch (JSONException e) {
e.printStackTrace();
@@ -134,15 +134,13 @@ public class MainActivity extends BaseActivity{
@Override
public void onErrorResponse(VolleyError error) {
Log.e(TAG, "Error getting incident count: " + error.getMessage());
Toast.makeText(getApplicationContext(),
error.getMessage(), Toast.LENGTH_LONG).show();
showMessage(getString(R.string.errormsg_couldnotretrieve));
stopRepeatingTask();
}
}) {
@Override
protected Map<String, String> getParams() {
// Posting params to register url
Map<String, String> params = new HashMap<>();
params.put("tag", "getincidentcount");
params.put("uid", user.get("uid"));

View File

@@ -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<AppClusterItem> 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<String>() {
@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<String, String> getParams() {
// Posting parameters to login url
Map<String, String> 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());

View File

@@ -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<String>() {
@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<String, String> getParams() {
// Posting params to register url
Map<String, String> params = new HashMap<>();
params.put("tag", "gettop10");
params.put("uid", user.get("uid"));

View File

@@ -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<String>() {
@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<String, String> getParams() {
// Posting parameters to login url
Map<String, String> 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<String>() {
@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<String, String> getParams() {
Map<String, String> 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<String>() {
@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();
}
}) {

View File

@@ -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<String>() {
@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<String, String> getParams() {
// Posting parameters to login url
Map<String, String> params = new HashMap<>();
params.put("tag", "getincidentsfromuserid");
params.put("uid", user.get("uid"));
params.put("token", user.get("token"));
return params;
}
};
}
}

View File

@@ -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<String>() {
@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<String>() {
@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();
}
}) {

View File

@@ -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<String>() {
@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<String>() {
@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();
}
}) {

View File

@@ -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 <T> void addToRequestQueue(Request<T> 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);
}

View File

@@ -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<String, String> 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();

View File

@@ -1,6 +1,7 @@
<resources>
<string name="app_name">RiskAhead</string>
<string name="facebook_app_id">658657714234846</string>
<string name="banner_ad_unit_id">ca-app-pub-3940256099942544/6300978111</string>
<string name="btn_start_login">Login</string>
<string name="btn_start_register">Register</string>
@@ -109,5 +110,10 @@
<string name="alert_accactivation_confirmation">E-Mail was sent to your e-mail address</string>
<string name="alert_accregistration_title">Activation E-Mail</string>
<string name="alert_accregistration_text">An activation link was send to your e-mail address. Please follow the instructions to activate your account. Thank you!</string>
<string name="alert_internetconnection_title">No Internet Connection</string>
<string name="alert_internetconnection_text">You need an active internet connection to use this app. Please turn on your internet connection and login again.</string>
<string name="errormsg_couldnotretrieve">Could not retrieve data from server. Please check internet connection.</string>
<string name="progress_getdata_text">Please wait...</string>
<string name="progress_getdata_title">Retrieve data from server</string>
</resources>