/*
* Copyright (C) 2012 The CyanogenMod Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.cyanogenmod.filemanager.preferences;
/**
* An enumeration of the access modes.
*/
public enum AccessMode implements ObjectStringIdentifier {
/**
* The safe mode. The app runs without privileges and the only accessible filesystem
* are the storage volumes (sdcards and USB).
*/
SAFE("0"), //$NON-NLS-1$
/**
* The prompt user mode. The app runs without privileges, with access to all the filesystem,
* but the user is asked prior to execute a privileged action. If the user accepts then the
* system change to a {@link AccessMode#ROOT} mode, and continues in it after execute the
* action.
*/
PROMPT("1"), //$NON-NLS-1$
/**
* the root mode. The app runs with all privileges.
*/
ROOT("2"); //$NON-NLS-1$
private String mId;
/**
* Constructor of <code>AccessMode</code>.
*
* @param id The unique identifier of the enumeration
*/
private AccessMode(String id) {
this.mId = id;
}
/**
* {@inheritDoc}
*/
@Override
public String getId() {
return this.mId;
}
/**
* Method that returns an instance of {@link AccessMode} from its
* unique identifier.
*
* @param id The unique identifier
* @return AccessMode The access mode
*/
public static AccessMode fromId(String id) {
AccessMode[] values = values();
int cc = values.length;
for (int i = 0; i < cc; i++) {
if (values[i].mId.compareTo(id) == 0) {
return values[i];
}
}
return null;
}
}