package com.RSen.Commandr.ui.fragment;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Bundle;
import android.preference.CheckBoxPreference;
import android.preference.Preference;
import android.preference.Preference.OnPreferenceClickListener;
import android.preference.PreferenceFragment;
import android.view.View;
import android.widget.Toast;
import com.RSen.Commandr.R;
import com.RSen.Commandr.core.MyAccessibilityService;
import com.RSen.Commandr.tasker.TaskerIntent;
import com.RSen.Commandr.ui.activity.DonationsActivity;
import com.RSen.Commandr.ui.activity.MostWantedCommandsActivity;
import com.RSen.Commandr.ui.activity.SetupActivity;
import com.RSen.Commandr.ui.activity.TaskerActivity;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdView;
import com.google.android.gms.ads.mediation.admob.AdMobExtras;
/**
* @author Ryan Senanayake
* Commandr for Google Now
* SettingsFragment.java
* @version 1.0
* 5/28/14
*/
public class SettingsFragment extends PreferenceFragment {
/**
* Called when the fragment is created
*/
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.pref_general);
findPreference("mostWanted").setOnPreferenceClickListener(new OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference arg0) {
// Create new fragment and transaction
startActivity(new Intent(getActivity(), MostWantedCommandsActivity.class));
return true;
}
});
findPreference("donate").setOnPreferenceClickListener(new OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference arg0) {
// Create new fragment and transaction
startActivity(new Intent(getActivity(), DonationsActivity.class));
return true;
}
});
findPreference("usexposed").setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object o) {
if ((Boolean) o) {
PackageManager pm = getActivity().getPackageManager();
boolean app_installed = false;
int versionCode = 0;
try {
versionCode = pm.getPackageInfo("com.mohammadag.googlesearchapi", PackageManager.GET_ACTIVITIES).versionCode;
app_installed = true;
} catch (PackageManager.NameNotFoundException e) {
app_installed = false;
}
if (app_installed) {
if (versionCode < 8) {
Toast.makeText(getActivity(), getActivity().getString(R.string.update_xposed), Toast.LENGTH_LONG).show();
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://forum.xda-developers.com/showpost.php?p=54661258&postcount=328"));
startActivity(browserIntent);
} else if (MyAccessibilityService.isAccessibilitySettingsOn(getActivity())) {
Toast.makeText(getActivity(), getActivity().getString(R.string.disable_accessibility), Toast.LENGTH_LONG).show();
Intent intent = new Intent(android.provider.Settings.ACTION_ACCESSIBILITY_SETTINGS);
startActivityForResult(intent, 2);
return true;
}
} else {
Toast.makeText(getActivity(), getActivity().getString(R.string.install_xposed), Toast.LENGTH_LONG).show();
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://forum.xda-developers.com/showpost.php?p=54661258&postcount=328"));
startActivity(browserIntent);
}
return false;
}
return true;
}
});
findPreference("ads").setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object o) {
AdView adView = (AdView) getActivity().findViewById(R.id.adView);
if ((Boolean) o) {
adView.setVisibility(View.VISIBLE);
Bundle bundle = new Bundle();
bundle.putString("color_bg", "4285f4");
bundle.putString("color_bg_top", "4285f4");
bundle.putString("color_border", "4285f4");
bundle.putString("color_link", "EEEEEE");
bundle.putString("color_text", "FFFFFF");
bundle.putString("color_url", "EEEEEE");
AdMobExtras extras = new AdMobExtras(bundle);
AdRequest adRequest = new AdRequest.Builder().addTestDevice("49924C4BF3738C69A7497A524D092901").addNetworkExtras(extras).build();
adView.loadAd(adRequest);
} else {
adView.setVisibility(View.GONE);
}
return true;
}
});
}
@Override
public void onResume() {
super.onResume();
try {
boolean noteToSelfRequired = !MyAccessibilityService.isAccessibilitySettingsOn(getActivity());
if (noteToSelfRequired) {
((CheckBoxPreference) findPreference("notetoselfrequired")).setChecked(true);
findPreference("notetoselfrequired").setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object o) {
((CheckBoxPreference) preference).setChecked(!((Boolean) o));
Toast.makeText(getActivity(), R.string.change_reconfigure, Toast.LENGTH_LONG).show();
startActivity(new Intent(getActivity(), SetupActivity.class));
getActivity().finish();
return false;
}
});
} else {
getPreferenceScreen().removePreference(findPreference("notetoselfrequired"));
}
} catch (Exception e) {
}
if (TaskerIntent.taskerInstalled(getActivity())) {
if (TaskerIntent.testStatus(getActivity()).equals(TaskerIntent.Status.NotEnabled)) {
findPreference("taskerCommands").setSummary(getString(R.string.enable_tasker));
} else if (TaskerIntent.testStatus(getActivity()).equals(TaskerIntent.Status.AccessBlocked)) {
findPreference("taskerCommands").setSummary(getString(R.string.tasker_permission));
findPreference("taskerCommands").setOnPreferenceClickListener(new OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference arg0) {
startActivity(TaskerIntent.getExternalAccessPrefsIntent());
return true;
}
});
} else {
findPreference("taskerCommands").setOnPreferenceClickListener(new OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference arg0) {
// Create new fragment and transaction
startActivity(new Intent(getActivity(), TaskerActivity.class));
return true;
}
});
}
} else {
findPreference("taskerCommands").setSummary(getString(R.string.install_tasker));
findPreference("taskerCommands").setOnPreferenceClickListener(new OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference arg0) {
final String appPackageName = "net.dinglisch.android.taskerm"; // getPackageName() from Context or Activity object
try {
getActivity().startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + appPackageName)));
} catch (android.content.ActivityNotFoundException anfe) {
getActivity().startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://play.google.com/store/apps/details?id=" + appPackageName)));
}
return true;
}
});
}
}
}