|
@@ -70,6 +70,7 @@ import com.owncloud.android.lib.common.ExternalLinkType;
|
|
import com.owncloud.android.lib.common.OwnCloudAccount;
|
|
import com.owncloud.android.lib.common.OwnCloudAccount;
|
|
import com.owncloud.android.lib.common.OwnCloudClientManagerFactory;
|
|
import com.owncloud.android.lib.common.OwnCloudClientManagerFactory;
|
|
import com.owncloud.android.lib.common.utils.Log_OC;
|
|
import com.owncloud.android.lib.common.utils.Log_OC;
|
|
|
|
+import com.owncloud.android.utils.DeviceCredentialUtils;
|
|
import com.owncloud.android.utils.DisplayUtils;
|
|
import com.owncloud.android.utils.DisplayUtils;
|
|
import com.owncloud.android.utils.MimeTypeUtil;
|
|
import com.owncloud.android.utils.MimeTypeUtil;
|
|
import com.owncloud.android.utils.ThemeUtils;
|
|
import com.owncloud.android.utils.ThemeUtils;
|
|
@@ -87,10 +88,14 @@ public class Preferences extends PreferenceActivity
|
|
private static final String TAG = Preferences.class.getSimpleName();
|
|
private static final String TAG = Preferences.class.getSimpleName();
|
|
|
|
|
|
public final static String PREFERENCE_USE_FINGERPRINT = "use_fingerprint";
|
|
public final static String PREFERENCE_USE_FINGERPRINT = "use_fingerprint";
|
|
|
|
+
|
|
|
|
+ public final static String PREFERENCE_USE_DEVICE_CREDENTIALS= "use_device_credentials";
|
|
|
|
+
|
|
public static final String PREFERENCE_EXPERT_MODE = "expert_mode";
|
|
public static final String PREFERENCE_EXPERT_MODE = "expert_mode";
|
|
|
|
|
|
private static final int ACTION_REQUEST_PASSCODE = 5;
|
|
private static final int ACTION_REQUEST_PASSCODE = 5;
|
|
private static final int ACTION_CONFIRM_PASSCODE = 6;
|
|
private static final int ACTION_CONFIRM_PASSCODE = 6;
|
|
|
|
+ private static final int ACTION_CONFIRM_DEVICE_CREDENTIALS = 7;
|
|
|
|
|
|
private static final int ACTION_REQUEST_CODE_DAVDROID_SETUP = 10;
|
|
private static final int ACTION_REQUEST_CODE_DAVDROID_SETUP = 10;
|
|
|
|
|
|
@@ -503,12 +508,15 @@ public class Preferences extends PreferenceActivity
|
|
|
|
|
|
boolean fPassCodeEnabled = getResources().getBoolean(R.bool.passcode_enabled);
|
|
boolean fPassCodeEnabled = getResources().getBoolean(R.bool.passcode_enabled);
|
|
boolean fPrintEnabled = getResources().getBoolean(R.bool.fingerprint_enabled);
|
|
boolean fPrintEnabled = getResources().getBoolean(R.bool.fingerprint_enabled);
|
|
|
|
+ boolean fDeviceCredentialsEnabled = getResources().getBoolean(R.bool.device_credentials);
|
|
boolean fShowHiddenFilesEnabled = getResources().getBoolean(R.bool.show_hidden_files_enabled);
|
|
boolean fShowHiddenFilesEnabled = getResources().getBoolean(R.bool.show_hidden_files_enabled);
|
|
|
|
|
|
setupPasscodePreference(preferenceCategoryDetails, fPassCodeEnabled);
|
|
setupPasscodePreference(preferenceCategoryDetails, fPassCodeEnabled);
|
|
|
|
|
|
setupFingerprintPreference(preferenceCategoryDetails, fPrintEnabled);
|
|
setupFingerprintPreference(preferenceCategoryDetails, fPrintEnabled);
|
|
|
|
|
|
|
|
+ setupDeviceCredentialsPreference(preferenceCategoryDetails, fDeviceCredentialsEnabled);
|
|
|
|
+
|
|
setupHiddenFilesPreference(preferenceCategoryDetails, fShowHiddenFilesEnabled);
|
|
setupHiddenFilesPreference(preferenceCategoryDetails, fShowHiddenFilesEnabled);
|
|
|
|
|
|
setupExpertModePreference(preferenceCategoryDetails);
|
|
setupExpertModePreference(preferenceCategoryDetails);
|
|
@@ -618,6 +626,39 @@ public class Preferences extends PreferenceActivity
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ private void setupDeviceCredentialsPreference(PreferenceCategory preferenceCategoryDetails,
|
|
|
|
+ boolean fDeviceCredentialsEnabled) {
|
|
|
|
+ SwitchPreference useDeviceCredentials = (SwitchPreference) findPreference(PREFERENCE_USE_DEVICE_CREDENTIALS);
|
|
|
|
+ if (useDeviceCredentials != null && fDeviceCredentialsEnabled && Build.VERSION.SDK_INT >=
|
|
|
|
+ Build.VERSION_CODES.M) {
|
|
|
|
+ if (!DeviceCredentialUtils.areCredentialsAvailable(getApplicationContext())) {
|
|
|
|
+ DisplayUtils.showSnackMessage(this, R.string.prefs_device_credentials_not_setup);
|
|
|
|
+ useDeviceCredentials.setChecked(false);
|
|
|
|
+ } else {
|
|
|
|
+ useDeviceCredentials.setOnPreferenceChangeListener(
|
|
|
|
+ new OnPreferenceChangeListener() {
|
|
|
|
+ @Override
|
|
|
|
+ public boolean onPreferenceChange(Preference preference, Object newValue) {
|
|
|
|
+ Boolean incoming = (Boolean) newValue;
|
|
|
|
+ if (incoming) {
|
|
|
|
+ SharedPreferences appPrefs = PreferenceManager
|
|
|
|
+ .getDefaultSharedPreferences(getApplicationContext());
|
|
|
|
+ SharedPreferences.Editor editor = appPrefs.edit();
|
|
|
|
+ editor.putBoolean(PREFERENCE_USE_DEVICE_CREDENTIALS, true).apply();
|
|
|
|
+ return true;
|
|
|
|
+ } else {
|
|
|
|
+ Intent i = new Intent(getApplicationContext(), RequestCredentialsActivity.class);
|
|
|
|
+ startActivityForResult(i, ACTION_CONFIRM_DEVICE_CREDENTIALS);
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ preferenceCategoryDetails.removePreference(useDeviceCredentials);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
private void setupPasscodePreference(PreferenceCategory preferenceCategoryDetails, boolean fPassCodeEnabled) {
|
|
private void setupPasscodePreference(PreferenceCategory preferenceCategoryDetails, boolean fPassCodeEnabled) {
|
|
pCode = (SwitchPreference) findPreference(PassCodeActivity.PREFERENCE_SET_PASSCODE);
|
|
pCode = (SwitchPreference) findPreference(PassCodeActivity.PREFERENCE_SET_PASSCODE);
|
|
if (pCode != null && fPassCodeEnabled) {
|
|
if (pCode != null && fPassCodeEnabled) {
|
|
@@ -869,11 +910,21 @@ public class Preferences extends PreferenceActivity
|
|
}
|
|
}
|
|
} else if (requestCode == ACTION_REQUEST_CODE_DAVDROID_SETUP && resultCode == RESULT_OK) {
|
|
} else if (requestCode == ACTION_REQUEST_CODE_DAVDROID_SETUP && resultCode == RESULT_OK) {
|
|
DisplayUtils.showSnackMessage(this, R.string.prefs_calendar_contacts_sync_setup_successful);
|
|
DisplayUtils.showSnackMessage(this, R.string.prefs_calendar_contacts_sync_setup_successful);
|
|
|
|
+ } else if (requestCode == ACTION_CONFIRM_DEVICE_CREDENTIALS && resultCode == RESULT_OK) {
|
|
|
|
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M &&
|
|
|
|
+ data.getBooleanExtra(RequestCredentialsActivity.KEY_CHECK_RESULT, false)) {
|
|
|
|
+ SharedPreferences.Editor appPrefs = PreferenceManager
|
|
|
|
+ .getDefaultSharedPreferences(getApplicationContext()).edit();
|
|
|
|
+ appPrefs.putBoolean(PREFERENCE_USE_DEVICE_CREDENTIALS, false).apply();
|
|
|
|
+
|
|
|
|
+ DisplayUtils.showSnackMessage(this, R.string.credentials_disabled);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@NonNull
|
|
@NonNull
|
|
@Override
|
|
@Override
|
|
|
|
+ @NonNull
|
|
public MenuInflater getMenuInflater() {
|
|
public MenuInflater getMenuInflater() {
|
|
return getDelegate().getMenuInflater();
|
|
return getDelegate().getMenuInflater();
|
|
}
|
|
}
|