/*
* Copyright (C) 2011-2012 sakuramilk <c.sakuramilk@gmail.com>
*
* 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 net.sakuramilk.TweakGS2.About;
import net.sakuramilk.TweakGS2.R;
import net.sakuramilk.util.Misc;
import net.sakuramilk.util.RootProcess;
import net.sakuramilk.TweakGS2.Display.DisplaySetting;
import net.sakuramilk.TweakGS2.Dock.DockSetting;
import net.sakuramilk.TweakGS2.General.GeneralSetting;
import net.sakuramilk.TweakGS2.General.LowMemKillerSetting;
import net.sakuramilk.TweakGS2.General.SystemPropertySetting;
import net.sakuramilk.TweakGS2.General.VirtualMemorySetting;
import net.sakuramilk.TweakGS2.Notification.NotificationSetting;
import net.sakuramilk.widget.ConfirmDialog;
import net.sakuramilk.TweakGS2.SoundAndVib.HwVolumeSetting;
import net.sakuramilk.TweakGS2.SoundAndVib.SoundAndVibSetting;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.net.Uri;
import android.os.Bundle;
import android.preference.Preference;
import android.preference.PreferenceActivity;
import android.preference.PreferenceManager;
import android.preference.PreferenceScreen;
public class AboutPreferenceActivity extends PreferenceActivity
implements Preference.OnPreferenceClickListener {
private PreferenceScreen mVersion;
private PreferenceScreen mCheckUpdate;
private PreferenceScreen mRecommend;
private PreferenceScreen mReset;
private Context mContext;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mContext = this;
addPreferencesFromResource(R.xml.about_pref);
mVersion = (PreferenceScreen)findPreference("about_version");
mVersion.setSummary(Misc.getVersionName(this));
mCheckUpdate = (PreferenceScreen)findPreference("about_check_update");
mCheckUpdate.setOnPreferenceClickListener(this);
mRecommend = (PreferenceScreen)findPreference("about_recommend");
mRecommend.setOnPreferenceClickListener(this);
mReset = (PreferenceScreen)findPreference("about_reset");
mReset.setOnPreferenceClickListener(this);
}
public boolean onPreferenceClick(Preference preference)
{
if (preference == mReset) {
final ConfirmDialog confirmDialog = new ConfirmDialog(this);
confirmDialog.setResultListener(new ConfirmDialog.ResultListener() {
@Override
public void onYes() {
// clear shared preference
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(mContext);
Editor ed = settings.edit();
ed.clear();
ed.commit();
SystemPropertySetting sysPropSetting = new SystemPropertySetting(mContext);
sysPropSetting.reset();
Misc.confirmReboot(mContext, R.string.reboot_reflect_comfirm);
}
@Override
public void onCancel() {
}
});
confirmDialog.show(R.string.all_reset_title, R.string.all_reset_summary);
} else if (preference == mRecommend) {
final ConfirmDialog confirmDialog = new ConfirmDialog(this);
confirmDialog.setResultListener(new ConfirmDialog.ResultListener() {
@Override
public void onYes() {
RootProcess process = new RootProcess();
process.init();
// General
GeneralSetting generalSetting = new GeneralSetting(mContext, process);
generalSetting.setRecommend();
LowMemKillerSetting lowMemKillerSetting = new LowMemKillerSetting(mContext, process);
lowMemKillerSetting.setRecommend();
VirtualMemorySetting vmSetting = new VirtualMemorySetting(mContext, process);
vmSetting.setRecommend();
// Sound and vib
HwVolumeSetting hwVolumeSetting = new HwVolumeSetting(mContext, process);
hwVolumeSetting.setRecommend();
SoundAndVibSetting vibSetting = new SoundAndVibSetting(mContext, process);
vibSetting.setRecommend();
// Display
DisplaySetting displaySetting = new DisplaySetting(mContext, process);
displaySetting.setRecommend();
// Notification
NotificationSetting notifySetting = new NotificationSetting(mContext, process);
notifySetting.setRecommend();
// Dock
DockSetting dockSetting = new DockSetting(mContext, process);
dockSetting.setRecommend();
process.term();
process = null;
Misc.confirmReboot(mContext, R.string.reboot_reflect_comfirm);
}
@Override
public void onCancel() {
}
});
confirmDialog.show(R.string.all_recommend_title, R.string.all_recommend_summary);
} else if (preference == mCheckUpdate) {
Uri uri = Uri.parse("https://play.google.com/store/apps/details?id=net.sakuramilk.TweakGS2");
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);
}
return false;
}
}