Java tutorial
/******************************************************************************* * Software Name : RCS IMS Stack * * Copyright (C) 2010-2016 Orange. * Copyright (C) 2016 Sony Mobile Communications Inc. * * 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. * * NOTE: This file has been modified by Sony Mobile Communications Inc. * Modifications are licensed under the License. ******************************************************************************/ package com.gsma.rcs.provisioning.local; import com.gsma.rcs.R; import com.gsma.rcs.provider.settings.RcsSettings; import com.gsma.rcs.provider.settings.RcsSettingsData; import com.gsma.rcs.utils.logger.Logger; import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.Spinner; /** * Logger provisioning fragment * * @author jexa7410 */ public class LoggerProvisioning extends Fragment implements IProvisioningFragment { private static final Logger sLogger = Logger.getLogger(LoggerProvisioning.class.getName()); private static final String[] TRACE_LEVEL = { "DEBUG", "INFO", "WARN", "ERROR", "FATAL" }; private static RcsSettings sRcsSettings; private View mRootView; private ProvisioningHelper mHelper; public static LoggerProvisioning newInstance(RcsSettings rcsSettings) { if (sLogger.isActivated()) { sLogger.debug("new instance"); } LoggerProvisioning f = new LoggerProvisioning(); /* * If Android decides to recreate your Fragment later, it's going to call the no-argument * constructor of your fragment. So overloading the constructor is not a solution. A way to * pass argument to new fragment is to store it as static. */ sRcsSettings = rcsSettings; return f; } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { mRootView = inflater.inflate(R.layout.provisioning_logger, container, false); mHelper = new ProvisioningHelper(mRootView, sRcsSettings); displayRcsSettings(); return mRootView; } @Override public void displayRcsSettings() { if (sLogger.isActivated()) { sLogger.debug("displayRcsSettings"); } mHelper.setBoolCheckBox(R.id.TraceActivated, RcsSettingsData.TRACE_ACTIVATED); mHelper.setBoolCheckBox(R.id.SipTraceActivated, RcsSettingsData.SIP_TRACE_ACTIVATED); mHelper.setBoolCheckBox(R.id.MediaTraceActivated, RcsSettingsData.MEDIA_TRACE_ACTIVATED); mHelper.setStringEditText(R.id.SipTraceFile, RcsSettingsData.SIP_TRACE_FILE); Spinner spinner = (Spinner) mRootView.findViewById(R.id.TraceLevel); ArrayAdapter<String> adapter = new ArrayAdapter<>(getActivity(), android.R.layout.simple_spinner_item, TRACE_LEVEL); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spinner.setAdapter(adapter); spinner.setSelection(sRcsSettings.getTraceLevel()); } @Override public void persistRcsSettings() { if (sLogger.isActivated()) { sLogger.debug("persistRcsSettings"); } mHelper.saveBoolCheckBox(R.id.TraceActivated, RcsSettingsData.TRACE_ACTIVATED); mHelper.saveBoolCheckBox(R.id.SipTraceActivated, RcsSettingsData.SIP_TRACE_ACTIVATED); mHelper.saveBoolCheckBox(R.id.MediaTraceActivated, RcsSettingsData.MEDIA_TRACE_ACTIVATED); mHelper.saveStringEditText(R.id.SipTraceFile, RcsSettingsData.SIP_TRACE_FILE); Spinner spinner = (Spinner) mRootView.findViewById(R.id.TraceLevel); sRcsSettings.writeInteger(RcsSettingsData.TRACE_LEVEL, spinner.getSelectedItemPosition()); } }