/*******************************************************************************
* Software Name : RCS IMS Stack
*
* Copyright (C) 2010 France Telecom S.A.
*
* 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.orangelabs.rcs.provisioning.local;
import static com.orangelabs.rcs.provisioning.local.Provisioning.saveCheckBoxParameter;
import static com.orangelabs.rcs.provisioning.local.Provisioning.saveEditTextParameter;
import static com.orangelabs.rcs.provisioning.local.Provisioning.setCheckBoxParameter;
import static com.orangelabs.rcs.provisioning.local.Provisioning.setEditTextParameter;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.Spinner;
import android.widget.Toast;
import com.orangelabs.rcs.R;
import com.orangelabs.rcs.provider.settings.RcsSettings;
import com.orangelabs.rcs.provider.settings.RcsSettingsData;
/**
* End user profile parameters provisioning
*
* @author jexa7410
*/
public class LoggerProvisioning extends Activity {
/**
* Trace level
*/
private static final String[] TRACE_LEVEL = { "DEBUG", "INFO", "WARN", "ERROR", "FATAL" };
private boolean isInFront;
@Override
public void onCreate(Bundle bundle) {
super.onCreate(bundle);
// Set layout
setContentView(R.layout.rcs_provisioning_logger);
// Set buttons callback
Button btn = (Button) findViewById(R.id.save_btn);
btn.setOnClickListener(saveBtnListener);
updateView(bundle);
isInFront = true;
}
@Override
public void onResume() {
super.onResume();
if (isInFront == false) {
isInFront = true;
// Update UI (from DB)
updateView(null);
}
}
@Override
protected void onPause() {
super.onPause();
isInFront = false;
}
/**
* Update view
* @param bundle
*/
private void updateView(Bundle bundle) {
// Display parameters
setCheckBoxParameter(this, R.id.TraceActivated, RcsSettingsData.TRACE_ACTIVATED, bundle);
setCheckBoxParameter(this, R.id.SipTraceActivated, RcsSettingsData.SIP_TRACE_ACTIVATED, bundle);
setCheckBoxParameter(this, R.id.MediaTraceActivated, RcsSettingsData.MEDIA_TRACE_ACTIVATED, bundle);
setEditTextParameter(this, R.id.SipTraceFile, RcsSettingsData.SIP_TRACE_FILE, bundle);
Spinner spinner = (Spinner) findViewById(R.id.TraceLevel);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, TRACE_LEVEL);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
Integer parameter = null;
if (bundle != null && bundle.containsKey(RcsSettingsData.TRACE_LEVEL)) {
parameter = bundle.getInt(RcsSettingsData.TRACE_LEVEL);
} else {
parameter = RcsSettings.getInstance().getTraceLevel();
}
spinner.setSelection(parameter);
}
/**
* Save button listener
*/
private OnClickListener saveBtnListener = new OnClickListener() {
public void onClick(View v) {
// Save parameters
save();
}
};
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
saveInstanceState(outState);
}
/**
* Save parameters either in bundle or in RCS settings
*/
private void saveInstanceState(Bundle bundle) {
saveCheckBoxParameter(this, R.id.TraceActivated, RcsSettingsData.TRACE_ACTIVATED, bundle);
saveCheckBoxParameter(this, R.id.SipTraceActivated, RcsSettingsData.SIP_TRACE_ACTIVATED, bundle);
saveCheckBoxParameter(this, R.id.MediaTraceActivated, RcsSettingsData.MEDIA_TRACE_ACTIVATED, bundle);
saveEditTextParameter(this, R.id.SipTraceFile, RcsSettingsData.SIP_TRACE_FILE, bundle);
Spinner spinner = (Spinner) findViewById(R.id.TraceLevel);
if (bundle != null) {
bundle.putInt(RcsSettingsData.TRACE_LEVEL, spinner.getSelectedItemPosition());
} else {
Integer value = spinner.getSelectedItemPosition();
RcsSettings.getInstance().writeParameter(RcsSettingsData.TRACE_LEVEL, value.toString());
}
}
/**
* Save parameters
*/
private void save() {
saveInstanceState(null);
Toast.makeText(this, getString(R.string.label_reboot_service), Toast.LENGTH_LONG).show();
}
}