package im.zico.wingtwitter; import android.app.Application; import android.content.Context; import android.content.SharedPreferences; import im.zico.wingtwitter.dao.WingDataHelper; import im.zico.wingtwitter.type.WingUser; import im.zico.wingtwitter.utils.PrefKey; import im.zico.wingtwitter.utils.PreferencesManager; import twitter4j.AsyncTwitter; import twitter4j.AsyncTwitterFactory; import twitter4j.TwitterAdapter; import twitter4j.TwitterListener; import twitter4j.conf.Configuration; import twitter4j.conf.ConfigurationBuilder; /** * Created by tinyao on 11/30/14. */ public class WingApp extends Application { public static final String TWITTER_APP_NAME = "Wing for Twitter"; public static final String TWITTER_APP_SOURCE = "<a href=http://zico.im'>Wing</a>"; public static boolean uiInForeground = false; private static Context sContext; private static AsyncTwitterFactory mFactory = null; // private static AsyncTwitter asyncTwitter; @Override public void onCreate() { super.onCreate(); sContext = getApplicationContext(); } public static Context getContext() { return sContext; } private static AsyncTwitterFactory initializeTwitterFactory() { ConfigurationBuilder builder = new ConfigurationBuilder(); builder.setOAuthConsumerKey(APIKey.TWITTER_CONSUMER_KEY); builder.setOAuthConsumerSecret(APIKey.TWITTER_CONSUMER_SECRET); builder.setAsyncNumThreads(5); builder.setHttpConnectionTimeout(10000); builder.setPrettyDebugEnabled(true); if (PreferencesManager.getInstance(sContext).hasKey(PrefKey.KEY_ACCESSTOKEN)) { String accessToken = PreferencesManager.getInstance(sContext).getValue(PrefKey.KEY_ACCESSTOKEN); String tokenSecret = PreferencesManager.getInstance(sContext).getValue(PrefKey.KEY_TOKENSECRET); builder.setOAuthAccessToken(accessToken); builder.setOAuthAccessTokenSecret(tokenSecret); } Configuration configuration = builder.build(); return mFactory = new AsyncTwitterFactory(configuration); } public static AsyncTwitter newTwitterInstance() { if (mFactory == null) { mFactory = initializeTwitterFactory(); } return mFactory.getInstance(); } private static long cUserId = -1; private static String cScreenName; private static WingUser mUser; public static long getCurrentUserID() { if(cUserId == -1) { if (PreferencesManager.getInstance(sContext).hasKey(PrefKey.KEY_USERID)) { return PreferencesManager.getInstance(sContext).getLongValue(PrefKey.KEY_USERID); } } return cUserId; } public static String getCurrentScreenName() { if(cScreenName == null) { if (PreferencesManager.getInstance(sContext).hasKey(PrefKey.KEY_USERID)) { return PreferencesManager.getInstance(sContext).getValue(PrefKey.KEY_SCREENNAME); } } return cScreenName; } public static WingUser getCurrentAccountUser() { if (mUser == null) { SharedPreferences sp = PreferencesManager.getInstance(sContext).getSharedPrefs(); if (sp.contains(PrefKey.KEY_USERID)) { cUserId = sp.getLong(PrefKey.KEY_USERID, 0); return new WingDataHelper(sContext).getUser(cUserId); } } return mUser; } // public static AsyncTwitter getTwitterNew() { // ConfigurationBuilder builder = new ConfigurationBuilder(); // builder.setOAuthConsumerKey(APIKey.TWITTER_CONSUMER_KEY); // builder.setOAuthConsumerSecret(APIKey.TWITTER_CONSUMER_SECRET); // builder.setAsyncNumThreads(5); // if (PreferencesManager.getInstance(sContext).hasKey(PrefKey.KEY_ACCESSTOKEN)) { // String accessToken = PreferencesManager.getInstance(sContext).getValue(PrefKey.KEY_ACCESSTOKEN); // String tokenSecret = PreferencesManager.getInstance(sContext).getValue(PrefKey.KEY_TOKENSECRET); // builder.setOAuthAccessToken(accessToken); // builder.setOAuthAccessTokenSecret(tokenSecret); // } // Configuration configuration = builder.build(); // return new AsyncTwitterFactory(configuration).getInstance(); // } public static void resetAsyncTwitter() { mFactory = null; } }