// Path: app/src/main/java/com/baurine/instamaterial/manager/UserManager.java
// public class UserManager {
// 
//     private static final String WEIBO_PROFILE_KEY = "weibo_profile";
// 
//     private JSONObject mSnsJsonObj;
//     private UserSnsProfile mUserSnsProfile;
//     private AVUser mAVUser;
// 
//     private ACache mACache;
// 
//     // 注意，静态变量中不要维持对 context 的引用
//     // 所引用的成员在不用时也要尽早释放
//     private static UserManager mInstance;
// 
//     public static UserManager getInstance() {
//         if (mInstance == null) {
//             mInstance = new UserManager();
//         }
//         return mInstance;
//     }
// 
//     private UserManager() {
//         mACache = InstaMaterialApp.getACache();
//     }
// 
//     public void resetUserInfo() {
//         mSnsJsonObj = null;
//         mUserSnsProfile = null;
//         mAVUser = null;
//     }
// 
//     public void saveUserSnsProfile(JSONObject jsonObject) {
//         mSnsJsonObj = jsonObject;
//         if (jsonObject != null) {
//             mACache.put(WEIBO_PROFILE_KEY, jsonObject);
//         }
//     }
// 
//     public void saveAVUser(AVUser avUser) {
//         mAVUser = avUser;
// 
//         if (mSnsJsonObj == null) {
//             mSnsJsonObj = mACache.getAsJSONObject(WEIBO_PROFILE_KEY);
//         }
//         if (mSnsJsonObj != null) {
//             mUserSnsProfile = UserSnsProfile.createFromJsonObj(mSnsJsonObj);
//             // 释放引用
//             mSnsJsonObj = null;
//         }
//     }
// 
//     public UserSnsProfile getUserSnsProfile() {
//         return mUserSnsProfile;
//     }
// }
// 
// Path: app/src/main/java/com/baurine/instamaterial/ui/manager/ProgressDialogManager.java
// public class ProgressDialogManager {
// 
//     private static ProgressDialogManager mInstance;
// 
//     private ProgressDialog mProgresssDialog;
// 
//     public static ProgressDialogManager getInstance() {
//         if (mInstance == null) {
//             mInstance = new ProgressDialogManager();
//         }
//         return mInstance;
//     }
// 
//     private ProgressDialogManager() {
//     }
// 
//     public void showProgressDialog(Context context, String content) {
//         if (mProgresssDialog != null) {
//             return;
//         }
//         mProgresssDialog = new ProgressDialog(context);
//         mProgresssDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
//         mProgresssDialog.setMessage(content);
//         mProgresssDialog.setIndeterminate(false);
//         mProgresssDialog.setCancelable(false);
//         mProgresssDialog.show();
//     }
// 
//     public void hideProgressDialog() {
//         if (mProgresssDialog != null) {
//             mProgresssDialog.cancel();
//             mProgresssDialog = null;
//         }
//     }
// }
// 
// Path: app/src/main/java/com/baurine/instamaterial/utils/CommonUtils.java
// public class CommonUtils {
// 
//     private static int mScreenWidth = 0;
//     private static int mScreenHeight = 0;
// 
//     private static void getScreenMetric(Context cxt) {
//         WindowManager wm = (WindowManager) cxt.getSystemService(Context.WINDOW_SERVICE);
//         Display display = wm.getDefaultDisplay();
//         Point size = new Point();
//         display.getSize(size);
//         mScreenWidth = size.x;
//         mScreenHeight = size.y;
//     }
// 
//     public static int getScreenWidth(Context cxt) {
//         if (mScreenHeight == 0) {
//             getScreenMetric(cxt);
//         }
// 
//         return mScreenWidth;
//     }
// 
//     public static int getScreenHeight(Context cxt) {
//         if (mScreenHeight == 0) {
//             getScreenMetric(cxt);
//         }
// 
//         return mScreenHeight;
//     }
// 
//     public static int dpToPx(int dp) {
//         return (int) (dp * Resources.getSystem().getDisplayMetrics().density);
//     }
// 
// }


import android.content.Intent;
import android.os.Bundle;
import android.view.animation.DecelerateInterpolator;
import android.view.animation.OvershootInterpolator;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.Toast;
import com.avos.avoscloud.AVException;
import com.avos.avoscloud.AVUser;
import com.avos.avoscloud.LogInCallback;
import com.avos.sns.SNS;
import com.avos.sns.SNSBase;
import com.avos.sns.SNSCallback;
import com.avos.sns.SNSException;
import com.avos.sns.SNSType;
import com.baurine.instamaterial.R;
import com.baurine.instamaterial.manager.UserManager;
import com.baurine.instamaterial.ui.manager.ProgressDialogManager;
import com.baurine.instamaterial.utils.CommonUtils;
import butterknife.InjectView;
import butterknife.OnClick;
                        @Override
                        public void done(final AVUser user, AVException e) {
                            if (e == null) {
                                UserManager.getInstance().saveAVUser(user);
                                showMessage("Login success!");
                                MainActivity.enterFromLoginActivity(LoginActivity.this);
                            } else {
                                showMessage(e.getMessage());
                            }
                        }
                    });
                } else {
                    showMessage(e.getMessage());
                }
            }
        });
    }

    @OnClick(R.id.btn_login_guest)
    public void loginAsGuest() {
        MainActivity.enterFromLoginActivity(this);
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        SNS.onActivityResult(requestCode, resultCode, data, SNSType.AVOSCloudSNSSinaWeibo);
    }

    private void showMessage(String message) {
// Path: app/src/main/java/com/baurine/instamaterial/manager/UserManager.java
// public class UserManager {
// 
//     private static final String WEIBO_PROFILE_KEY = "weibo_profile";
// 
//     private JSONObject mSnsJsonObj;
//     private UserSnsProfile mUserSnsProfile;
//     private AVUser mAVUser;
// 
//     private ACache mACache;
// 
//     // 注意，静态变量中不要维持对 context 的引用
//     // 所引用的成员在不用时也要尽早释放
//     private static UserManager mInstance;
// 
//     public static UserManager getInstance() {
//         if (mInstance == null) {
//             mInstance = new UserManager();
//         }
//         return mInstance;
//     }
// 
//     private UserManager() {
//         mACache = InstaMaterialApp.getACache();
//     }
// 
//     public void resetUserInfo() {
//         mSnsJsonObj = null;
//         mUserSnsProfile = null;
//         mAVUser = null;
//     }
// 
//     public void saveUserSnsProfile(JSONObject jsonObject) {
//         mSnsJsonObj = jsonObject;
//         if (jsonObject != null) {
//             mACache.put(WEIBO_PROFILE_KEY, jsonObject);
//         }
//     }
// 
//     public void saveAVUser(AVUser avUser) {
//         mAVUser = avUser;
// 
//         if (mSnsJsonObj == null) {
//             mSnsJsonObj = mACache.getAsJSONObject(WEIBO_PROFILE_KEY);
//         }
//         if (mSnsJsonObj != null) {
//             mUserSnsProfile = UserSnsProfile.createFromJsonObj(mSnsJsonObj);
//             // 释放引用
//             mSnsJsonObj = null;
//         }
//     }
// 
//     public UserSnsProfile getUserSnsProfile() {
//         return mUserSnsProfile;
//     }
// }
// 
// Path: app/src/main/java/com/baurine/instamaterial/ui/manager/ProgressDialogManager.java
// public class ProgressDialogManager {
// 
//     private static ProgressDialogManager mInstance;
// 
//     private ProgressDialog mProgresssDialog;
// 
//     public static ProgressDialogManager getInstance() {
//         if (mInstance == null) {
//             mInstance = new ProgressDialogManager();
//         }
//         return mInstance;
//     }
// 
//     private ProgressDialogManager() {
//     }
// 
//     public void showProgressDialog(Context context, String content) {
//         if (mProgresssDialog != null) {
//             return;
//         }
//         mProgresssDialog = new ProgressDialog(context);
//         mProgresssDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
//         mProgresssDialog.setMessage(content);
//         mProgresssDialog.setIndeterminate(false);
//         mProgresssDialog.setCancelable(false);
//         mProgresssDialog.show();
//     }
// 
//     public void hideProgressDialog() {
//         if (mProgresssDialog != null) {
//             mProgresssDialog.cancel();
//             mProgresssDialog = null;
//         }
//     }
// }
// 
// Path: app/src/main/java/com/baurine/instamaterial/utils/CommonUtils.java
// public class CommonUtils {
// 
//     private static int mScreenWidth = 0;
//     private static int mScreenHeight = 0;
// 
//     private static void getScreenMetric(Context cxt) {
//         WindowManager wm = (WindowManager) cxt.getSystemService(Context.WINDOW_SERVICE);
//         Display display = wm.getDefaultDisplay();
//         Point size = new Point();
//         display.getSize(size);
//         mScreenWidth = size.x;
//         mScreenHeight = size.y;
//     }
// 
//     public static int getScreenWidth(Context cxt) {
//         if (mScreenHeight == 0) {
//             getScreenMetric(cxt);
//         }
// 
//         return mScreenWidth;
//     }
// 
//     public static int getScreenHeight(Context cxt) {
//         if (mScreenHeight == 0) {
//             getScreenMetric(cxt);
//         }
// 
//         return mScreenHeight;
//     }
// 
//     public static int dpToPx(int dp) {
//         return (int) (dp * Resources.getSystem().getDisplayMetrics().density);
//     }
// 
// }


// Path: app/src/main/java/com/baurine/instamaterial/ui/activity/LoginActivity.java
import android.content.Intent;
import android.os.Bundle;
import android.view.animation.DecelerateInterpolator;
import android.view.animation.OvershootInterpolator;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.Toast;
import com.avos.avoscloud.AVException;
import com.avos.avoscloud.AVUser;
import com.avos.avoscloud.LogInCallback;
import com.avos.sns.SNS;
import com.avos.sns.SNSBase;
import com.avos.sns.SNSCallback;
import com.avos.sns.SNSException;
import com.avos.sns.SNSType;
import com.baurine.instamaterial.R;
import com.baurine.instamaterial.manager.UserManager;
import com.baurine.instamaterial.ui.manager.ProgressDialogManager;
import com.baurine.instamaterial.utils.CommonUtils;
import butterknife.InjectView;
import butterknife.OnClick;

                        @Override
                        public void done(final AVUser user, AVException e) {
                            if (e == null) {
                                UserManager.getInstance().saveAVUser(user);
                                showMessage("Login success!");
                                MainActivity.enterFromLoginActivity(LoginActivity.this);
                            } else {
                                showMessage(e.getMessage());
                            }
                        }
                    });
                } else {
                    showMessage(e.getMessage());
                }
            }
        });
    }

    @OnClick(R.id.btn_login_guest)
    public void loginAsGuest() {
        MainActivity.enterFromLoginActivity(this);
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        SNS.onActivityResult(requestCode, resultCode, data, SNSType.AVOSCloudSNSSinaWeibo);
    }

    private void showMessage(String message) {
        ProgressDialogManager.getInstance().hideProgressDialog();