/* * This file is part of Find Your Friend. * * Find Your Friend is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Find Your Friend 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with Find Your Friend. If not, see <http://www.gnu.org/licenses/>. */ package com.sgu.findyourfriend.mgr; import java.sql.Date; import java.sql.Timestamp; import java.util.ArrayList; import android.content.Context; import android.util.Log; import com.google.android.gms.maps.model.LatLng; import com.sgu.findyourfriend.model.Friend; import com.sgu.findyourfriend.model.User; import com.sgu.findyourfriend.net.PostData; public class MyProfileManager extends BaseManager { private static MyProfileManager instance; private Friend mineF; public Friend mTemp; public void init(Context context, int mId, boolean isForce) { super.init(context); if (isForce || !isLoaded()) load(mId); } public synchronized static MyProfileManager getInstance() { if (instance == null) { instance = new MyProfileManager(); } return instance; } public void load(int mId) { // load from server ArrayList<String> numLogins = new ArrayList<String>(); if (Config.MODE_OFFLINE) { numLogins.add("123456789"); numLogins.add("987654321"); User mineOff = new User(38, "admin", "", "", new Timestamp( System.currentTimeMillis()), 1, "address", new Date(1993, 10, 12), "saigon", "uni", "email@gmail.com", "", true); mineF = new Friend(mineOff, numLogins, true, Friend.SHARE_RELATIONSHIP, new LatLng(10.906605, 107.2491654), null); return; } numLogins.addAll(PostData.accountGetNumbersById(context, mId)); User mineUser = PostData.userGetMyProfile(context, mId); mineF = new Friend(mineUser, numLogins, true, Friend.SHARE_RELATIONSHIP, PostData.historyGetLastUserLocation( context, mId), null); } public void clear() { mineF = null; } @Override public void setup() { mineF.setAcceptState(Friend.SHARE_RELATIONSHIP); } public boolean isLoaded() { return null != mineF; } public Friend getMineInstance() { return mineF; } public int getMyID() { if (null == mineF || null == mineF.getUserInfo()) return SettingManager.getInstance().getLastAccountIdLogin(); return mineF.getUserInfo().getId(); } public String getMyName() { return mineF.getUserInfo().getName(); } public void addMyPhoneNumber(String num) { mineF.getNumberLogin().add(num); } public void removeMyPhoneNumber(String num) { mineF.getNumberLogin().remove(num); } public ArrayList<String> getMyPhoneNumberNotCurrent() { ArrayList<String> nums = new ArrayList<String>(); for (String num : mineF.getNumberLogin()) { if (!num.equals(getMyPhoneLogin())) nums.add(num); } return nums; } public LatLng getMyPosition() { if (null != mineF) return mineF.getLastLocation(); return null; } public String getMyGCMID() { return mineF.getUserInfo().getGcmId(); } public void setMyGCMID(String gcmID) { if (null != mineF) mineF.getUserInfo().setGcmId(gcmID); } public void setMyPosition(LatLng position) { if (null != mineF) mineF.setLastLocation(position); } public String getImage() { return mineF.getUserInfo().getAvatar(); } public String getImageLink() { return mineF.getUserInfo().getInternetImageLink(); } public CharSequence getMyPhoneLogin() { return SettingManager.getInstance().getPhoneAutoLogin(); } // public void loadOffline() { // mineF = SQLiteDatabaseManager.getInstance().getMyProfile(); // // if (null == mineF) // Log.i("MyProfileManager", "mine null"); // // } }