package io.evercam.androidapp;
import android.content.Intent;
import android.os.Bundle;
import android.preference.Preference;
import android.preference.Preference.OnPreferenceChangeListener;
import android.preference.PreferenceActivity;
import android.preference.PreferenceFragment;
import android.view.MenuItem;
import com.splunk.mint.Mint;
import java.util.ArrayList;
import io.evercam.androidapp.custom.ThemedListPreference;
import io.evercam.androidapp.utils.Constants;
import io.evercam.androidapp.utils.DataCollector;
import io.evercam.androidapp.utils.PrefsManager;
import io.evercam.androidapp.utils.PropertyReader;
public class CameraPrefsActivity extends PreferenceActivity
{
private static int screenWidth = 0;
private PropertyReader propertyReader;
private static final String TAG = "CameraPrefsActivity";
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
propertyReader = new PropertyReader(this);
if(Constants.isAppTrackingEnabled)
{
if(propertyReader.isPropertyExist(PropertyReader
.KEY_SPLUNK_MINT))
{
String bugSenseCode = propertyReader.getPropertyStr(PropertyReader
.KEY_SPLUNK_MINT);
Mint.initAndStartSession(this, bugSenseCode);
}
}
if(this.getActionBar() != null)
{
this.getActionBar().setDisplayHomeAsUpEnabled(true);
}
screenWidth = CamerasActivity.readScreenWidth(this);
getFragmentManager().beginTransaction().replace(android.R.id.content,
new MyPreferenceFragment()).commit();
this.setDefaultKeyMode(DEFAULT_KEYS_DISABLE);
}
@Override
public void onStart()
{
super.onStart();
if(Constants.isAppTrackingEnabled)
{
if(propertyReader.isPropertyExist(PropertyReader.KEY_SPLUNK_MINT))
{
Mint.startSession(this);
}
}
}
@Override
public void onStop()
{
super.onStop();
if(Constants.isAppTrackingEnabled)
{
if(propertyReader.isPropertyExist(PropertyReader.KEY_SPLUNK_MINT))
{
Mint.closeSession(this);
}
}
}
@Override
protected void onRestart()
{
super.onRestart();
finish();
}
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
// Handle item selection
switch(item.getItemId())
{
case android.R.id.home:
this.finish();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
public static class MyPreferenceFragment extends PreferenceFragment
{
public MyPreferenceFragment()
{
// super();
}
@Override
public void onCreate(final Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.main_preference);
setCameraNumbersForScreen(screenWidth);
setUpSleepTime();
fillAbout();
}
private void setCameraNumbersForScreen(int screenWidth)
{
int maxCamerasPerRow = 3;
if(screenWidth != 0)
{
maxCamerasPerRow = screenWidth / 350;
}
if(maxCamerasPerRow == 0)
{
maxCamerasPerRow = 1;
}
ArrayList<String> cameraNumberArrayList = new ArrayList<String>();
for(int index = 1; index <= maxCamerasPerRow; index++)
{
cameraNumberArrayList.add(String.valueOf(index));
}
CharSequence[] charNumberValues = cameraNumberArrayList.toArray(new
CharSequence[cameraNumberArrayList.size()]);
final ThemedListPreference interfaceList = (ThemedListPreference)
getPreferenceManager().findPreference(PrefsManager.KEY_CAMERA_PER_ROW);
interfaceList.setEntries(charNumberValues);
interfaceList.setEntryValues(charNumberValues);
interfaceList.setSummary(interfaceList.getValue());
interfaceList.setOnPreferenceChangeListener(new OnPreferenceChangeListener()
{
@Override
public boolean onPreferenceChange(Preference preference, Object newValue)
{
interfaceList.setSummary(newValue.toString());
return true;
}
});
}
private void setUpSleepTime()
{
final ThemedListPreference sleepListPrefs = (ThemedListPreference)
getPreferenceManager().findPreference(PrefsManager.KEY_AWAKE_TIME);
sleepListPrefs.setSummary(getSummary(sleepListPrefs.getEntry() + ""));
sleepListPrefs.setOnPreferenceChangeListener(new OnPreferenceChangeListener()
{
@Override
public boolean onPreferenceChange(Preference preference, Object newValue)
{
int index = sleepListPrefs.findIndexOfValue(newValue.toString());
String entry = sleepListPrefs.getEntries()[index].toString();
sleepListPrefs.setSummary(getSummary(entry));
return true;
}
});
}
private void fillAbout()
{
final Preference versionPrefs = getPreferenceManager().findPreference(PrefsManager
.KEY_VERSION);
final Preference aboutPrefs = getPreferenceManager().findPreference(PrefsManager
.KEY_ABOUT);
versionPrefs.setSummary(new DataCollector(this.getActivity()).getAppVersion());
aboutPrefs.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener()
{
@Override
public boolean onPreferenceClick(Preference preference)
{
Intent aboutIntent = new Intent(getActivity(), AboutWebActivity.class);
aboutIntent.putExtra(Constants.BUNDLE_KEY_URL, getString(R.string.evercam_url));
startActivity(aboutIntent);
return false;
}
});
}
private String getSummary(String entry)
{
if(entry.equals(getString(R.string.prefs_never)))
{
return entry;
}
else
{
return getString(R.string.summary_awake_time_prefix) + " " + entry + " " +
getString(R.string.summary_awake_time_suffix);
}
}
}
}