MainMenu.java 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180
  1. package kr.co.icontrols.iotplatform;
  2. import android.app.Activity;
  3. import android.content.Context;
  4. import android.content.Intent;
  5. import android.content.res.TypedArray;
  6. import android.util.AttributeSet;
  7. import android.view.LayoutInflater;
  8. import android.view.View;
  9. import android.view.ViewGroup;
  10. import android.widget.LinearLayout;
  11. import androidx.annotation.Nullable;
  12. import java.util.Timer;
  13. import java.util.TimerTask;
  14. import kr.co.icontrols.iotplatform.DataClass.UserInfo;
  15. /**
  16. * 메인 메뉴 컴퍼넌트.
  17. */
  18. public class MainMenu extends LinearLayout {
  19. private String TAG = MainMenu.class.getSimpleName();
  20. private static Class<?> mOldActivity = null;
  21. public static final int MAIN_MENU_HOME = 1;
  22. public static final int MAIN_MENU_DEVICE = 2;
  23. public static final int MAIN_MENU_MY_GROUP = 3;
  24. public static final int MAIN_MENU_PROFILE = 4;
  25. private int mSelectedIndex = 0;
  26. private Context mContext;
  27. private static boolean mIsStartNextActivity = false;
  28. public MainMenu(Context context) {
  29. this(context,null);
  30. mContext = context;
  31. }
  32. public MainMenu(Context context, @Nullable AttributeSet attrs) {
  33. super(context, attrs);
  34. mContext = context;
  35. TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.MainMenu, 0, 0);
  36. mSelectedIndex = a.getInteger(R.styleable.MainMenu_selectedIndex,0);
  37. LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
  38. inflater.inflate(R.layout.main_menu, this, true);
  39. initComponents(mSelectedIndex);
  40. }
  41. private void initComponents(int index) {
  42. switch (index) {
  43. case MAIN_MENU_HOME:
  44. findViewById(R.id.layoutMenu01).setSelected(true);
  45. findViewById(R.id.layoutMenu02).setSelected(false);
  46. findViewById(R.id.layoutMenu03).setSelected(false);
  47. findViewById(R.id.layoutMenu04).setSelected(false);
  48. findViewById(R.id.txtMenu01).setSelected(true);
  49. findViewById(R.id.txtMenu02).setSelected(false);
  50. findViewById(R.id.txtMenu03).setSelected(false);
  51. findViewById(R.id.txtMenu04).setSelected(false);
  52. break;
  53. case MAIN_MENU_DEVICE:
  54. findViewById(R.id.layoutMenu01).setSelected(false);
  55. findViewById(R.id.layoutMenu02).setSelected(true);
  56. findViewById(R.id.layoutMenu03).setSelected(false);
  57. findViewById(R.id.layoutMenu04).setSelected(false);
  58. findViewById(R.id.txtMenu01).setSelected(false);
  59. findViewById(R.id.txtMenu02).setSelected(true);
  60. findViewById(R.id.txtMenu03).setSelected(false);
  61. findViewById(R.id.txtMenu04).setSelected(false);
  62. break;
  63. case MAIN_MENU_MY_GROUP:
  64. findViewById(R.id.layoutMenu01).setSelected(false);
  65. findViewById(R.id.layoutMenu02).setSelected(false);
  66. findViewById(R.id.layoutMenu03).setSelected(true);
  67. findViewById(R.id.layoutMenu04).setSelected(false);
  68. findViewById(R.id.txtMenu01).setSelected(false);
  69. findViewById(R.id.txtMenu02).setSelected(false);
  70. findViewById(R.id.txtMenu03).setSelected(true);
  71. findViewById(R.id.txtMenu04).setSelected(false);
  72. break;
  73. case MAIN_MENU_PROFILE:
  74. findViewById(R.id.layoutMenu01).setSelected(false);
  75. findViewById(R.id.layoutMenu02).setSelected(false);
  76. findViewById(R.id.layoutMenu03).setSelected(false);
  77. findViewById(R.id.layoutMenu04).setSelected(true);
  78. findViewById(R.id.txtMenu01).setSelected(false);
  79. findViewById(R.id.txtMenu02).setSelected(false);
  80. findViewById(R.id.txtMenu03).setSelected(false);
  81. findViewById(R.id.txtMenu04).setSelected(true);
  82. break;
  83. default:
  84. findViewById(R.id.layoutMenu01).setSelected(false);
  85. findViewById(R.id.layoutMenu02).setSelected(false);
  86. findViewById(R.id.layoutMenu03).setSelected(false);
  87. findViewById(R.id.layoutMenu04).setSelected(false);
  88. findViewById(R.id.txtMenu01).setSelected(false);
  89. findViewById(R.id.txtMenu02).setSelected(false);
  90. findViewById(R.id.txtMenu03).setSelected(false);
  91. findViewById(R.id.txtMenu04).setSelected(false);
  92. break;
  93. }
  94. findViewById(R.id.layoutMenu01).setOnClickListener(new OnClickListener() {
  95. @Override
  96. public void onClick(View v) {
  97. if(mSelectedIndex != MAIN_MENU_HOME) {
  98. changeActvityForMainMenu(MAIN_MENU_HOME, getContext());
  99. }
  100. }
  101. });
  102. findViewById(R.id.layoutMenu02).setOnClickListener(new OnClickListener() {
  103. @Override
  104. public void onClick(View v) {
  105. if(mSelectedIndex != MAIN_MENU_DEVICE) {
  106. changeActvityForMainMenu(MAIN_MENU_DEVICE, getContext());
  107. }
  108. }
  109. });
  110. findViewById(R.id.layoutMenu03).setOnClickListener(new OnClickListener() {
  111. @Override
  112. public void onClick(View v) {
  113. if(mSelectedIndex != MAIN_MENU_MY_GROUP) {
  114. changeActvityForMainMenu(MAIN_MENU_MY_GROUP, getContext());
  115. }
  116. }
  117. });
  118. findViewById(R.id.layoutMenu04).setOnClickListener(new OnClickListener() {
  119. @Override
  120. public void onClick(View v) {
  121. if(mSelectedIndex != MAIN_MENU_PROFILE) {
  122. changeActvityForMainMenu(MAIN_MENU_PROFILE, getContext());
  123. }
  124. }
  125. });
  126. }
  127. private void changeActvityForMainMenu(int index, final Context context) {
  128. if(!UserInfo.confirmed) {
  129. return;
  130. }
  131. mIsStartNextActivity = true;
  132. mOldActivity = ((Activity) context).getClass();
  133. Intent intent;
  134. switch (index) {
  135. case MAIN_MENU_HOME:
  136. intent = new Intent(context, MainActivity.class);
  137. break;
  138. case MAIN_MENU_DEVICE:
  139. intent = new Intent(context, DeviceActivity.class);
  140. break;
  141. case MAIN_MENU_MY_GROUP:
  142. intent = new Intent(context, MyGroupActivity.class);
  143. break;
  144. case MAIN_MENU_PROFILE:
  145. intent = new Intent(context, ProfileActivity.class);
  146. break;
  147. default:
  148. intent = new Intent(context, MainActivity.class);
  149. break;
  150. }
  151. context.startActivity(intent);
  152. intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
  153. ((Activity) context).overridePendingTransition(0, 0);
  154. new Timer().schedule(new TimerTask() {
  155. @Override
  156. public void run() {
  157. ((Activity) context).finish();
  158. mIsStartNextActivity = false;
  159. }
  160. }, 500);
  161. }
  162. }