1
0
mirror of https://github.com/oliexdev/openScale.git synced 2025-08-23 16:53:04 +02:00

try calling method again if permission was granted

This commit is contained in:
OliE
2018-02-10 14:48:02 +01:00
parent 0703607ceb
commit ce7a8469ad
5 changed files with 141 additions and 175 deletions

View File

@@ -70,8 +70,6 @@ public class MainActivity extends AppCompatActivity {
private static int bluetoothStatusIcon = R.drawable.ic_bluetooth_disabled; private static int bluetoothStatusIcon = R.drawable.ic_bluetooth_disabled;
private static MenuItem bluetoothStatus; private static MenuItem bluetoothStatus;
private boolean permGrantedCoarseLocation;
private Fragment currentFragment; private Fragment currentFragment;
private DrawerLayout drawerLayout; private DrawerLayout drawerLayout;
private Toolbar toolbar; private Toolbar toolbar;
@@ -96,7 +94,6 @@ public class MainActivity extends AppCompatActivity {
setContentView(R.layout.activity_main); setContentView(R.layout.activity_main);
currentFragment = null; currentFragment = null;
permGrantedCoarseLocation = false;
// Set a Toolbar to replace the ActionBar. // Set a Toolbar to replace the ActionBar.
toolbar = (Toolbar) findViewById(R.id.toolbar); toolbar = (Toolbar) findViewById(R.id.toolbar);
@@ -387,6 +384,8 @@ public class MainActivity extends AppCompatActivity {
String deviceName = prefs.getString("btDeviceName", "-"); String deviceName = prefs.getString("btDeviceName", "-");
boolean permGrantedCoarseLocation = false;
// Check if Bluetooth 4.x is available // Check if Bluetooth 4.x is available
if (deviceName != "openScale_MCU") { if (deviceName != "openScale_MCU") {
permGrantedCoarseLocation = PermissionHelper.requestBluetoothPermission(this, false); permGrantedCoarseLocation = PermissionHelper.requestBluetoothPermission(this, false);
@@ -407,9 +406,6 @@ public class MainActivity extends AppCompatActivity {
if (!OpenScale.getInstance(getApplicationContext()).startSearchingForBluetooth(deviceName, callbackBtHandler)) { if (!OpenScale.getInstance(getApplicationContext()).startSearchingForBluetooth(deviceName, callbackBtHandler)) {
Toast.makeText(getApplicationContext(), deviceName + " " + getResources().getString(R.string.label_bt_device_no_support), Toast.LENGTH_SHORT).show(); Toast.makeText(getApplicationContext(), deviceName + " " + getResources().getString(R.string.label_bt_device_no_support), Toast.LENGTH_SHORT).show();
} }
} else {
setBluetoothStatusIcon(R.drawable.ic_bluetooth_disabled);
Toast.makeText(getApplicationContext(), getResources().getString(R.string.permission_not_granted), Toast.LENGTH_SHORT).show();
} }
} }
@@ -467,15 +463,17 @@ public class MainActivity extends AppCompatActivity {
@Override @Override
public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) { public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
switch (requestCode) { switch (requestCode) {
case PermissionHelper.PERMISSIONS_REQUEST_ACCESS_COARSE_LOCATION: { case PermissionHelper.PERMISSIONS_REQUEST_ACCESS_COARSE_LOCATION:
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
permGrantedCoarseLocation = true; invokeSearchBluetoothDevice();
} else { } else {
permGrantedCoarseLocation = false; setBluetoothStatusIcon(R.drawable.ic_bluetooth_disabled);
Toast.makeText(getApplicationContext(), getResources().getString(R.string.permission_not_granted), Toast.LENGTH_SHORT).show();
} }
return; break;
}
} }
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
} }

View File

@@ -87,9 +87,6 @@ public class TableFragment extends Fragment implements FragmentUpdateListener {
private SharedPreferences prefs; private SharedPreferences prefs;
private LinearLayout subpageView; private LinearLayout subpageView;
private boolean permGrantedReadAccess;
private boolean permGrantedWriteAccess;
private ArrayList <MeasurementView> measurementsList; private ArrayList <MeasurementView> measurementsList;
private int selectedSubpageNr; private int selectedSubpageNr;
@@ -143,9 +140,6 @@ public class TableFragment extends Fragment implements FragmentUpdateListener {
selectedSubpageNr = savedInstanceState.getInt(SELECTED_SUBPAGE_NR_KEY); selectedSubpageNr = savedInstanceState.getInt(SELECTED_SUBPAGE_NR_KEY);
} }
permGrantedReadAccess = false;
permGrantedWriteAccess = false;
OpenScale.getInstance(getContext()).registerFragment(this); OpenScale.getInstance(getContext()).registerFragment(this);
return tableView; return tableView;
@@ -297,115 +291,50 @@ public class TableFragment extends Fragment implements FragmentUpdateListener {
private class onClickListenerImport implements View.OnClickListener { private class onClickListenerImport implements View.OnClickListener {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
if (PermissionHelper.requestReadPermission(getActivity())) {
permGrantedReadAccess = PermissionHelper.requestReadPermission(getActivity()); importTable();
if (!permGrantedReadAccess) {
Toast.makeText(getContext(), getResources().getString(R.string.permission_not_granted), Toast.LENGTH_SHORT).show();
return;
} }
int selectedUserId = OpenScale.getInstance(getContext()).getSelectedScaleUserId();
if (selectedUserId == -1)
{
AlertDialog.Builder infoDialog = new AlertDialog.Builder(v.getContext());
infoDialog.setMessage(getResources().getString(R.string.info_no_selected_user));
infoDialog.setPositiveButton(getResources().getString(R.string.label_ok), null);
infoDialog.show();
}
else
{
AlertDialog.Builder filenameDialog = new AlertDialog.Builder(getActivity());
filenameDialog.setTitle(getResources().getString(R.string.info_set_filename) + " /sdcard ...");
String exportFilename = prefs.getString("exportFilename", "/openScale_data_" + OpenScale.getInstance(getContext()).getSelectedScaleUser().getUserName() + ".csv");
final EditText txtFilename = new EditText(tableView.getContext());
txtFilename.setText(exportFilename);
filenameDialog.setView(txtFilename);
filenameDialog.setPositiveButton(getResources().getString(R.string.label_ok), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
OpenScale.getInstance(getContext()).importData(Environment.getExternalStorageDirectory().getPath() + txtFilename.getText().toString());
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(tableView.getContext());
prefs.edit().putString("exportFilename", txtFilename.getText().toString()).commit();
updateOnView(OpenScale.getInstance(getContext()).getScaleMeasurementList());
}
});
filenameDialog.setNegativeButton(getResources().getString(R.string.label_cancel), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.dismiss();
}
});
filenameDialog.show();
}
} }
} }
private class onClickListenerExport implements View.OnClickListener { private void importTable() {
@Override int selectedUserId = OpenScale.getInstance(getContext()).getSelectedScaleUserId();
public void onClick(View v) {
permGrantedWriteAccess = PermissionHelper.requestWritePermission(getActivity()); if (selectedUserId == -1)
{
AlertDialog.Builder infoDialog = new AlertDialog.Builder(getContext());
if (!permGrantedWriteAccess) { infoDialog.setMessage(getResources().getString(R.string.info_no_selected_user));
Toast.makeText(getContext(), getResources().getString(R.string.permission_not_granted), Toast.LENGTH_SHORT).show();
return;
}
infoDialog.setPositiveButton(getResources().getString(R.string.label_ok), null);
infoDialog.show();
}
else
{
AlertDialog.Builder filenameDialog = new AlertDialog.Builder(getActivity()); AlertDialog.Builder filenameDialog = new AlertDialog.Builder(getActivity());
filenameDialog.setTitle(getResources().getString(R.string.info_set_filename) + " " + Environment.getExternalStorageDirectory().getPath()); filenameDialog.setTitle(getResources().getString(R.string.info_set_filename) + " /sdcard ...");
final ScaleUser selectedScaleUser = OpenScale.getInstance(getContext()).getSelectedScaleUser(); String exportFilename = prefs.getString("exportFilename", "/openScale_data_" + OpenScale.getInstance(getContext()).getSelectedScaleUser().getUserName() + ".csv");
String exportFilename = prefs.getString("exportFilename" + selectedScaleUser.getId(), "openScale_data_" + selectedScaleUser.getUserName() + ".csv");
final EditText txtFilename = new EditText(tableView.getContext()); final EditText txtFilename = new EditText(tableView.getContext());
txtFilename.setText(exportFilename); txtFilename.setText(exportFilename);
filenameDialog.setView(txtFilename); filenameDialog.setView(txtFilename);
filenameDialog.setPositiveButton(getResources().getString(R.string.label_export), new DialogInterface.OnClickListener() { filenameDialog.setPositiveButton(getResources().getString(R.string.label_ok), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) { public void onClick(DialogInterface dialog, int id) {
String fullPath = Environment.getExternalStorageDirectory().getPath() + "/" + txtFilename.getText().toString(); OpenScale.getInstance(getContext()).importData(Environment.getExternalStorageDirectory().getPath() + txtFilename.getText().toString());
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(tableView.getContext());
if (OpenScale.getInstance(getContext()).exportData(fullPath)) { prefs.edit().putString("exportFilename", txtFilename.getText().toString()).commit();
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(tableView.getContext()); updateOnView(OpenScale.getInstance(getContext()).getScaleMeasurementList());
prefs.edit().putString("exportFilename" + selectedScaleUser.getId(), txtFilename.getText().toString()).commit();
Toast.makeText(getContext(), getResources().getString(R.string.info_data_exported) + " " + fullPath, Toast.LENGTH_SHORT).show();
}
} }
}); });
filenameDialog.setNeutralButton(getResources().getString(R.string.label_share), new DialogInterface.OnClickListener() { filenameDialog.setNegativeButton(getResources().getString(R.string.label_cancel), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) { public void onClick(DialogInterface dialog, int id) {
String fullPath = Environment.getExternalStorageDirectory().getPath() + "/tmp/" + txtFilename.getText().toString(); dialog.dismiss();
if (!OpenScale.getInstance(getContext()).exportData(fullPath)) {
return;
}
Intent intentShareFile = new Intent(Intent.ACTION_SEND);
File shareFile = new File(fullPath);
if(shareFile.exists()) {
intentShareFile.setType("text/comma-separated-values");
intentShareFile.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://"+fullPath));
intentShareFile.putExtra(Intent.EXTRA_SUBJECT, "openScale export csv file");
intentShareFile.putExtra(Intent.EXTRA_TEXT, txtFilename.getText().toString());
startActivity(Intent.createChooser(intentShareFile, getResources().getString(R.string.label_share)));
}
} }
}); });
@@ -414,26 +343,87 @@ public class TableFragment extends Fragment implements FragmentUpdateListener {
} }
} }
private class onClickListenerExport implements View.OnClickListener {
@Override
public void onClick(View v) {
if (PermissionHelper.requestWritePermission(getActivity())) {
exportTable();
}
}
}
private void exportTable() {
AlertDialog.Builder filenameDialog = new AlertDialog.Builder(getActivity());
filenameDialog.setTitle(getResources().getString(R.string.info_set_filename) + " " + Environment.getExternalStorageDirectory().getPath());
final ScaleUser selectedScaleUser = OpenScale.getInstance(getContext()).getSelectedScaleUser();
String exportFilename = prefs.getString("exportFilename" + selectedScaleUser.getId(), "openScale_data_" + selectedScaleUser.getUserName() + ".csv");
final EditText txtFilename = new EditText(tableView.getContext());
txtFilename.setText(exportFilename);
filenameDialog.setView(txtFilename);
filenameDialog.setPositiveButton(getResources().getString(R.string.label_export), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
String fullPath = Environment.getExternalStorageDirectory().getPath() + "/" + txtFilename.getText().toString();
if (OpenScale.getInstance(getContext()).exportData(fullPath)) {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(tableView.getContext());
prefs.edit().putString("exportFilename" + selectedScaleUser.getId(), txtFilename.getText().toString()).commit();
Toast.makeText(getContext(), getResources().getString(R.string.info_data_exported) + " " + fullPath, Toast.LENGTH_SHORT).show();
}
}
});
filenameDialog.setNeutralButton(getResources().getString(R.string.label_share), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
String fullPath = Environment.getExternalStorageDirectory().getPath() + "/tmp/" + txtFilename.getText().toString();
if (!OpenScale.getInstance(getContext()).exportData(fullPath)) {
return;
}
Intent intentShareFile = new Intent(Intent.ACTION_SEND);
File shareFile = new File(fullPath);
if(shareFile.exists()) {
intentShareFile.setType("text/comma-separated-values");
intentShareFile.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://"+fullPath));
intentShareFile.putExtra(Intent.EXTRA_SUBJECT, "openScale export csv file");
intentShareFile.putExtra(Intent.EXTRA_TEXT, txtFilename.getText().toString());
startActivity(Intent.createChooser(intentShareFile, getResources().getString(R.string.label_share)));
}
}
});
filenameDialog.show();
}
@Override @Override
public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) { public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
switch (requestCode) { switch (requestCode) {
case PermissionHelper.PERMISSIONS_REQUEST_ACCESS_READ_STORAGE: { case PermissionHelper.PERMISSIONS_REQUEST_ACCESS_READ_STORAGE:
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
permGrantedReadAccess = true; importTable();
} else { } else {
permGrantedReadAccess = false; Toast.makeText(getContext(), getResources().getString(R.string.permission_not_granted), Toast.LENGTH_SHORT).show();
} }
return; break;
} case PermissionHelper.PERMISSIONS_REQUEST_ACCESS_WRITE_STORAGE:
case PermissionHelper.PERMISSIONS_REQUEST_ACCESS_WRITE_STORAGE: {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
permGrantedWriteAccess = true; exportTable();
} else { } else {
permGrantedWriteAccess = false; Toast.makeText(getContext(), getResources().getString(R.string.permission_not_granted), Toast.LENGTH_SHORT).show();
} }
return; break;
}
} }
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
} }
private class onClickListenerMoveSubpageLeft implements View.OnClickListener { private class onClickListenerMoveSubpageLeft implements View.OnClickListener {

View File

@@ -45,9 +45,6 @@ public class BackupPreferences extends PreferenceFragment {
private static final String PREFERENCE_KEY_IMPORT_BACKUP = "importBackup"; private static final String PREFERENCE_KEY_IMPORT_BACKUP = "importBackup";
private static final String PREFERENCE_KEY_EXPORT_BACKUP = "exportBackup"; private static final String PREFERENCE_KEY_EXPORT_BACKUP = "exportBackup";
private boolean permGrantedReadAccess;
private boolean permGrantedWriteAccess;
private Preference importBackup; private Preference importBackup;
private Preference exportBackup; private Preference exportBackup;
@@ -63,9 +60,6 @@ public class BackupPreferences extends PreferenceFragment {
exportBackup = (Preference) findPreference(PREFERENCE_KEY_EXPORT_BACKUP); exportBackup = (Preference) findPreference(PREFERENCE_KEY_EXPORT_BACKUP);
exportBackup.setOnPreferenceClickListener(new onClickListenerExportBackup()); exportBackup.setOnPreferenceClickListener(new onClickListenerExportBackup());
permGrantedReadAccess = false;
permGrantedWriteAccess = false;
initSummary(getPreferenceScreen()); initSummary(getPreferenceScreen());
} }
@@ -122,18 +116,8 @@ public class BackupPreferences extends PreferenceFragment {
private class onClickListenerImportBackup implements Preference.OnPreferenceClickListener { private class onClickListenerImportBackup implements Preference.OnPreferenceClickListener {
@Override @Override
public boolean onPreferenceClick(Preference preference) { public boolean onPreferenceClick(Preference preference) {
File exportDir = new File(Environment.getExternalStorageDirectory(), PreferenceManager.getDefaultSharedPreferences(getActivity().getApplicationContext()).getString("exportDir", "openScale Backup")); if (PermissionHelper.requestReadPermission(getActivity())) {
importBackup();
importBackup("openScale.db", exportDir);
OpenScale openScale = OpenScale.getInstance(getActivity().getApplicationContext());
openScale.reopenDatabase();
List<ScaleUser> scaleUserList = openScale.getScaleUserList();
if (!scaleUserList.isEmpty()) {
openScale.selectScaleUser(scaleUserList.get(0).getId());
openScale.updateScaleData();
} }
return true; return true;
@@ -143,21 +127,18 @@ public class BackupPreferences extends PreferenceFragment {
private class onClickListenerExportBackup implements Preference.OnPreferenceClickListener { private class onClickListenerExportBackup implements Preference.OnPreferenceClickListener {
@Override @Override
public boolean onPreferenceClick(Preference preference) { public boolean onPreferenceClick(Preference preference) {
File exportDir = new File(Environment.getExternalStorageDirectory(), PreferenceManager.getDefaultSharedPreferences(getActivity().getApplicationContext()).getString("exportDir", "openScale Backup")); if (PermissionHelper.requestWritePermission(getActivity())) {
exportBackup();
exportBackup("openScale.db", exportDir); }
return true; return true;
} }
} }
private boolean importBackup(String databaseName, File exportDir) { private boolean importBackup() {
permGrantedReadAccess = PermissionHelper.requestReadPermission(getActivity()); File exportDir = new File(Environment.getExternalStorageDirectory(), PreferenceManager.getDefaultSharedPreferences(getActivity().getApplicationContext()).getString("exportDir", "openScale Backup"));
if (!permGrantedReadAccess) { String databaseName = "openScale.db";
Toast.makeText(getActivity().getApplicationContext(), getResources().getString(R.string.permission_not_granted), Toast.LENGTH_SHORT).show();
return false;
}
if (!isExternalStoragePresent()) if (!isExternalStoragePresent())
return false; return false;
@@ -179,16 +160,23 @@ public class BackupPreferences extends PreferenceFragment {
return false; return false;
} }
OpenScale openScale = OpenScale.getInstance(getActivity().getApplicationContext());
openScale.reopenDatabase();
List<ScaleUser> scaleUserList = openScale.getScaleUserList();
if (!scaleUserList.isEmpty()) {
openScale.selectScaleUser(scaleUserList.get(0).getId());
openScale.updateScaleData();
}
return true; return true;
} }
private boolean exportBackup(String databaseName, File exportDir) { private boolean exportBackup() {
permGrantedWriteAccess = PermissionHelper.requestWritePermission(getActivity()); File exportDir = new File(Environment.getExternalStorageDirectory(), PreferenceManager.getDefaultSharedPreferences(getActivity().getApplicationContext()).getString("exportDir", "openScale Backup"));
if (!permGrantedWriteAccess) { String databaseName = "openScale.db";
Toast.makeText(getActivity().getApplicationContext(), getResources().getString(R.string.permission_not_granted), Toast.LENGTH_SHORT).show();
return false;
}
if (!isExternalStoragePresent()) if (!isExternalStoragePresent())
return false; return false;
@@ -233,22 +221,22 @@ public class BackupPreferences extends PreferenceFragment {
@Override @Override
public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) { public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
switch (requestCode) { switch (requestCode) {
case PermissionHelper.PERMISSIONS_REQUEST_ACCESS_READ_STORAGE: { case PermissionHelper.PERMISSIONS_REQUEST_ACCESS_READ_STORAGE:
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
permGrantedReadAccess = true; importBackup();
} else { } else {
permGrantedReadAccess = false; Toast.makeText(getActivity().getApplicationContext(), getResources().getString(R.string.permission_not_granted), Toast.LENGTH_SHORT).show();
} }
return; break;
} case PermissionHelper.PERMISSIONS_REQUEST_ACCESS_WRITE_STORAGE:
case PermissionHelper.PERMISSIONS_REQUEST_ACCESS_WRITE_STORAGE: {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
permGrantedWriteAccess = true; exportBackup();
} else { } else {
permGrantedWriteAccess = false; Toast.makeText(getActivity().getApplicationContext(), getResources().getString(R.string.permission_not_granted), Toast.LENGTH_SHORT).show();
} }
return; break;
}
} }
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
} }
} }

View File

@@ -51,8 +51,6 @@ public class BluetoothPreferences extends PreferenceFragment implements SharedPr
private static final String PREFERENCE_KEY_BLUETOOTH_IGNOREOUTOFRANGE = "ignoreOutOfRange"; private static final String PREFERENCE_KEY_BLUETOOTH_IGNOREOUTOFRANGE = "ignoreOutOfRange";
private static final String PREFERENCE_KEY_BLUETOOTH_SCANNER = "btScanner"; private static final String PREFERENCE_KEY_BLUETOOTH_SCANNER = "btScanner";
private boolean permGrantedCoarseLocation;
private CheckBoxPreference smartAssignEnable; private CheckBoxPreference smartAssignEnable;
private CheckBoxPreference ignoreOutOfRangeEnable; private CheckBoxPreference ignoreOutOfRangeEnable;
private PreferenceScreen btScanner; private PreferenceScreen btScanner;
@@ -136,8 +134,6 @@ public class BluetoothPreferences extends PreferenceFragment implements SharedPr
public void onCreate(Bundle savedInstanceState) { public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
permGrantedCoarseLocation = false;
btAdapter = BluetoothAdapter.getDefaultAdapter(); btAdapter = BluetoothAdapter.getDefaultAdapter();
addPreferencesFromResource(R.xml.bluetooth_preferences); addPreferencesFromResource(R.xml.bluetooth_preferences);
@@ -226,14 +222,9 @@ public class BluetoothPreferences extends PreferenceFragment implements SharedPr
private class onClickListenerScannerSelect implements Preference.OnPreferenceClickListener { private class onClickListenerScannerSelect implements Preference.OnPreferenceClickListener {
@Override @Override
public boolean onPreferenceClick(Preference preference) { public boolean onPreferenceClick(Preference preference) {
permGrantedCoarseLocation = PermissionHelper.requestBluetoothPermission(getActivity(), true); if (PermissionHelper.requestBluetoothPermission(getActivity(), true)) {
if (permGrantedCoarseLocation) {
startSearching(); startSearching();
} else { }
Toast.makeText(getActivity().getApplicationContext(), getResources().getString(R.string.permission_not_granted), Toast.LENGTH_SHORT).show();
}
return true; return true;
} }
} }
@@ -259,9 +250,9 @@ public class BluetoothPreferences extends PreferenceFragment implements SharedPr
switch (requestCode) { switch (requestCode) {
case PermissionHelper.PERMISSIONS_REQUEST_ACCESS_COARSE_LOCATION: { case PermissionHelper.PERMISSIONS_REQUEST_ACCESS_COARSE_LOCATION: {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
permGrantedCoarseLocation = true; startSearching();
} else { } else {
permGrantedCoarseLocation = false; Toast.makeText(getActivity().getApplicationContext(), getResources().getString(R.string.permission_not_granted), Toast.LENGTH_SHORT).show();
} }
return; return;
} }

View File

@@ -25,7 +25,6 @@ import android.content.DialogInterface;
import android.content.Intent; import android.content.Intent;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.support.v4.app.ActivityCompat; import android.support.v4.app.ActivityCompat;
import android.support.v4.content.ContextCompat;
import android.widget.Toast; import android.widget.Toast;
import com.health.openscale.R; import com.health.openscale.R;
@@ -56,7 +55,7 @@ public class PermissionHelper {
} }
} }
if (ContextCompat.checkSelfPermission(activity, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { if (ActivityCompat.checkSelfPermission(activity, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
AlertDialog.Builder builder = new AlertDialog.Builder(activity); AlertDialog.Builder builder = new AlertDialog.Builder(activity);
builder.setMessage(R.string.permission_bluetooth_info) builder.setMessage(R.string.permission_bluetooth_info)
@@ -79,7 +78,7 @@ public class PermissionHelper {
} }
public static boolean requestReadPermission(final Activity activity) { public static boolean requestReadPermission(final Activity activity) {
if (ContextCompat.checkSelfPermission(activity, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { if (ActivityCompat.checkSelfPermission(activity, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(activity, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, PERMISSIONS_REQUEST_ACCESS_READ_STORAGE); ActivityCompat.requestPermissions(activity, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, PERMISSIONS_REQUEST_ACCESS_READ_STORAGE);
} else { } else {
return true; return true;
@@ -89,7 +88,7 @@ public class PermissionHelper {
} }
public static boolean requestWritePermission(final Activity activity) { public static boolean requestWritePermission(final Activity activity) {
if (ContextCompat.checkSelfPermission(activity, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { if (ActivityCompat.checkSelfPermission(activity, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(activity, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, PERMISSIONS_REQUEST_ACCESS_WRITE_STORAGE); ActivityCompat.requestPermissions(activity, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, PERMISSIONS_REQUEST_ACCESS_WRITE_STORAGE);
} else { } else {
return true; return true;