package org.witness.informacam.app;
import java.util.List;
import org.witness.informacam.app.utils.Constants.Preferences;
import org.witness.informacam.utils.Constants.Models;
import android.app.ActionBar;
import android.app.Activity;
import android.app.ActivityManager;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.os.Bundle;
import android.preference.ListPreference;
import android.preference.Preference;
import android.preference.PreferenceActivity;
import android.preference.PreferenceManager;
import android.view.MenuItem;
public class PreferencesActivity extends PreferenceActivity implements OnSharedPreferenceChangeListener {
ListPreference lockScreenMode, language, panicAction;//originalImage,
@SuppressWarnings("deprecation")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setTitle(R.string.preferences);
ActionBar actionBar = getActionBar();
actionBar.setDisplayShowTitleEnabled(true);
actionBar.setDisplayShowHomeEnabled(true);
actionBar.setDisplayHomeAsUpEnabled(false);
actionBar.setHomeButtonEnabled(true);
actionBar.setLogo(this.getResources().getDrawable(R.drawable.ic_action_up));
actionBar.setDisplayUseLogoEnabled(true);
addPreferencesFromResource(R.xml.preferences);
// lockScreenMode = (ListPreference) findPreference(Preferences.Keys.LOCK_SCREEN_MODE);
// updateSummaryWithChoice(lockScreenMode, lockScreenMode.getValue(), getResources().getStringArray(R.array.lockScreenOptions_));
language = (ListPreference) findPreference(Preferences.Keys.LANGUAGE);
updateSummaryWithChoice(language, language.getValue(), getResources().getStringArray(R.array.languages_));
//originalImage = (ListPreference) findPreference(Models.IUser.ASSET_ENCRYPTION);
//updateSummaryWithChoice(originalImage, originalImage.getValue(), getResources().getStringArray(R.array.originalImageOptions_));
panicAction = (ListPreference) findPreference(Preferences.Keys.PANIC_ACTION);
updateSummaryWithChoice(panicAction, panicAction.getValue(), getResources().getStringArray(R.array.panicActionOptions_));
}
@SuppressWarnings("deprecation")
@Override
protected void onResume() {
super.onResume();
getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);
}
@SuppressWarnings("deprecation")
@Override
protected void onPause() {
super.onPause();
getPreferenceScreen().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this);
boolean prefStealthIcon = PreferenceManager.getDefaultSharedPreferences(this).getBoolean("prefStealthIcon",false);
setIcon(prefStealthIcon);
}
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
// if (key.equals(Preferences.Keys.LOCK_SCREEN_MODE)) {
// updateSummaryWithChoice(lockScreenMode, sharedPreferences.getString(key, "1"), getResources().getStringArray(R.array.lockScreenOptions_));
// } else
if(key.equals(Preferences.Keys.LANGUAGE)) {
updateSummaryWithChoice(language, sharedPreferences.getString(key, "0"), getResources().getStringArray(R.array.languages_));
} //else if(key.equals(Models.IUser.ASSET_ENCRYPTION)) {
// updateSummaryWithChoice(originalImage, sharedPreferences.getString(key, "0"), getResources().getStringArray(R.array.originalImageOptions_));
//}
else if(key.equals(Preferences.Keys.PANIC_ACTION)) {
updateSummaryWithChoice(panicAction, sharedPreferences.getString(key, "0"), getResources().getStringArray(R.array.panicActionOptions_));
}
}
private void updateSummaryWithChoice(Preference pref, String choiceValue, String[] choices) {
pref.setSummary(choices[Integer.parseInt(choiceValue)]);
}
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
switch (item.getItemId())
{
case android.R.id.home:
{
finish();
return true;
}
}
return super.onOptionsItemSelected(item);
}
private void setIcon (boolean enableAltIcon) {
Context ctx = this;
PackageManager pm = getPackageManager();
ActivityManager am = (ActivityManager)getSystemService(Activity.ACTIVITY_SERVICE);
// Enable/disable activity-aliases
pm.setComponentEnabledSetting(
new ComponentName(ctx, "org.witness.informacam.app.InformaActivity-Alt"),
enableAltIcon ? PackageManager.COMPONENT_ENABLED_STATE_ENABLED : PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
PackageManager.DONT_KILL_APP
);
pm.setComponentEnabledSetting(
new ComponentName(ctx, "org.witness.informacam.app.InformaActivity"),
(!enableAltIcon) ? PackageManager.COMPONENT_ENABLED_STATE_ENABLED : PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
PackageManager.DONT_KILL_APP
);
// Find launcher and kill it
Intent i = new Intent(Intent.ACTION_MAIN);
i.addCategory(Intent.CATEGORY_HOME);
i.addCategory(Intent.CATEGORY_DEFAULT);
List<ResolveInfo> resolves = pm.queryIntentActivities(i, 0);
for (ResolveInfo res : resolves) {
if (res.activityInfo != null) {
am.killBackgroundProcesses(res.activityInfo.packageName);
}
}
// Change ActionBar icon
}
}