Improve asking for permissions

Signed-off-by: Mario Danic <mario@lovelyhq.com>
This commit is contained in:
Mario Danic 2017-12-11 01:36:09 +01:00
parent 26c7a3455a
commit 76571ff16f
2 changed files with 48 additions and 17 deletions

View File

@ -20,6 +20,7 @@
package com.nextcloud.talk.controllers; package com.nextcloud.talk.controllers;
import android.Manifest;
import android.app.SearchManager; import android.app.SearchManager;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
@ -82,6 +83,7 @@ import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.Disposable; import io.reactivex.disposables.Disposable;
import io.reactivex.schedulers.Schedulers; import io.reactivex.schedulers.Schedulers;
import retrofit2.HttpException; import retrofit2.HttpException;
import ru.alexbykov.nopermission.PermissionHelper;
@AutoInjector(NextcloudTalkApplication.class) @AutoInjector(NextcloudTalkApplication.class)
public class CallsListController extends BaseController implements SearchView.OnQueryTextListener, public class CallsListController extends BaseController implements SearchView.OnQueryTextListener,
@ -388,15 +390,29 @@ public class CallsListController extends BaseController implements SearchView.On
@Override @Override
public boolean onItemClick(int position) { public boolean onItemClick(int position) {
if (callItems.size() > position) { if (callItems.size() > position) {
overridePushHandler(new NoOpControllerChangeHandler());
overridePopHandler(new NoOpControllerChangeHandler()); PermissionHelper permissionHelper = new PermissionHelper(getActivity());
CallItem callItem = callItems.get(position); permissionHelper.check(Manifest.permission.CAMERA, Manifest.permission.RECORD_AUDIO)
Intent callIntent = new Intent(getActivity(), CallActivity.class); .onSuccess(new Runnable() {
BundleBuilder bundleBuilder = new BundleBuilder(new Bundle()); @Override
bundleBuilder.putString("roomToken", callItem.getModel().getToken()); public void run() {
bundleBuilder.putParcelable("userEntity", Parcels.wrap(userEntity)); overridePushHandler(new NoOpControllerChangeHandler());
callIntent.putExtras(bundleBuilder.build()); overridePopHandler(new NoOpControllerChangeHandler());
startActivity(callIntent); CallItem callItem = callItems.get(position);
Intent callIntent = new Intent(getActivity(), CallActivity.class);
BundleBuilder bundleBuilder = new BundleBuilder(new Bundle());
bundleBuilder.putString("roomToken", callItem.getModel().getToken());
bundleBuilder.putParcelable("userEntity", Parcels.wrap(userEntity));
callIntent.putExtras(bundleBuilder.build());
startActivity(callIntent);
}
})
.onDenied(new Runnable() {
@Override
public void run() {
}
})
.run();
} }
return true; return true;

View File

@ -20,6 +20,7 @@
package com.nextcloud.talk.controllers; package com.nextcloud.talk.controllers;
import android.Manifest;
import android.app.SearchManager; import android.app.SearchManager;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
@ -85,6 +86,7 @@ import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.Disposable; import io.reactivex.disposables.Disposable;
import io.reactivex.schedulers.Schedulers; import io.reactivex.schedulers.Schedulers;
import retrofit2.HttpException; import retrofit2.HttpException;
import ru.alexbykov.nopermission.PermissionHelper;
@AutoInjector(NextcloudTalkApplication.class) @AutoInjector(NextcloudTalkApplication.class)
public class ContactsController extends BaseController implements SearchView.OnQueryTextListener, public class ContactsController extends BaseController implements SearchView.OnQueryTextListener,
@ -455,14 +457,27 @@ public class ContactsController extends BaseController implements SearchView.OnQ
@Override @Override
public void onNext(RoomOverall roomOverall) { public void onNext(RoomOverall roomOverall) {
overridePushHandler(new NoOpControllerChangeHandler()); PermissionHelper permissionHelper = new PermissionHelper(getActivity());
overridePopHandler(new NoOpControllerChangeHandler()); permissionHelper.check(Manifest.permission.CAMERA, Manifest.permission.RECORD_AUDIO)
Intent callIntent = new Intent(getActivity(), CallActivity.class); .onSuccess(new Runnable() {
BundleBuilder bundleBuilder = new BundleBuilder(new Bundle()); @Override
bundleBuilder.putString("roomToken", roomOverall.getOcs().getData().getToken()); public void run() {
bundleBuilder.putParcelable("userEntity", Parcels.wrap(userEntity)); overridePushHandler(new NoOpControllerChangeHandler());
callIntent.putExtras(bundleBuilder.build()); overridePopHandler(new NoOpControllerChangeHandler());
startActivity(callIntent); Intent callIntent = new Intent(getActivity(), CallActivity.class);
BundleBuilder bundleBuilder = new BundleBuilder(new Bundle());
bundleBuilder.putString("roomToken", roomOverall.getOcs().getData().getToken());
bundleBuilder.putParcelable("userEntity", Parcels.wrap(userEntity));
callIntent.putExtras(bundleBuilder.build());
startActivity(callIntent);
}
})
.onDenied(new Runnable() {
@Override
public void run() {
}
})
.run();
} }
@Override @Override