mirror of
https://github.com/oliexdev/openScale.git
synced 2025-09-02 21:02:48 +02:00
HACK to call RequestPermissionResult(...) in PreferenceFragment otherwise API level > 23 is required
This commit is contained in:
@@ -473,6 +473,7 @@ public class MainActivity extends AppCompatActivity {
|
||||
break;
|
||||
}
|
||||
|
||||
currentFragment.onRequestPermissionsResult(requestCode, permissions, grantResults);
|
||||
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
|
||||
}
|
||||
|
||||
|
@@ -15,6 +15,7 @@
|
||||
*/
|
||||
package com.health.openscale.gui.activities;
|
||||
|
||||
import android.app.Fragment;
|
||||
import android.graphics.PorterDuff;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.os.Bundle;
|
||||
@@ -22,6 +23,9 @@ import android.preference.PreferenceActivity;
|
||||
import android.preference.PreferenceManager;
|
||||
|
||||
import com.health.openscale.R;
|
||||
import com.health.openscale.gui.preferences.BackupPreferences;
|
||||
import com.health.openscale.gui.preferences.BluetoothPreferences;
|
||||
import com.health.openscale.gui.utils.PermissionHelper;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@@ -29,6 +33,7 @@ import java.util.List;
|
||||
public class SettingsActivity extends PreferenceActivity {
|
||||
public static String EXTRA_TINT_COLOR = "tintColor";
|
||||
private static List<String> fragments = new ArrayList<String>();
|
||||
private Fragment currentFragment;
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
@@ -60,4 +65,28 @@ public class SettingsActivity extends PreferenceActivity {
|
||||
protected boolean isValidFragment(String fragmentName) {
|
||||
return fragments.contains(fragmentName);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAttachFragment(Fragment fragment) {
|
||||
currentFragment = fragment;
|
||||
super.onAttachFragment(fragment);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
|
||||
// HACK to call RequestPermissionResult(...) in PreferenceFragment otherwise API level > 23 is required
|
||||
switch(requestCode) {
|
||||
case PermissionHelper.PERMISSIONS_REQUEST_ACCESS_COARSE_LOCATION:
|
||||
BluetoothPreferences bluetoothPreferences = (BluetoothPreferences)currentFragment;
|
||||
bluetoothPreferences.onMyOwnRequestPermissionsResult(requestCode, permissions, grantResults);
|
||||
break;
|
||||
case PermissionHelper.PERMISSIONS_REQUEST_ACCESS_READ_STORAGE:
|
||||
case PermissionHelper.PERMISSIONS_REQUEST_ACCESS_WRITE_STORAGE:
|
||||
BackupPreferences backupPreferences = (BackupPreferences)currentFragment;
|
||||
backupPreferences.onMyOwnRequestPermissionsResult(requestCode, permissions, grantResults);
|
||||
break;
|
||||
}
|
||||
|
||||
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
|
||||
}
|
||||
}
|
||||
|
@@ -218,8 +218,7 @@ public class BackupPreferences extends PreferenceFragment {
|
||||
return Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
|
||||
public void onMyOwnRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
|
||||
switch (requestCode) {
|
||||
case PermissionHelper.PERMISSIONS_REQUEST_ACCESS_READ_STORAGE:
|
||||
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
|
||||
@@ -236,7 +235,5 @@ public class BackupPreferences extends PreferenceFragment {
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
|
||||
}
|
||||
}
|
||||
|
@@ -245,8 +245,7 @@ public class BluetoothPreferences extends PreferenceFragment implements SharedPr
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
|
||||
public void onMyOwnRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
|
||||
switch (requestCode) {
|
||||
case PermissionHelper.PERMISSIONS_REQUEST_ACCESS_COARSE_LOCATION: {
|
||||
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
|
||||
@@ -254,7 +253,7 @@ public class BluetoothPreferences extends PreferenceFragment implements SharedPr
|
||||
} else {
|
||||
Toast.makeText(getActivity().getApplicationContext(), getResources().getString(R.string.permission_not_granted), Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
return;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user