OSDN Git Service

A29794
[everfolder/source.git] / source / workspace / EverFolder / src / com / yuji / ef / utility / OAuthUtil.java
index 9632a21..c4c1eff 100644 (file)
@@ -1,20 +1,26 @@
 package com.yuji.ef.utility;
 
 import java.io.File;
+import java.util.Calendar;
 
-import android.app.Activity;
 import android.content.Context;
 import android.content.SharedPreferences;
 import android.os.Environment;
 
 import com.evernote.client.conn.ApplicationInfo;
 import com.evernote.client.oauth.android.EvernoteSession;
+import com.yuji.ef.common.Constant;
+import com.yuji.ef.pref.EditPrefUtil;
 import com.yuji.ef.pref.PrefUtil;
 import com.yuji.ef.pref.PrefUtilImpl;
 
 public class OAuthUtil {
        private static final String CONSUMER_KEY = "yuji-k64613";
-       private static final String CONSUMER_SECRET = "98b2cbf35f747d2d";
+       // TODO
+       // Debian
+       private static final String CONSUMER_SECRET = "G5r7t1nHC+AIf6dYHuIVC7Jr/iVIMtgMZ0PObN6xV2Q=";
+       // Mac
+       //private static final String CONSUMER_SECRET = "HZQMov54fiINXUULskHPRSoK9rPFxVN/4zw5a5n6IeM=" ;        
        private static final String APP_DATA_PATH = "/Android/data/com.yuji.ef/temp/";
        private static final String EVERNOTE_HOST = "www.evernote.com";
 
@@ -22,6 +28,7 @@ public class OAuthUtil {
        private static final String APP_VERSION = "1.0.0";
 
        private static OAuthUtil instance = null;
+       private static String consumerSecret = null;
        private EvernoteSession session;
 
        public static OAuthUtil getInstance() {
@@ -36,12 +43,36 @@ public class OAuthUtil {
        }
 
        public EvernoteSession setupSession(Context context) {
+               if (consumerSecret == null){
+                       Encryption en = Encryption.getInstance();
+                       //String s = en.getEncrypted(context, "");
+                       consumerSecret = en.getDecrypted(context, CONSUMER_SECRET);
+               }
+               
                ApplicationInfo info = new ApplicationInfo(CONSUMER_KEY,
-                               CONSUMER_SECRET, EVERNOTE_HOST, APP_NAME, APP_VERSION);
+                               consumerSecret, EVERNOTE_HOST, APP_NAME, APP_VERSION);
 
                // Retrieve persisted authentication information
                session = new EvernoteSession(info,
                                getPreferencesForAuthData(context), getTempDir());
+
+               // セッションの期限切れをチェック
+               EditPrefUtil pref = new EditPrefUtil(context);
+               Calendar cal = Calendar.getInstance();
+               long now = cal.getTimeInMillis();
+               long loginTime = pref.getLong(Constant.PREF_LOGIN_DATE);
+               long diff = (now - loginTime) / 1000;
+
+               //if (loginTime > 0 && diff > 60){ // 1分
+               if (loginTime > 0 && diff > (365 - 1) * 24 * 60 * 60){ // 余裕を持って1日前に削除
+                       logout(context);
+                       pref.put(Constant.PREF_LOGIN_DATE, 0L);
+                       pref.update();
+
+                       session = new EvernoteSession(info,
+                                       getPreferencesForAuthData(context), getTempDir());
+               }
+               
                return session;
        }
 
@@ -67,4 +98,19 @@ public class OAuthUtil {
                return session;
        }
 
+       public void logout(Context context){
+           session.logOut(getPreferencesForAuthData(context)); 
+
+           EditPrefUtil pref = new EditPrefUtil(context);
+               pref.put(Constant.PREF_LOGIN_DATE, 0L);
+               pref.update();
+       }
+
+       public void setLoginTime(Context context) {
+               Calendar cal = Calendar.getInstance();
+               long t = cal.getTimeInMillis();
+               EditPrefUtil pref = new EditPrefUtil(context);
+               pref.put(Constant.PREF_LOGIN_DATE, t);
+               pref.update();
+       }
 }