Skip to content
This repository has been archived by the owner on Jun 17, 2022. It is now read-only.

Commit

Permalink
add permissionsdispatcher
Browse files Browse the repository at this point in the history
  • Loading branch information
sytolk committed Jul 15, 2016
1 parent 96ffa78 commit 77e2d0c
Show file tree
Hide file tree
Showing 5 changed files with 43 additions and 18 deletions.
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

This open source application is for clients of taxi companies. It`s using array of Taxi web services for communication with cars. The client can change the primary server or the server can be changed automatically if no connection.
With this application its easy to send request, view request status and can help clients to find taxi.
Supported Android from 2.2 and up.
Supported Android from 4.0 and up.

Currently the cloud web services (they are private) provide taxi support for city of Burgas and Blagoevgrad.

Expand Down Expand Up @@ -37,4 +37,4 @@ About translating, please visit https://hosted.weblate.org/projects/taxi-android

##Support

[![PayPayl donate button](https://img.shields.io/badge/paypal-donate-yellow.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=2W5ZTX3VEH9D2 "Donate once-off to this project using Paypal")
[![PayPal donate button](https://img.shields.io/badge/paypal-donate-yellow.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=2W5ZTX3VEH9D2 "Donate once-off to this project using Paypal")
12 changes: 8 additions & 4 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -52,23 +52,27 @@ dependencies {
compile(group: 'com.taxi-bulgaria.map', name: 'mapsforge', version: '0.6.1-SNAPSHOT') {
exclude(module: 'compatibility-v4')
exclude(group: 'com.android.support', module: 'support-v4')
/*changing = true*/
}
/*compile 'com.mobsandgeeks:android-saripaar:1.0.7-SNAPSHOT'*/
compile 'com.mobsandgeeks:android-saripaar:2.0.3'

compile 'com.github.hotchemi:permissionsdispatcher:2.1.3'
apt 'com.github.hotchemi:permissionsdispatcher-processor:2.1.3'
apt "org.androidannotations:androidannotations:$AAVersion"
compile "org.androidannotations:androidannotations-api:$AAVersion"
apt 'com.github.AleksanderMielczarek:AndroidAnnotationsPermissionsDispatcherPlugin:0.1.0'

compile group: 'ch.acra', name: 'acra', version: '4.7.0'
/*compile 'org.greenrobot:eventbus:3.0.0'*/
compile group: 'de.greenrobot', name: 'eventbus', version: '2.4.1'
//compile group: 'com.getbase', name: 'floatingactionbutton', version: '1.10.1'
compile 'net.i2p.android.ext:floatingactionbutton:1.10.1'
compile 'com.facebook.android:facebook-android-sdk:4.5.0'
/*compile(group: 'com.facebook.android', name: 'facebook-android-sdk', version: '4.5.0') {
/*compile 'com.facebook.android:facebook-android-sdk:4.5.0'*/
compile(group: 'com.facebook.android', name: 'facebook-android-sdk', version: '4.5.0') {
exclude(module: 'support-v4')
exclude(module: 'multidex')
}*/
}
compile group: 'com.github.nicolasjafelle', name: 'paginglistview', version: '1.3'
compile(group: 'it.sephiroth.android.library.targettooltip', name: 'target-tooltip-library', version: '1.3.11') {
exclude(module: 'appcompat-v7')
Expand Down Expand Up @@ -101,7 +105,7 @@ android {
applicationId "com.opentaxi.android"
minSdkVersion 14
targetSdkVersion 23
versionCode 41
versionCode 42
versionName "1.0.42"
vectorDrawables.useSupportLibrary = true
}
Expand Down
6 changes: 5 additions & 1 deletion proguard.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
#### spring restTemplate
-keep class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}
}
# -keep class org.springframework.** { *; }

-keepclassmembers public class org.springframework {
Expand All @@ -46,6 +46,10 @@
-keep class com.stil.** { *; }
-keep interface com.stil.** { *; }

#test todo remove
#-keep class org.mapsforge.** { *; }
#-keep interface org.mapsforge.** { *; }

## pojos models
-keep class com.taxibulgaria.** { *; }
-keep interface com.taxibulgaria.** { *; }
Expand Down
35 changes: 26 additions & 9 deletions src/main/java/com/opentaxi/android/MainActivity.java
Original file line number Diff line number Diff line change
@@ -1,21 +1,21 @@
package com.opentaxi.android;

import android.Manifest;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.IntentSender;
import android.content.pm.PackageManager;
import android.content.res.Configuration;
import android.location.Location;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.wifi.WifiManager;
import android.os.Bundle;
import android.support.design.widget.NavigationView;
import android.support.v4.app.ActivityCompat;
import android.support.design.widget.Snackbar;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
Expand Down Expand Up @@ -57,15 +57,19 @@
import net.i2p.android.ext.floatingactionbutton.FloatingActionButton;
import org.acra.ACRA;
import org.androidannotations.annotations.*;
import org.mapsforge.map.android.util.AndroidSupportUtil;
import permissions.dispatcher.NeedsPermission;
import permissions.dispatcher.OnNeverAskAgain;
import permissions.dispatcher.OnPermissionDenied;
import permissions.dispatcher.RuntimePermissions;
import pl.charmas.android.reactivelocation.ReactiveLocationProvider;
import rx.Observable;
import rx.Subscription;
import rx.functions.Action1;
import rx.functions.Func1;

@RuntimePermissions
@EActivity(R.layout.main)
public class MainActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener, OnCommandListener, ActivityCompat.OnRequestPermissionsResultCallback {
public class MainActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener, OnCommandListener {//, ActivityCompat.OnRequestPermissionsResultCallback {

private static final int REQUEST_USER_PASS_CODE = 10;
public static final int HELP = 11;
Expand Down Expand Up @@ -107,7 +111,7 @@ public class MainActivity extends AppCompatActivity implements NavigationView.On


//private boolean havePlayService = true;
private final byte PERMISSIONS_REQUEST_ACCESS_FINE_LOCATION = 10;
//private final byte PERMISSIONS_REQUEST_ACCESS_FINE_LOCATION = 10;

@Override
protected void onCreate(Bundle savedInstanceState) {
Expand All @@ -119,12 +123,13 @@ protected void onCreate(Bundle savedInstanceState) {
// Tell the activity we have menu items to contribute to the toolbar
//setHasOptionsMenu(true);

if (AndroidSupportUtil.runtimePermissionRequiredForAccessFineLocation(getApplicationContext())) {
/*if (AndroidSupportUtil.runtimePermissionRequiredForAccessFineLocation(getApplicationContext())) {
ActivityCompat.requestPermissions(this, new String[]{android.Manifest.permission.ACCESS_FINE_LOCATION}, PERMISSIONS_REQUEST_ACCESS_FINE_LOCATION);
} else startLocationProvider();
} else startLocationProvider();*/
MainActivityPermissionsDispatcher.startLocationProviderWithCheck(this);
}

@Override
/*@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
//Log.i(TAG, "onRequestPermissionsResult requestCode:" + requestCode);
Expand All @@ -137,9 +142,15 @@ public void onRequestPermissionsResult(int requestCode, String[] permissions, in
}
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
}*/
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
MainActivityPermissionsDispatcher.onRequestPermissionsResult(this, requestCode, grantResults);
}

private void startLocationProvider() {
@NeedsPermission(Manifest.permission.ACCESS_FINE_LOCATION)
void startLocationProvider() {
try {
if (playServicesConnected()) {

Expand Down Expand Up @@ -187,6 +198,12 @@ public Observable<Location> call(LocationSettingsResult locationSettingsResult)
}
}

@OnPermissionDenied(Manifest.permission.ACCESS_FINE_LOCATION)
@OnNeverAskAgain(Manifest.permission.ACCESS_FINE_LOCATION)
void showDeniedFor() {
Snackbar.make(fab,"no permission to location",Snackbar.LENGTH_LONG).show();
}

@Override
public void onBackPressed() {
if (drawer != null && drawer.isDrawerOpen(GravityCompat.START)) {
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/com/opentaxi/android/utils/ViewTools.java
Original file line number Diff line number Diff line change
Expand Up @@ -58,9 +58,9 @@ public static <T> T reflectiveRead(@NonNull Object object, @NonNull String field
try {
Field field = object.getClass().getDeclaredField(fieldName);
field.setAccessible(true);
return (T)field.get(object);
return (T) field.get(object);
} catch (Exception ex) {
Log.w("HACK", "Cannot read " + fieldName + " in " + object, ex);
Log.w("HACK", "Cannot read " + fieldName + " in " + object + ":" + ex.getMessage());
}
return null;
}
Expand Down

0 comments on commit 77e2d0c

Please sign in to comment.