1 package com.yuji.ef.utility;
4 import java.util.Calendar;
6 import android.content.Context;
7 import android.content.SharedPreferences;
8 import android.os.Environment;
10 import com.evernote.client.conn.ApplicationInfo;
11 import com.evernote.client.oauth.android.EvernoteSession;
12 import com.yuji.ef.common.Constant;
13 import com.yuji.ef.pref.EditPrefUtil;
14 import com.yuji.ef.pref.PrefUtil;
15 import com.yuji.ef.pref.PrefUtilImpl;
17 public class OAuthUtil {
18 private static final String CONSUMER_KEY = "yuji-k64613";
21 private static final String CONSUMER_SECRET = "G5r7t1nHC+AIf6dYHuIVC7Jr/iVIMtgMZ0PObN6xV2Q=";
23 //private static final String CONSUMER_SECRET = "HZQMov54fiINXUULskHPRSoK9rPFxVN/4zw5a5n6IeM=" ;
24 private static final String APP_DATA_PATH = "/Android/data/com.yuji.ef/temp/";
25 private static final String EVERNOTE_HOST = "www.evernote.com";
27 private static final String APP_NAME = "FolderErver";
28 private static final String APP_VERSION = "1.0.0";
30 private static OAuthUtil instance = null;
31 private static String consumerSecret = null;
32 private EvernoteSession session;
34 public static OAuthUtil getInstance() {
35 if (instance == null) {
36 instance = new OAuthUtil();
45 public EvernoteSession setupSession(Context context) {
46 if (consumerSecret == null){
47 Encryption en = Encryption.getInstance();
48 //String s = en.getEncrypted(context, "");
49 consumerSecret = en.getDecrypted(context, CONSUMER_SECRET);
52 ApplicationInfo info = new ApplicationInfo(CONSUMER_KEY,
53 consumerSecret, EVERNOTE_HOST, APP_NAME, APP_VERSION);
55 // Retrieve persisted authentication information
56 session = new EvernoteSession(info,
57 getPreferencesForAuthData(context), getTempDir());
60 EditPrefUtil pref = new EditPrefUtil(context);
61 Calendar cal = Calendar.getInstance();
62 long now = cal.getTimeInMillis();
63 long loginTime = pref.getLong(Constant.PREF_LOGIN_DATE);
64 long diff = (now - loginTime) / 1000;
66 //if (loginTime > 0 && diff > 60){ // 1分
67 if (loginTime > 0 && diff > (365 - 1) * 24 * 60 * 60){ // 余裕を持って1日前に削除
69 pref.put(Constant.PREF_LOGIN_DATE, 0L);
72 session = new EvernoteSession(info,
73 getPreferencesForAuthData(context), getTempDir());
79 public boolean isCompleteAuth(Context context) {
80 if (session == null) {
84 .completeAuthentication(getPreferencesForAuthData(context));
87 public SharedPreferences getPreferencesForAuthData(Context context) {
88 PrefUtil pref = new PrefUtilImpl(context);
89 return pref.getSharedPreferences();
92 private File getTempDir() {
93 return new File(Environment.getExternalStorageDirectory(),
97 public EvernoteSession getSession() {
101 public void logout(Context context){
102 session.logOut(getPreferencesForAuthData(context));
104 EditPrefUtil pref = new EditPrefUtil(context);
105 pref.put(Constant.PREF_LOGIN_DATE, 0L);
109 public void setLoginTime(Context context) {
110 Calendar cal = Calendar.getInstance();
111 long t = cal.getTimeInMillis();
112 EditPrefUtil pref = new EditPrefUtil(context);
113 pref.put(Constant.PREF_LOGIN_DATE, t);