Skip to content
This repository has been archived by the owner on Aug 8, 2023. It is now read-only.

Commit

Permalink
[android] removed location permission checks from the test app
Browse files Browse the repository at this point in the history
  • Loading branch information
LukasPaczos committed Mar 1, 2018
1 parent f160bff commit 46359cd
Show file tree
Hide file tree
Showing 3 changed files with 3 additions and 85 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,23 +7,17 @@
import android.content.pm.PackageManager;
import android.content.res.Resources;
import android.os.AsyncTask;
import android.os.Build;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.StringRes;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.text.TextUtils;

import com.mapbox.mapboxsdk.testapp.R;
import com.mapbox.mapboxsdk.testapp.adapter.FeatureAdapter;
import com.mapbox.mapboxsdk.testapp.adapter.FeatureSectionAdapter;
import com.mapbox.mapboxsdk.testapp.model.activity.Feature;
import com.mapbox.mapboxsdk.testapp.utils.ItemClickSupport;
import com.mapbox.android.core.permissions.PermissionsListener;
import com.mapbox.android.core.permissions.PermissionsManager;

import java.util.ArrayList;
import java.util.Collections;
Expand All @@ -39,23 +33,19 @@
* It uses tags as category and description to order the different entries.
* </p>
*/
public class FeatureOverviewActivity extends AppCompatActivity implements PermissionsListener {
public class FeatureOverviewActivity extends AppCompatActivity {

private static final String KEY_STATE_FEATURES = "featureList";

private PermissionsManager permissionsManager;
private RecyclerView recyclerView;
private FeatureSectionAdapter sectionAdapter;
private List<Feature> features;
private int locationActivityInList;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_feature_overview);

permissionsManager = new PermissionsManager(this);

recyclerView = (RecyclerView) findViewById(R.id.recyclerView);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
recyclerView.addOnItemTouchListener(new RecyclerView.SimpleOnItemTouchListener());
Expand All @@ -65,11 +55,6 @@ protected void onCreate(Bundle savedInstanceState) {
if (!sectionAdapter.isSectionHeaderPosition(position)) {
int itemPosition = sectionAdapter.getConvertedPosition(position);
Feature feature = features.get(itemPosition);
if (feature.isRequiresLocationPermission()) {
if (requestLocationPermission(itemPosition)) {
return;
}
}
startFeature(feature);
}
});
Expand Down Expand Up @@ -118,45 +103,6 @@ private void startFeature(Feature feature) {
startActivity(intent);
}

private boolean requestLocationPermission(final int positionInList) {
if (isRuntimePermissionsRequired()) {
locationActivityInList = positionInList;
permissionsManager.requestLocationPermissions(this);
return true;
}
return false;
}

@Override
public void onExplanationNeeded(List<String> list) {
Snackbar.make(
findViewById(android.R.id.content),
TextUtils.join("", list.toArray()),
Snackbar.LENGTH_SHORT).show();
}

@Override
public void onPermissionResult(boolean isPermissionGranted) {
if (isPermissionGranted) {
startFeature(features.get(locationActivityInList));
} else {
Snackbar.make(
findViewById(android.R.id.content),
"Can't open without accepting the location permission.",
Snackbar.LENGTH_SHORT).show();
}
}

@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
permissionsManager.onRequestPermissionsResult(requestCode, permissions, grantResults);
}

private boolean isRuntimePermissionsRequired() {
return android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.M;
}

@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
Expand All @@ -178,8 +124,7 @@ protected List<Feature> doInBackground(PackageInfo... params) {
String label = getString(info.labelRes);
String description = resolveString(info.descriptionRes);
String category = resolveMetaData(info.metaData, metaDataKey);
boolean requiresLocationPermission = requiresLocationPermission(label, category);
features.add(new Feature(info.name, label, description, category, requiresLocationPermission));
features.add(new Feature(info.name, label, description, category));
}
}

Expand Down Expand Up @@ -213,24 +158,6 @@ private String resolveString(@StringRes int stringRes) {
}
}

private boolean requiresLocationPermission(String name, String category) {
final Resources resources = getResources();

List<String> requiresPermissionCategories = new ArrayList<String>() {
{
add(resources.getString(R.string.category_userlocation));
}
};

List<String> requiresPermissionActivities = new ArrayList<String>() {
{
add(resources.getString(R.string.activity_double_map));
}
};

return requiresPermissionCategories.contains(category) || requiresPermissionActivities.contains(name);
}

@Override
protected void onPostExecute(List<Feature> features) {
super.onPostExecute(features);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,22 +9,19 @@ public class Feature implements Parcelable {
private String label;
private String description;
private String category;
private boolean requiresLocationPermission;

public Feature(String name, String label, String description, String category, boolean requiresLocationPermission) {
public Feature(String name, String label, String description, String category) {
this.name = name;
this.label = label;
this.description = description;
this.category = category;
this.requiresLocationPermission = requiresLocationPermission;
}

private Feature(Parcel in) {
name = in.readString();
label = in.readString();
description = in.readString();
category = in.readString();
requiresLocationPermission = in.readByte() != 0;
}

public String getName() {
Expand All @@ -48,10 +45,6 @@ public String getCategory() {
return category;
}

public boolean isRequiresLocationPermission() {
return requiresLocationPermission;
}

public int describeContents() {
return 0;
}
Expand All @@ -61,7 +54,6 @@ public void writeToParcel(Parcel out, int flags) {
out.writeString(label);
out.writeString(description);
out.writeString(category);
out.writeByte((byte) (requiresLocationPermission ? 1 : 0));
}

public static final Parcelable.Creator<Feature> CREATOR
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
<string name="category_infowindow">Info Window</string>
<string name="category_maplayout">Map Layout</string>
<string name="category_offline">Offline</string>
<string name="category_userlocation">User Location</string>
<string name="category_style">Styling</string>
<string name="category_features">Features</string>
<string name="category_storage">Storage</string>
Expand Down

0 comments on commit 46359cd

Please sign in to comment.