mirror of
https://github.com/beemdevelopment/Aegis.git
synced 2025-04-26 08:46:07 +00:00
Merge pull request #285 from alexbakker/storage-permissions
Remove EXTERNAL_STORAGE permissions
This commit is contained in:
commit
a3538f95e2
3 changed files with 5 additions and 43 deletions
|
@ -5,8 +5,6 @@
|
||||||
|
|
||||||
<uses-permission android:name="android.permission.CAMERA" />
|
<uses-permission android:name="android.permission.CAMERA" />
|
||||||
<uses-permission android:name="android.permission.USE_BIOMETRIC" />
|
<uses-permission android:name="android.permission.USE_BIOMETRIC" />
|
||||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
|
|
||||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
|
||||||
|
|
||||||
<uses-feature android:name="android.hardware.camera" android:required="false" />
|
<uses-feature android:name="android.hardware.camera" android:required="false" />
|
||||||
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false" />
|
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false" />
|
||||||
|
@ -22,7 +20,7 @@
|
||||||
tools:replace="android:theme">
|
tools:replace="android:theme">
|
||||||
<activity
|
<activity
|
||||||
android:name=".ui.AboutActivity"
|
android:name=".ui.AboutActivity"
|
||||||
android:label="@string/title_activity_about"></activity>
|
android:label="@string/title_activity_about" />
|
||||||
<activity
|
<activity
|
||||||
android:name=".ui.SelectEntriesActivity"
|
android:name=".ui.SelectEntriesActivity"
|
||||||
android:label="Select entries" />
|
android:label="Select entries" />
|
||||||
|
|
|
@ -395,10 +395,6 @@ public class MainActivity extends AegisActivity implements EntryListView.Listene
|
||||||
}
|
}
|
||||||
|
|
||||||
private void startScanImageActivity() {
|
private void startScanImageActivity() {
|
||||||
if (!PermissionHelper.request(this, CODE_PERM_READ_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
Intent galleryIntent = new Intent(Intent.ACTION_PICK);
|
Intent galleryIntent = new Intent(Intent.ACTION_PICK);
|
||||||
galleryIntent.setDataAndType(android.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI, "image/*");
|
galleryIntent.setDataAndType(android.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI, "image/*");
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
package com.beemdevelopment.aegis.ui;
|
package com.beemdevelopment.aegis.ui;
|
||||||
|
|
||||||
import android.Manifest;
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.content.DialogInterface;
|
import android.content.DialogInterface;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
|
@ -27,7 +26,6 @@ import com.beemdevelopment.aegis.crypto.KeyStoreHandle;
|
||||||
import com.beemdevelopment.aegis.crypto.KeyStoreHandleException;
|
import com.beemdevelopment.aegis.crypto.KeyStoreHandleException;
|
||||||
import com.beemdevelopment.aegis.helpers.BiometricSlotInitializer;
|
import com.beemdevelopment.aegis.helpers.BiometricSlotInitializer;
|
||||||
import com.beemdevelopment.aegis.helpers.BiometricsHelper;
|
import com.beemdevelopment.aegis.helpers.BiometricsHelper;
|
||||||
import com.beemdevelopment.aegis.helpers.PermissionHelper;
|
|
||||||
import com.beemdevelopment.aegis.importers.AegisImporter;
|
import com.beemdevelopment.aegis.importers.AegisImporter;
|
||||||
import com.beemdevelopment.aegis.importers.DatabaseImporter;
|
import com.beemdevelopment.aegis.importers.DatabaseImporter;
|
||||||
import com.beemdevelopment.aegis.importers.DatabaseImporterEntryException;
|
import com.beemdevelopment.aegis.importers.DatabaseImporterEntryException;
|
||||||
|
@ -73,10 +71,6 @@ public class PreferencesFragment extends PreferenceFragmentCompat {
|
||||||
private static final int CODE_EXPORT = 5;
|
private static final int CODE_EXPORT = 5;
|
||||||
private static final int CODE_EXPORT_ENCRYPT = 6;
|
private static final int CODE_EXPORT_ENCRYPT = 6;
|
||||||
|
|
||||||
// permission request codes
|
|
||||||
private static final int CODE_PERM_IMPORT = 0;
|
|
||||||
private static final int CODE_PERM_EXPORT = 1;
|
|
||||||
|
|
||||||
private Intent _result;
|
private Intent _result;
|
||||||
private VaultManager _vault;
|
private VaultManager _vault;
|
||||||
|
|
||||||
|
@ -163,7 +157,7 @@ public class PreferencesFragment extends PreferenceFragmentCompat {
|
||||||
importPreference.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
|
importPreference.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onPreferenceClick(Preference preference) {
|
public boolean onPreferenceClick(Preference preference) {
|
||||||
onImport();
|
startImport();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -177,12 +171,11 @@ public class PreferencesFragment extends PreferenceFragmentCompat {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
Preference exportPreference = findPreference("pref_export");
|
Preference exportPreference = findPreference("pref_export");
|
||||||
exportPreference.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
|
exportPreference.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onPreferenceClick(Preference preference) {
|
public boolean onPreferenceClick(Preference preference) {
|
||||||
onExport();
|
startExport();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -369,23 +362,6 @@ public class PreferencesFragment extends PreferenceFragmentCompat {
|
||||||
updateEncryptionPreferences();
|
updateEncryptionPreferences();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
|
|
||||||
if (!PermissionHelper.checkResults(grantResults)) {
|
|
||||||
Toast.makeText(getActivity(), R.string.permission_denied, Toast.LENGTH_SHORT).show();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (requestCode) {
|
|
||||||
case CODE_PERM_IMPORT:
|
|
||||||
onImport();
|
|
||||||
break;
|
|
||||||
case CODE_PERM_EXPORT:
|
|
||||||
onExport();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||||
if (data == null) {
|
if (data == null) {
|
||||||
|
@ -425,11 +401,7 @@ public class PreferencesFragment extends PreferenceFragmentCompat {
|
||||||
getActivity().setResult(Activity.RESULT_OK, _result);
|
getActivity().setResult(Activity.RESULT_OK, _result);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void onImport() {
|
private void startImport() {
|
||||||
if (!PermissionHelper.request(getActivity(), CODE_PERM_IMPORT, Manifest.permission.READ_EXTERNAL_STORAGE)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
Map<String, Class<? extends DatabaseImporter>> importers = DatabaseImporter.getImporters();
|
Map<String, Class<? extends DatabaseImporter>> importers = DatabaseImporter.getImporters();
|
||||||
String[] names = importers.keySet().toArray(new String[0]);
|
String[] names = importers.keySet().toArray(new String[0]);
|
||||||
|
|
||||||
|
@ -584,11 +556,7 @@ public class PreferencesFragment extends PreferenceFragmentCompat {
|
||||||
startActivityForResult(intent, CODE_SELECT_ENTRIES);
|
startActivityForResult(intent, CODE_SELECT_ENTRIES);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void onExport() {
|
private void startExport() {
|
||||||
if (!PermissionHelper.request(getActivity(), CODE_PERM_EXPORT, Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// TODO: create a custom layout to show a message AND a checkbox
|
// TODO: create a custom layout to show a message AND a checkbox
|
||||||
final AtomicReference<Boolean> checked = new AtomicReference<>(true);
|
final AtomicReference<Boolean> checked = new AtomicReference<>(true);
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity())
|
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity())
|
||||||
|
|
Loading…
Add table
Reference in a new issue