@11.02.16 Dennis Thießen: 2.0.1

This commit is contained in:
Dennis Thießen
2016-02-12 10:06:54 +01:00
parent 56838a161d
commit edb15e2b65
6 changed files with 129 additions and 22 deletions

View File

@@ -19,8 +19,8 @@ android {
applicationId "org.deke.risk.riskahead"
minSdkVersion 15
targetSdkVersion 23
versionCode 28
versionName "2.0"
versionCode 29
versionName "2.0.1"
}
buildTypes {
release {

View File

@@ -4,12 +4,14 @@ import android.app.SearchManager;
import android.app.SearchableInfo;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.res.ColorStateList;
import android.database.Cursor;
import android.graphics.Color;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.v4.app.ActivityCompat;
import android.support.v4.app.LoaderManager;
import android.support.v4.content.ContextCompat;
import android.support.v4.content.CursorLoader;
@@ -39,6 +41,8 @@ import com.google.android.gms.maps.model.Marker;
import com.google.android.gms.maps.model.MarkerOptions;
import com.google.android.gms.maps.model.TileOverlay;
import com.google.android.gms.maps.model.TileOverlayOptions;
import com.google.android.gms.plus.Plus;
import com.google.android.gms.plus.model.people.Person;
import com.google.maps.android.clustering.Cluster;
import com.google.maps.android.clustering.ClusterManager;
import com.google.maps.android.heatmaps.HeatmapTileProvider;
@@ -76,6 +80,7 @@ public class MapsActivity extends BaseActivity implements LoaderManager.LoaderCa
private static final int DEFAULT_ZOOM_LEVEL = 14;
private static final int THRESHOLD_ZOOM_LEVEL = 10;
private static final int MY_PERMISSIONS_REQUEST_LOCATION = 12;
private Double PRELOAD_PERCENTAGE = 0.3;
private int MIN_ZOOM_LEVEL = 9;
@@ -108,9 +113,10 @@ public class MapsActivity extends BaseActivity implements LoaderManager.LoaderCa
super.onCreate(savedInstanceState);
userHasToBeLoggedIn();
if(session.getSubsPremium()){
if (session.getSubsPremium()) {
MIN_ZOOM_LEVEL = 7;
}else{
} else {
MIN_ZOOM_LEVEL = 9;
}
@@ -135,9 +141,41 @@ public class MapsActivity extends BaseActivity implements LoaderManager.LoaderCa
System.gc();
}
@Override
public void onRequestPermissionsResult(int requestCode,
String permissions[], int[] grantResults) {
switch (requestCode) {
case MY_PERMISSIONS_REQUEST_LOCATION: {
// If request is cancelled, the result arrays are empty.
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
try{
mMap.setMyLocationEnabled(true);
}catch(SecurityException e){
}
} else {
}
return;
}
// other 'case' lines to check for other
// permissions this app might request
}
}
private void initMap() {
mMap.getUiSettings().setZoomControlsEnabled(true);
if (ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this,new String[]{android.Manifest.permission.ACCESS_FINE_LOCATION,android.Manifest.permission.ACCESS_COARSE_LOCATION},1);
}else{
mMap.setMyLocationEnabled(true);
}
mMap.setOnMapClickListener(new GoogleMap.OnMapClickListener() {
@Override

View File

@@ -1,11 +1,14 @@
package org.deke.risk.riskahead.fragment;
import android.Manifest;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.IntentSender;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Bundle;
import android.support.v4.app.ActivityCompat;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
@@ -36,6 +39,7 @@ public class GooglePlusButtonFragment extends Fragment implements GoogleApiClien
public static final int RC_SIGN_IN = 0;
private static final String TAG = "MainActivity";
private static final int MY_PERMISSIONS_REQUEST_ACCOUNTS = 32;
private GoogleApiClient mGoogleApiClient;
@@ -78,6 +82,11 @@ public class GooglePlusButtonFragment extends Fragment implements GoogleApiClien
}
private void performClickAction() {
if (ActivityCompat.checkSelfPermission(getActivity(), Manifest.permission.GET_ACCOUNTS) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(getActivity(), new String[]{Manifest.permission.GET_ACCOUNTS}, MY_PERMISSIONS_REQUEST_ACCOUNTS);
}else{
if(mGoogleApiClient.isConnected()){
Person currentPerson = getProfileInformation();
((LoginActivity) getActivity()).handleSocialMediaLogin(currentPerson.getId(),"google",currentPerson.getDisplayName(),Plus.AccountApi.getAccountName(mGoogleApiClient));
@@ -85,6 +94,33 @@ public class GooglePlusButtonFragment extends Fragment implements GoogleApiClien
signInWithGplus();
}
}
}
@Override
public void onRequestPermissionsResult(int requestCode,
String permissions[], int[] grantResults) {
switch (requestCode) {
case MY_PERMISSIONS_REQUEST_ACCOUNTS: {
// If request is cancelled, the result arrays are empty.
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
if(mGoogleApiClient.isConnected()){
Person currentPerson = getProfileInformation();
((LoginActivity) getActivity()).handleSocialMediaLogin(currentPerson.getId(),"google",currentPerson.getDisplayName(),Plus.AccountApi.getAccountName(mGoogleApiClient));
}else{
signInWithGplus();
}
} else {
}
return;
}
// other 'case' lines to check for other
// permissions this app might request
}
}
@Override
public void onStart() {

View File

@@ -1,5 +1,6 @@
package org.deke.risk.riskahead.helper;
import android.Manifest;
import android.app.ActivityManager;
import android.app.AlarmManager;
import android.app.AlertDialog;
@@ -14,10 +15,12 @@ import android.content.pm.PackageManager;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.graphics.drawable.ColorDrawable;
import android.location.LocationManager;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.Uri;
import android.os.Bundle;
import android.support.v4.app.ActivityCompat;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
@@ -43,6 +46,8 @@ 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 com.google.android.gms.plus.Plus;
import com.google.android.gms.plus.model.people.Person;
import com.mikepenz.google_material_typeface_library.GoogleMaterial;
import com.mikepenz.materialdrawer.AccountHeader;
import com.mikepenz.materialdrawer.AccountHeaderBuilder;
@@ -126,6 +131,7 @@ public abstract class BaseActivity extends AppCompatActivity {
} else if (onStartCount == 1) {
onStartCount++;
onStartCount++;
}
}
@@ -137,6 +143,7 @@ public abstract class BaseActivity extends AppCompatActivity {
//overridePendingTransition(R.anim.fade_in_anim, R.anim.fade_out_anim);
//overridePendingTransition(android.R.anim.slide_in_left, android.R.anim.slide_out_right);
onStartCount = 1;
if (savedInstanceState == null) // 1st time
{
@@ -161,7 +168,13 @@ public abstract class BaseActivity extends AppCompatActivity {
if(!isMyNotificationServiceRunning()){
if(!isMyNotificationServiceRunning() && session.getNotificationEnabled()){
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.ACCESS_FINE_LOCATION,Manifest.permission.ACCESS_COARSE_LOCATION},1);
return;
}
Log.d(TAG,"onCreate: NotificationService not running. Starting service...");
Intent wtdSServiceIntent = new Intent(this, NotificationService.class);
@@ -367,17 +380,30 @@ public abstract class BaseActivity extends AppCompatActivity {
}
public void showAd(){
if(System.currentTimeMillis() == 0) session.setLastAddShown(System.currentTimeMillis());
if(System.currentTimeMillis() > session.getLastAddShown()+120000){
Log.d(TAG, "SHOW ADD!");
if (mInterstitialAd.isLoaded()) {
Log.d(TAG, "Loading Add...");
if(!(session.getSubsNoAds() || session.getSubsPremium())){
mInterstitialAd.show();
session.setLastAddShown(System.currentTimeMillis());
}else{
Log.d(TAG,"Add not shown because user has status.");
}
}
}else{
Log.d(TAG, "SHOW NO ADD ( TIME NOT OUT ) !");
}
}
public void isNetworkAvailable() {
ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
if(activeNetworkInfo == null){
@@ -402,7 +428,7 @@ public abstract class BaseActivity extends AppCompatActivity {
public void handleVolleyErrorResponse() {
showMessage(getString(R.string.errormsg_couldnotretrieve));
logoutUser();
//logoutUser();
}
public void logout() {

View File

@@ -69,17 +69,13 @@ public class NotificationService extends Service {
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
LocationListener locationListener = new MyLocationListener();
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
// TODO: Consider calling
// ActivityCompat#requestPermissions
// here to request the missing permissions, and then overriding
// public void onRequestPermissionsResult(int requestCode, String[] permissions,
// int[] grantResults)
// to handle the case where the user grants the permission. See the documentation
// for ActivityCompat#requestPermissions for more details.
return;
}
//ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.ACCESS_FINE_LOCATION,Manifest.permission.ACCESS_COARSE_LOCATION},1);
}else{
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 5000, 10, locationListener);
}
Log.d(TAG, "Service Created. Starting notification task...");
mNotifyTask.run();

View File

@@ -59,6 +59,8 @@ public class SessionManager {
public static final String KEY_SUBS_NOADS = "subs_noads";
public static final String KEY_SUBS_PREMIUM = "subs_premium";
public static final String KEY_LAST_ADD_SHOWN = "lastaddschown";
public SessionManager(Context context) {
this._context = context;
status = _context.getSharedPreferences(PREF_NAME, PRIVATE_MODE);
@@ -95,6 +97,15 @@ public class SessionManager {
return status.getBoolean(KEY_NOTIFY_GPS, true);
}
public void setLastAddShown(Long time){
statusEditor.putLong(KEY_LAST_ADD_SHOWN, time);
statusEditor.apply();
}
public Long getLastAddShown(){
return status.getLong(KEY_LAST_ADD_SHOWN, 0);
}
public void setLastNotification(String time){
statusEditor.putString(KEY_LAST_NOTIFICATION, time);
statusEditor.apply();
@@ -129,7 +140,7 @@ public class SessionManager {
}
public Boolean getNotificationEnabled(){
return status.getBoolean(KEY_NOTIFY_ENABLED, true);
return status.getBoolean(KEY_NOTIFY_ENABLED, false);
}
public void setSubsNoAds(boolean isEnabled){