/*
ThetaDeviceSettingsActivity
Copyright (c) 2015 NTT DOCOMO,INC.
Released under the MIT license
http://opensource.org/licenses/mit-license.php
*/
package org.deviceconnect.android.deviceplugin.theta.activity;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import org.deviceconnect.android.deviceplugin.theta.ThetaDeviceApplication;
import org.deviceconnect.android.deviceplugin.theta.core.ThetaDevice;
import org.deviceconnect.android.deviceplugin.theta.core.ThetaDeviceManager;
import org.deviceconnect.android.deviceplugin.theta.core.ThetaDeviceModel;
import org.deviceconnect.android.deviceplugin.theta.fragment.ConfirmationFragment;
import org.deviceconnect.android.deviceplugin.theta.fragment.MovieModeFragment;
import org.deviceconnect.android.deviceplugin.theta.fragment.PhotoModeFragment;
import org.deviceconnect.android.deviceplugin.theta.fragment.SettingsFragment;
import org.deviceconnect.android.deviceplugin.theta.fragment.SummaryFragment;
import org.deviceconnect.android.ui.activity.DConnectSettingPageFragmentActivity;
import java.util.List;
/**
* The settings window of THETA device plug-in.
*
* @author NTT DOCOMO, INC.
*/
public class ThetaDeviceSettingsActivity extends DConnectSettingPageFragmentActivity {
private static final String KEY_SELECTED_MODEL = "SelectedModel";
private final SummaryFragment mSummary = new SummaryFragment();
private final PhotoModeFragment mPhotoMode = new PhotoModeFragment();
private final MovieModeFragment mMovieMode = new MovieModeFragment();
private final Fragment[] mFragments = {
mSummary,
mPhotoMode,
mMovieMode,
new ConfirmationFragment()
};
private ThetaDeviceModel mSelectedModel = ThetaDeviceModel.THETA_S;
@Override
public int getPageCount() {
return mFragments.length;
}
@Override
public Fragment createPage(int position) {
return mFragments[position];
}
@Override
public void onSaveInstanceState(final Bundle outState) {
super.onSaveInstanceState(outState);
outState.putSerializable(KEY_SELECTED_MODEL, mSelectedModel);
}
@Override
protected void onRestoreInstanceState(final Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
if (savedInstanceState != null) {
mSelectedModel = (ThetaDeviceModel) savedInstanceState.get(KEY_SELECTED_MODEL);
}
}
@Override
protected void onResume() {
super.onResume();
getDeviceManager().checkConnectedDevice();
}
@Override
protected void onPause() {
ThetaDevice device = getConnectedDevice();
if (device != null) {
setResult(RESULT_OK);
}
super.onPause();
}
private ThetaDeviceManager getDeviceManager() {
ThetaDeviceApplication app = (ThetaDeviceApplication) getApplication();
return app.getDeviceManager();
}
private ThetaDevice getConnectedDevice() {
return getDeviceManager().getConnectedDevice();
}
public ThetaDeviceModel getSelectedModel() {
return mSelectedModel;
}
public void setSelectedModel(final ThetaDeviceModel model) {
mSelectedModel = model;
onModelSelected(model);
}
private void onModelSelected(final ThetaDeviceModel model) {
FragmentManager fragmentMgr = getSupportFragmentManager();
List<Fragment> list = fragmentMgr.getFragments();
if (list != null) {
for (Fragment f : list) {
if (f instanceof SettingsFragment) {
((SettingsFragment) f).onModelSelected(model);
}
}
}
}
}