/** * Odoo, Open Source Management Solution * Copyright (C) 2012-today Odoo SA (<http:www.odoo.com>) * <p/> * 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 * <p/> * 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 * <p/> * 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/> * <p/> * Created on 17/12/14 6:19 PM */ package com.odoo.core.support; import android.accounts.Account; import android.accounts.AccountManager; import android.content.Context; import android.os.Bundle; import android.util.Log; import com.odoo.core.auth.OdooAccountManager; import odoo.helper.OdooVersion; public class OUser extends odoo.helper.OUser { public static final int USER_ACCOUNT_VERSION = 2; private Account account; private OdooVersion odooVersion; public static OUser current(Context context) { return OdooAccountManager.getActiveUser(context); } @Override public Bundle getAsBundle() { Bundle data = super.getAsBundle(); // Converting each value to string. Account supports only string values for (String key : data.keySet()) { data.putString(key, data.get(key) + ""); } return data; } public void setFromBundle(Bundle data) { fillFromBundle(data); } public void fillFromAccount(AccountManager accMgr, Account account) { setName(accMgr.getUserData(account, "name")); setUsername(accMgr.getUserData(account, "username")); setUserId(Integer.parseInt(accMgr.getUserData(account, "user_id"))); setPartnerId(Integer.parseInt(accMgr.getUserData(account, "partner_id"))); setTimezone(accMgr.getUserData(account, "timezone")); setIsActive(Boolean.parseBoolean(accMgr.getUserData(account, "isactive"))); setAvatar(accMgr.getUserData(account, "avatar")); setDatabase(accMgr.getUserData(account, "database")); setHost(accMgr.getUserData(account, "host")); setAndroidName(accMgr.getUserData(account, "android_name")); setPassword(accMgr.getUserData(account, "password")); setCompanyId(Integer.parseInt(accMgr.getUserData(account, "company_id"))); setAllowForceConnect(Boolean.parseBoolean(accMgr.getUserData(account, "allow_self_signed_ssl"))); try { OdooVersion version = new OdooVersion(); version.setServerSerie(accMgr.getUserData(account, "server_serie")); version.setVersionType(accMgr.getUserData(account, "version_type")); version.setVersionRelease(accMgr.getUserData(account, "version_release")); version.setVersionNumber(Integer.parseInt(accMgr.getUserData(account, "version_number"))); version.setVersionTypeNumber(Integer.parseInt(accMgr.getUserData(account, "version_type_number"))); version.setServerVersion(accMgr.getUserData(account, "server_version")); setOdooVersion(version); } catch (Exception e) { e.printStackTrace(); Log.w(TAG, e.getMessage()); } // If oAuth login setOAuthLogin(Boolean.parseBoolean(accMgr.getUserData(account, "oauth_login"))); setInstanceDatabase(accMgr.getUserData(account, "instance_database")); setInstanceURL(accMgr.getUserData(account, "instance_url")); setClientId(accMgr.getUserData(account, "client_id")); } public String getDBName() { String db_name = "OdooSQLite"; db_name += "_" + getUsername(); db_name += "_" + getDatabase(); return db_name + ".db"; } @Override public String toString() { return getAndroidName(); } public Account getAccount() { return account; } public void setAccount(Account account) { this.account = account; } @Override public OdooVersion getOdooVersion() { return odooVersion; } @Override public void setOdooVersion(OdooVersion odooVersion) { this.odooVersion = odooVersion; } }