Distinction between settings
This commit is contained in:
@@ -260,17 +260,58 @@ public class Actions
|
||||
|
||||
ContentResolver cr = instance.getContentResolver();
|
||||
|
||||
//"String", "Long", "Int", "Float" };
|
||||
String[] parts = parameter2.split(Action.actionParameter2Split);
|
||||
// "String", "Long", "Int", "Float"
|
||||
String[] parts = parameter2.split(Action.actionParameter2Split, -1);
|
||||
|
||||
if (parts[0].equalsIgnoreCase("String"))
|
||||
result = android.provider.Settings.Global.putString(cr, parts[1], parts[2]);
|
||||
else if (parts[0].equalsIgnoreCase("Long"))
|
||||
result = android.provider.Settings.Global.putLong(cr, parts[1], Long.parseLong(parts[2]));
|
||||
else if (parts[0].equalsIgnoreCase("Int"))
|
||||
result = android.provider.Settings.Global.putInt(cr, parts[1], Integer.parseInt(parts[2]));
|
||||
else if (parts[0].equalsIgnoreCase("Float"))
|
||||
result = android.provider.Settings.Global.putFloat(cr, parts[1], Float.parseFloat(parts[2]));
|
||||
if(parts.length == 3)
|
||||
{
|
||||
if (parts[0].equalsIgnoreCase("String"))
|
||||
result = android.provider.Settings.Global.putString(cr, parts[1], parts[2]);
|
||||
else if (parts[0].equalsIgnoreCase("Long"))
|
||||
result = android.provider.Settings.Global.putLong(cr, parts[1], Long.parseLong(parts[2]));
|
||||
else if (parts[0].equalsIgnoreCase("Int"))
|
||||
result = android.provider.Settings.Global.putInt(cr, parts[1], Integer.parseInt(parts[2]));
|
||||
else if (parts[0].equalsIgnoreCase("Float"))
|
||||
result = android.provider.Settings.Global.putFloat(cr, parts[1], Float.parseFloat(parts[2]));
|
||||
}
|
||||
else
|
||||
{
|
||||
if(parts[0].equals(ActivityManageActionSetSystemSetting.targets[0]))
|
||||
{
|
||||
if (parts[1].equalsIgnoreCase("String"))
|
||||
result = android.provider.Settings.Global.putString(cr, parts[2], parts[3]);
|
||||
else if (parts[1].equalsIgnoreCase("Long"))
|
||||
result = android.provider.Settings.Global.putLong(cr, parts[2], Long.parseLong(parts[3]));
|
||||
else if (parts[1].equalsIgnoreCase("Int"))
|
||||
result = android.provider.Settings.Global.putInt(cr, parts[2], Integer.parseInt(parts[3]));
|
||||
else if (parts[1].equalsIgnoreCase("Float"))
|
||||
result = android.provider.Settings.Global.putFloat(cr, parts[2], Float.parseFloat(parts[3]));
|
||||
}
|
||||
else if(parts[0].equals(ActivityManageActionSetSystemSetting.targets[1]))
|
||||
{
|
||||
if (parts[1].equalsIgnoreCase("String"))
|
||||
result = android.provider.Settings.System.putString(cr, parts[2], parts[3]);
|
||||
else if (parts[1].equalsIgnoreCase("Long"))
|
||||
result = android.provider.Settings.System.putLong(cr, parts[2], Long.parseLong(parts[3]));
|
||||
else if (parts[1].equalsIgnoreCase("Int"))
|
||||
result = android.provider.Settings.System.putInt(cr, parts[2], Integer.parseInt(parts[3]));
|
||||
else if (parts[1].equalsIgnoreCase("Float"))
|
||||
result = android.provider.Settings.System.putFloat(cr, parts[2], Float.parseFloat(parts[3]));
|
||||
}
|
||||
else if(parts[0].equals(ActivityManageActionSetSystemSetting.targets[2]))
|
||||
{
|
||||
if (parts[1].equalsIgnoreCase("String"))
|
||||
result = android.provider.Settings.Secure.putString(cr, parts[2], parts[3]);
|
||||
else if (parts[1].equalsIgnoreCase("Long"))
|
||||
result = android.provider.Settings.Secure.putLong(cr, parts[2], Long.parseLong(parts[3]));
|
||||
else if (parts[1].equalsIgnoreCase("Int"))
|
||||
result = android.provider.Settings.Secure.putInt(cr, parts[2], Integer.parseInt(parts[3]));
|
||||
else if (parts[1].equalsIgnoreCase("Float"))
|
||||
result = android.provider.Settings.Secure.putFloat(cr, parts[2], Float.parseFloat(parts[3]));
|
||||
}
|
||||
else
|
||||
result = false;
|
||||
}
|
||||
|
||||
Miscellaneous.logEvent("i", "Variable", "Result of system setting change: " + String.valueOf(result), 4);
|
||||
|
||||
|
||||
@@ -18,12 +18,13 @@ import android.widget.Toast;
|
||||
|
||||
public class ActivityManageActionSetSystemSetting extends Activity
|
||||
{
|
||||
Spinner spinnerSettingDataType;
|
||||
Spinner spinnerSettingTarget, spinnerSettingDataType;
|
||||
EditText etSettingName, etSettingValue;
|
||||
Button bSaveSetSystemSetting;
|
||||
TextView tvSetSystemSettingExamples, tvSetSystemSettingNoticeWriteSecureSettings;
|
||||
|
||||
ArrayAdapter<String> settingDataTypeSpinnerAdapter;
|
||||
ArrayAdapter<String> settingTargetSpinnerAdapter, settingDataTypeSpinnerAdapter;
|
||||
protected final static String[] targets = { "Global", "System", "Secure" };
|
||||
protected final static String[] dataTypes = { "String", "Long", "Int", "Float" };
|
||||
|
||||
@Override
|
||||
@@ -34,6 +35,7 @@ public class ActivityManageActionSetSystemSetting extends Activity
|
||||
Miscellaneous.setUiTheme(this);
|
||||
this.setContentView(R.layout.activity_manage_action_set_system_setting);
|
||||
|
||||
spinnerSettingTarget = (Spinner) findViewById(R.id.spinnerSettingTarget);
|
||||
spinnerSettingDataType = (Spinner) findViewById(R.id.spinnerSettingDataType);
|
||||
etSettingName = (EditText)findViewById(R.id.etSettingName);
|
||||
etSettingValue = (EditText)findViewById(R.id.etSettingValue);
|
||||
@@ -41,6 +43,10 @@ public class ActivityManageActionSetSystemSetting extends Activity
|
||||
tvSetSystemSettingExamples = (TextView)findViewById(R.id.tvSetSystemSettingExamples);
|
||||
tvSetSystemSettingNoticeWriteSecureSettings = (TextView)findViewById(R.id.tvSetSystemSettingNoticeWriteSecureSettings);
|
||||
|
||||
settingTargetSpinnerAdapter = new ArrayAdapter<String>(this, R.layout.text_view_for_poi_listview_mediumtextsize, targets);
|
||||
spinnerSettingTarget.setAdapter(settingTargetSpinnerAdapter);
|
||||
settingTargetSpinnerAdapter.notifyDataSetChanged();
|
||||
|
||||
settingDataTypeSpinnerAdapter = new ArrayAdapter<String>(this, R.layout.text_view_for_poi_listview_mediumtextsize, dataTypes);
|
||||
spinnerSettingDataType.setAdapter(settingDataTypeSpinnerAdapter);
|
||||
settingDataTypeSpinnerAdapter.notifyDataSetChanged();
|
||||
@@ -52,6 +58,9 @@ public class ActivityManageActionSetSystemSetting extends Activity
|
||||
else
|
||||
tvSetSystemSettingNoticeWriteSecureSettings.setVisibility(View.VISIBLE);
|
||||
|
||||
// Make links clickable
|
||||
tvSetSystemSettingNoticeWriteSecureSettings.setMovementMethod(LinkMovementMethod.getInstance());
|
||||
|
||||
spinnerSettingDataType.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener()
|
||||
{
|
||||
@Override
|
||||
@@ -115,7 +124,7 @@ public class ActivityManageActionSetSystemSetting extends Activity
|
||||
|
||||
Intent returnIntent = new Intent();
|
||||
|
||||
String param2Data = dataTypes[spinnerSettingDataType.getSelectedItemPosition()] + Action.actionParameter2Split + etSettingName.getText().toString() + Action.actionParameter2Split + etSettingValue.getText().toString();
|
||||
String param2Data = targets[spinnerSettingTarget.getSelectedItemPosition()] + Action.actionParameter2Split + dataTypes[spinnerSettingDataType.getSelectedItemPosition()] + Action.actionParameter2Split + etSettingName.getText().toString() + Action.actionParameter2Split + etSettingValue.getText().toString();
|
||||
|
||||
returnIntent.putExtra(ActivityManageRule.intentNameActionParameter1, false);
|
||||
returnIntent.putExtra(ActivityManageRule.intentNameActionParameter2, param2Data);
|
||||
@@ -125,18 +134,34 @@ public class ActivityManageActionSetSystemSetting extends Activity
|
||||
}
|
||||
});
|
||||
|
||||
if(getIntent().hasExtra(ActivityManageRule.intentNameActionParameter2))
|
||||
if(getIntent().hasExtra(ActivityManageRule.intentNameActionParameter2))
|
||||
{
|
||||
// dataType, setting name, setting value
|
||||
String[] components = getIntent().getStringExtra(ActivityManageRule.intentNameActionParameter2).split(Action.actionParameter2Split);
|
||||
String[] components = getIntent().getStringExtra(ActivityManageRule.intentNameActionParameter2).split(Action.actionParameter2Split, -1);
|
||||
|
||||
int position = Miscellaneous.arraySearchIndexOf(dataTypes, components[0], false, true);
|
||||
|
||||
if(position >= 0)
|
||||
if(components.length == 4)
|
||||
{
|
||||
spinnerSettingDataType.setSelection(position);
|
||||
etSettingName.setText(components[1]);
|
||||
etSettingValue.setText(components[2]);
|
||||
int positionTarget = Miscellaneous.arraySearchIndexOf(targets, components[0], false, true);
|
||||
int positionDataType = Miscellaneous.arraySearchIndexOf(dataTypes, components[1], false, true);
|
||||
|
||||
if(positionDataType >= 0)
|
||||
{
|
||||
spinnerSettingTarget.setSelection(positionTarget);
|
||||
spinnerSettingDataType.setSelection(positionDataType);
|
||||
etSettingName.setText(components[2]);
|
||||
etSettingValue.setText(components[3]);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
int position = Miscellaneous.arraySearchIndexOf(dataTypes, components[0], false, true);
|
||||
|
||||
if (position >= 0)
|
||||
{
|
||||
spinnerSettingDataType.setSelection(position);
|
||||
etSettingName.setText(components[1]);
|
||||
etSettingValue.setText(components[2]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -798,7 +798,18 @@ public class ActivityPermissions extends Activity
|
||||
break;
|
||||
case setLocationService:
|
||||
case setSystemSetting:
|
||||
addToArrayListUnique(Manifest.permission.WRITE_SECURE_SETTINGS, requiredPermissions);
|
||||
String[] parts = action.getParameter2().split(Action.actionParameter2Split, -1);
|
||||
if(parts.length < 4)
|
||||
addToArrayListUnique(Manifest.permission.WRITE_SECURE_SETTINGS, requiredPermissions);
|
||||
else
|
||||
{
|
||||
if(parts[0].equals(ActivityManageActionSetSystemSetting.targets[0]))
|
||||
addToArrayListUnique(Manifest.permission.WRITE_SECURE_SETTINGS, requiredPermissions);
|
||||
else if(parts[0].equals(ActivityManageActionSetSystemSetting.targets[1]))
|
||||
addToArrayListUnique(Manifest.permission.WRITE_SETTINGS, requiredPermissions);
|
||||
else if(parts[0].equals(ActivityManageActionSetSystemSetting.targets[2]))
|
||||
addToArrayListUnique(Manifest.permission.WRITE_SECURE_SETTINGS, requiredPermissions);
|
||||
}
|
||||
break;
|
||||
case setScreenBrightness:
|
||||
addToArrayListUnique(Manifest.permission.WRITE_SETTINGS, requiredPermissions);
|
||||
|
||||
Reference in New Issue
Block a user