/**
* Odoo, Open Source Management Solution
* Copyright (C) 2012-today Odoo SA (<http:www.odoo.com>)
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http:www.gnu.org/licenses/>
*
* Created on 9/1/15 11:32 AM
*/
package com.odoo;
import android.accounts.Account;
import android.content.ContentResolver;
import android.content.Intent;
import android.content.SyncAdapterType;
import android.os.Bundle;
import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBarActivity;
import android.view.MenuItem;
import android.widget.Toast;
import com.odoo.core.account.About;
import com.odoo.core.account.OdooLogin;
import com.odoo.core.support.OUser;
import com.odoo.core.support.sync.SyncUtils;
import com.odoo.core.utils.OActionBarUtils;
import com.odoo.core.utils.OPreferenceManager;
import com.odoo.core.utils.OResource;
import java.util.ArrayList;
import java.util.List;
public class SettingsActivity extends ActionBarActivity {
public static final String TAG = SettingsActivity.class.getSimpleName();
public static final String ACTION_ABOUT = "com.odoo.ACTION_ABOUT";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.base_setting_activity);
OActionBarUtils.setActionBar(this, true);
ActionBar actionbar = getSupportActionBar();
actionbar.setHomeButtonEnabled(true);
actionbar.setDisplayHomeAsUpEnabled(true);
actionbar.setTitle(R.string.title_application_settings);
}
@Override
public void startActivity(Intent intent) {
if (intent.getAction() != null
&& intent.getAction().equals(ACTION_ABOUT)) {
Intent about = new Intent(this, About.class);
super.startActivity(about);
return;
}
super.startActivity(intent);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == android.R.id.home) {
finish();
}
return super.onOptionsItemSelected(item);
}
@Override
public void onDetachedFromWindow() {
super.onDetachedFromWindow();
settingUpdated();
}
private void settingUpdated() {
OUser user = OUser.current(this);
if (user == null) {
Intent loginActivity = new Intent(this, OdooLogin.class);
loginActivity.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(loginActivity);
finish();
} else {
Account mAccount = user.getAccount();
OPreferenceManager mPref = new OPreferenceManager(this);
int sync_interval = mPref.getInt("sync_interval", 1440);
List<String> default_authorities = new ArrayList<>();
default_authorities.add("com.android.calendar");
default_authorities.add("com.android.contacts");
SyncAdapterType[] list = ContentResolver.getSyncAdapterTypes();
for (SyncAdapterType lst : list) {
if (lst.authority.contains("com.odoo")
&& lst.authority.contains("providers")) {
default_authorities.add(lst.authority);
}
}
for (String authority : default_authorities) {
boolean isSyncActive = ContentResolver.getSyncAutomatically(
mAccount, authority);
if (isSyncActive) {
SyncUtils.get(this).setSyncPeriodic(authority, sync_interval, 60, 1);
}
}
Toast.makeText(this, OResource.string(this, R.string.toast_setting_saved),
Toast.LENGTH_LONG).show();
}
}
}