BaseLoginActivity.java 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. package com.liaobo.im.ui.base;
  2. import android.os.Bundle;
  3. import android.util.Log;
  4. import android.view.View;
  5. import android.view.inputmethod.InputMethodManager;
  6. import com.liaobo.im.AppConfig;
  7. import com.liaobo.im.R;
  8. import com.liaobo.im.bean.User;
  9. import java.util.ArrayList;
  10. import java.util.List;
  11. public abstract class BaseLoginActivity extends ActionBackActivity implements CoreStatusListener {
  12. public CoreManager coreManager;
  13. private List<CoreStatusListener> coreStatusListeners;
  14. private boolean loginRequired = true;
  15. private boolean configRequired = true;
  16. protected void noLoginRequired() {
  17. Log.d(TAG, "noLoginRequired() called");
  18. loginRequired = false;
  19. }
  20. protected void noConfigRequired() {
  21. Log.d(TAG, "noConfigRequired() called");
  22. configRequired = false;
  23. }
  24. // 注册CoreManager初始化状态的监听,比如fragment可以调用,
  25. public void addCoreStatusListener(CoreStatusListener listener) {
  26. coreStatusListeners.add(listener);
  27. }
  28. public User getUser() {
  29. return coreManager.getSelf();
  30. }
  31. public String getToken() {
  32. return coreManager.getSelfStatus().accessToken;
  33. }
  34. public AppConfig getAppConfig() {
  35. return coreManager.getConfig();
  36. }
  37. @Override
  38. protected void onCreate(Bundle savedInstanceState) {
  39. super.onCreate(savedInstanceState);
  40. initCore();
  41. }
  42. private void initCore() {
  43. Log.d(TAG, "initCore() called");
  44. if (coreManager == null) {
  45. coreManager = new CoreManager(this, this);
  46. }
  47. if (coreStatusListeners == null) {
  48. coreStatusListeners = new ArrayList<>();
  49. }
  50. coreManager.init(loginRequired, configRequired);
  51. }
  52. @Override
  53. public void onCoreReady() {
  54. Log.d(TAG, "onCoreReady() called");
  55. for (CoreStatusListener listener : coreStatusListeners) {
  56. listener.onCoreReady();
  57. }
  58. }
  59. @Override
  60. public void finish() {
  61. hideSoftInputFromWindow(getWindow().getDecorView());
  62. super.finish();
  63. }
  64. @Override
  65. protected void onDestroy() {
  66. coreManager.destroy();
  67. super.onDestroy();
  68. }
  69. public void hideSoftInputFromWindow(View view){
  70. InputMethodManager inputManager = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
  71. if (inputManager != null && view!=null) {
  72. inputManager.hideSoftInputFromWindow(view.getWindowToken(), 0); // 强制隐藏键盘
  73. }
  74. }
  75. }