Advertisement
gust94

MainActivity

Jan 19th, 2017
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 37.41 KB | None | 0 0
  1. package com.dss.invitup;
  2. import android.app.AlarmManager;
  3. import android.app.PendingIntent;
  4. import android.content.Context;
  5. import android.content.DialogInterface;
  6. import android.content.Intent;
  7. import android.content.pm.PackageManager;
  8. import android.graphics.Color;
  9. import android.graphics.PorterDuff;
  10. import android.graphics.Typeface;
  11. import android.os.Build;
  12. import android.os.Bundle;
  13. import android.provider.Settings;
  14. import android.support.annotation.NonNull;
  15. import android.support.design.widget.NavigationView;
  16. import android.support.v4.app.FragmentManager;
  17. import android.support.v4.view.GravityCompat;
  18. import android.support.v4.widget.DrawerLayout;
  19. import android.support.v7.app.ActionBarDrawerToggle;
  20. import android.support.v7.app.AppCompatActivity;
  21. import android.support.v7.widget.PopupMenu;
  22. import android.support.v7.widget.Toolbar;
  23. import android.telephony.TelephonyManager;
  24. import android.text.Spannable;
  25. import android.text.SpannableString;
  26. import android.util.Log;
  27. import android.util.TypedValue;
  28. import android.view.Menu;
  29. import android.view.MenuItem;
  30. import android.view.SubMenu;
  31. import android.view.View;
  32. import android.view.Window;
  33. import android.view.WindowManager;
  34. import android.widget.Button;
  35. import android.widget.FrameLayout;
  36. import android.widget.ImageView;
  37. import android.widget.LinearLayout;
  38. import android.widget.ProgressBar;
  39. import android.widget.Toast;
  40. import com.bumptech.glide.Glide;
  41. import com.bumptech.glide.load.resource.drawable.GlideDrawable;
  42. import com.bumptech.glide.request.RequestListener;
  43. import com.bumptech.glide.request.target.Target;
  44. import com.dss.invitup.events.AddPicturePermissionEvent;
  45. import com.dss.invitup.events.GalleryFullImageCloseButtonEvent;
  46. import com.dss.invitup.events.GalleryFullImageItemClickedEvent;
  47. import com.dss.invitup.events.GetThemeFinishedEvent;
  48. import com.dss.invitup.events.GetUserOccasionGuestIdFinishedEvent;
  49. import com.dss.invitup.events.LeaveOccasionEvent;
  50. import com.dss.invitup.events.MainActivityHideLoadingEvent;
  51. import com.dss.invitup.events.MainActivityShowLoadingEvent;
  52. import com.dss.invitup.events.RefreshHomePageOccasionEvent;
  53. import com.dss.invitup.events.ReturnToEventFragmentEvent;
  54. import com.dss.invitup.events.UpdateGuestStatusByGuestFinishedEvent;
  55. import com.dss.invitup.models.Occasion;
  56. import com.dss.invitup.models.Theme;
  57. import com.dss.invitup.singleton.AppController;
  58. import com.dss.invitup.singleton.InterfaceManager;
  59. import com.dss.invitup.singleton.ServerManager;
  60. import com.dss.invitup.singleton.SettingsManager;
  61. import com.dss.invitup.vc.homePage.HomePageActivity;
  62. import com.dss.invitup.vc.occasionPage.contact.ContactFragment;
  63. import com.dss.invitup.vc.occasionPage.event.EventsFragment;
  64. import com.dss.invitup.vc.occasionPage.forum.ForumFragment;
  65. import com.dss.invitup.vc.occasionPage.gallery.GalleryFragment;
  66. import com.dss.invitup.vc.occasionPage.guestbook.GuestBookFragment;
  67. import com.dss.invitup.vc.occasionPage.guestlist.GuestListFragment;
  68. import com.dss.invitup.view.CustomTypefaceSpan;
  69. import com.dss.invitup.view.MontserratLightTextView;
  70. import com.dss.invitup.view.dynamicFont.PageTitleDynamicTextView;
  71. import java.util.Calendar;
  72. import java.util.HashMap;
  73. import java.util.Random;
  74. import de.greenrobot.event.EventBus;
  75. import io.realm.Realm;
  76. import it.sephiroth.android.library.imagezoom.ImageViewTouch;
  77. /**
  78. * Copyright © 2016 Dihardja Software Solutions. All rights reserved.
  79. */
  80. public class MainActivity extends AppCompatActivity
  81. implements NavigationView.OnNavigationItemSelectedListener {
  82. NavigationView navigationView;
  83. DrawerLayout drawer;
  84. FragmentManager fragmentManager;
  85. Realm realm;
  86. MontserratLightTextView leaveEventButton;
  87. Occasion currentOccasion;
  88. public String currentOccasionId;
  89. ImageView backgroundImageView,galleryFullScreenCloseImageView, galleryFullScreenEditImageView;
  90. EventsFragment eventsFragment;
  91. ContactFragment contactFragment;
  92. String currentOccasionGuestId = "";
  93. HashMap<InterfaceManager.DynamicTextView,Typeface>currentThemeTypeface = new HashMap<>();
  94. LinearLayout invitedActionLinearLayout;
  95. Button joinEventButton,declineEventButton;
  96. Theme currentTheme;
  97. PageTitleDynamicTextView titleTextView;
  98. public PageTitleDynamicTextView guestAmountTextView;
  99. Toolbar toolbar;
  100. FrameLayout rootFrameLayout,galleryFullScreenImageFrameLayout;
  101. ImageViewTouch galleryFullScreenImageViewTouch;
  102. ProgressBar galleryFullScreenProgressBar;
  103. ActionBarDrawerToggle toggle;
  104. boolean isImageFromGalleryOpened;
  105. boolean isEligibleToTakePicture = false;
  106. String currentGalleryEntryId;
  107. public boolean isFromPushNotif;
  108. public String gotoColumn = "attending";
  109. String title= "";
  110. public int position = 0;
  111. @Override
  112. protected void onCreate(Bundle savedInstanceState) {
  113. requestWindowFeature(Window.FEATURE_NO_TITLE);
  114. getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
  115. WindowManager.LayoutParams.FLAG_FULLSCREEN);
  116. super.onCreate(savedInstanceState);
  117. if(!EventBus.getDefault().isRegistered(this)){
  118. EventBus.getDefault().register(this);
  119. }
  120. setContentView(R.layout.activity_main);
  121. SettingsManager.getInstance().setActivityJustMade(true);;
  122. realm = AppController.getInstance().getRealm();
  123. backgroundImageView = (ImageView)findViewById(R.id.mainActivity_background);
  124. backgroundImageView.setBackgroundColor(Color.parseColor("#000000"));
  125. drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
  126. toolbar = (Toolbar) findViewById(R.id.toolbar);
  127. rootFrameLayout = (FrameLayout)findViewById(R.id.mainActivityRootFrameLayout);
  128. titleTextView = (PageTitleDynamicTextView)findViewById(R.id.titleToolBar);
  129. guestAmountTextView = (PageTitleDynamicTextView)findViewById(R.id.guestAmmountInToolBar);
  130. toolbar.setBackgroundColor(getResources().getColor(android.R.color.transparent));
  131. invitedActionLinearLayout = (LinearLayout)findViewById(R.id.mainActivity_invitedButtonLinearLayout);
  132. joinEventButton = (Button)findViewById(R.id.mainActivity_joinEventButton);
  133. declineEventButton = (Button)findViewById(R.id.mainActivity_declineEventButton);
  134. galleryFullScreenCloseImageView = (ImageView)findViewById(R.id.eventGalleryFullScreenCloseImageView);
  135. galleryFullScreenEditImageView = (ImageView)findViewById(R.id.eventGalleryFullScreenEditImageView);
  136. galleryFullScreenImageViewTouch = (ImageViewTouch)findViewById(R.id.eventGalleryFullScreenImageViewTouch);
  137. galleryFullScreenImageFrameLayout = (FrameLayout)findViewById(R.id.eventGalleryFullScreenImageFrameLayout);
  138. galleryFullScreenProgressBar = (ProgressBar)findViewById(R.id.eventGalleryFullScreenImageProgressBar);
  139. setSupportActionBar(toolbar);
  140. getSupportActionBar().setDisplayShowTitleEnabled(false);
  141. getSupportActionBar().setHomeAsUpIndicator(getResources().getDrawable(R.drawable.profile));
  142. getSupportActionBar().setDisplayShowCustomEnabled(true);
  143. fragmentManager = getSupportFragmentManager();
  144. if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
  145. Window window = getWindow();
  146. window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
  147. window.setStatusBarColor(Color.parseColor("#4B76A9"));
  148. }
  149. DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
  150. toggle = new ActionBarDrawerToggle(
  151. this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
  152. drawer.setDrawerListener(toggle);
  153. toggle.syncState();
  154. navigationView = (NavigationView) findViewById(R.id.nav_view);
  155. navigationView.setNavigationItemSelectedListener(this);
  156. View headerLayout = navigationView.getHeaderView(0);
  157. LinearLayout switchEventTextViewButton = (LinearLayout) headerLayout.findViewById(R.id.nav_header_switchEvent);
  158. switchEventTextViewButton.setOnClickListener(new View.OnClickListener() {
  159. @Override
  160. public void onClick(View v) {
  161. finish();
  162. }
  163. });
  164. eventsFragment = new EventsFragment();
  165. contactFragment = new ContactFragment();
  166. Menu m = navigationView.getMenu();
  167. for (int i=0;i<m.size();i++) {
  168. MenuItem mi = m.getItem(i);
  169. SubMenu subMenu = mi.getSubMenu();
  170. if (subMenu!=null && subMenu.size() >0 ) {
  171. for (int j=0; j <subMenu.size();j++) {
  172. MenuItem subMenuItem = subMenu.getItem(j);
  173. applyFontToMenuItem(subMenuItem);
  174. }
  175. }
  176. applyFontToMenuItem(mi);
  177. }
  178. leaveEventButton = (MontserratLightTextView) navigationView.findViewById(R.id.mainActivity_leaveEventButton);
  179. leaveEventButton.setOnClickListener(leaveButtonListener);
  180. declineEventButton.setOnClickListener(declineButtonListener);
  181. joinEventButton.setOnClickListener(joinButtonListener);
  182. galleryFullScreenCloseImageView.setOnClickListener(galleryFullScreenCloseImageViewListener);
  183. galleryFullScreenEditImageView.setOnClickListener(galleryFullScreenEditImageViewListener);
  184. if (getIntent().hasExtra("isFromPushNotif")) {
  185. isFromPushNotif = true;
  186. if (getIntent().hasExtra("occasionId")) {
  187. currentOccasionId = getIntent().getExtras().getString("occasionId");
  188. Occasion theOccasion = realm.where(Occasion.class).equalTo("id", currentOccasionId).findFirst();
  189. if (theOccasion != null) {
  190. currentOccasion = theOccasion;
  191. SettingsManager.getInstance().setCurrentOccasion(currentOccasion);
  192. }
  193. }
  194. guestAmountTextView.setVisibility(View.GONE);
  195. if(getIntent().hasExtra("gotoFragment")){
  196. switch (getIntent().getExtras().getString("gotoFragment")){
  197. case "events":
  198. position = 0;
  199. if(getIntent().hasExtra("notificationType")){
  200. switch (getIntent().getExtras().getString("notificationType")){
  201. case "eventsUpdated":
  202. SettingsManager.getInstance().setCurrentUserRole(SettingsManager.UserRole.GUEST);
  203. break;
  204. case "newInvitation":
  205. SettingsManager.getInstance().setCurrentUserRole(SettingsManager.UserRole.INVITED);
  206. break;
  207. case "totalResponseToday":
  208. SettingsManager.getInstance().setCurrentUserRole(SettingsManager.UserRole.HOST);
  209. break;
  210. case "requestApproved":
  211. SettingsManager.getInstance().setCurrentUserRole(SettingsManager.UserRole.GUEST);
  212. break;
  213. case "notAnsweredYet":
  214. SettingsManager.getInstance().setCurrentUserRole(SettingsManager.UserRole.GUEST);
  215. break;
  216. }
  217. }
  218. break;
  219. case "gallery":
  220. position = 2;
  221. if(getIntent().hasExtra("notificationType")){
  222. switch (getIntent().getExtras().getString("notificationType")){
  223. case "gallery":
  224. SettingsManager.getInstance().setCurrentUserRole(SettingsManager.UserRole.HOST);
  225. break;
  226. }
  227. }
  228. break;
  229. case "forum":
  230. position = 3;
  231. break;
  232. case "guestbook":
  233. position = 4;
  234. if(getIntent().hasExtra("notificationType")){
  235. switch (getIntent().getExtras().getString("notificationType")){
  236. case "guestbook":
  237. SettingsManager.getInstance().setCurrentUserRole(SettingsManager.UserRole.HOST);
  238. break;
  239. }
  240. }
  241. break;
  242. case "guestlist":
  243. position = 5;
  244. if(getIntent().hasExtra("notificationType")) {
  245. if (getIntent().getExtras().getString("notificationType").equalsIgnoreCase("newRequest") || getIntent().getExtras().getString("notificationType").equalsIgnoreCase("invitationAccepted")){
  246. SettingsManager.getInstance().setCurrentUserRole(SettingsManager.UserRole.HOST);
  247. }
  248. }
  249. break;
  250. }
  251. }
  252. if(getIntent().hasExtra("gotoColumn")){
  253. gotoColumn = getIntent().getExtras().getString("gotoColumn");
  254. }
  255. }else{
  256. isFromPushNotif = false;
  257. if(SettingsManager.getInstance().getCurrentOccasion()!=null){
  258. currentOccasion = SettingsManager.getInstance().getCurrentOccasion();
  259. currentOccasionId = currentOccasion.getId();
  260. }
  261. }
  262. galleryFullScreenEditImageView.setVisibility(View.GONE);
  263. initButtonForInvitedUser();
  264. initThemeAndTypeface();
  265. ServerManager.getInstance().getUserOccasionGuestId(currentOccasionId);
  266. }
  267. MontserratLightTextView.OnClickListener leaveButtonListener = new View.OnClickListener() {
  268. @Override
  269. public void onClick(View v) {
  270. android.app.AlertDialog.Builder builder = new android.app.AlertDialog.Builder(MainActivity.this);
  271. builder.setTitle(getResources().getString(R.string.app_name));
  272. builder.setMessage(getResources().getString(R.string.builder_leave_event));
  273. builder.setPositiveButton(getResources().getString(R.string.builder_yes), new DialogInterface.OnClickListener() {
  274. @Override
  275. public void onClick(DialogInterface dialog, int which) {
  276. InterfaceManager.sharedInstance().showLoading(rootFrameLayout,MainActivity.this);
  277. ServerManager.getInstance().leaveOccasion(currentOccasionId);
  278. }
  279. });
  280. builder.setNegativeButton(getResources().getString(R.string.builder_no), new DialogInterface.OnClickListener() {
  281. @Override
  282. public void onClick(DialogInterface dialog, int which) {
  283.  
  284. }
  285. });
  286. InterfaceManager.sharedInstance().setBuilderButtonTextColor(builder).show();
  287. }
  288. };
  289. Button.OnClickListener declineButtonListener = new View.OnClickListener() {
  290. @Override
  291. public void onClick(View v) {
  292. android.app.AlertDialog.Builder builder = new android.app.AlertDialog.Builder(MainActivity.this);
  293. builder.setTitle(getResources().getString(R.string.app_name));
  294. builder.setMessage(getResources().getString(R.string.builder_decline_event));
  295. builder.setPositiveButton(getResources().getString(R.string.builder_yes), new DialogInterface.OnClickListener() {
  296. @Override
  297. public void onClick(DialogInterface dialog, int which) {
  298. if(!currentOccasionGuestId.equals("")) {
  299. InterfaceManager.sharedInstance().showLoading(rootFrameLayout,MainActivity.this);
  300. ServerManager.getInstance().updateGuestStatusByGuest(currentOccasionGuestId,"declined");
  301. }else{
  302. ServerManager.getInstance().getUserOccasionGuestId(currentOccasionId);
  303. }
  304. }
  305. });
  306. builder.setNegativeButton(getResources().getString(R.string.builder_no), new DialogInterface.OnClickListener() {
  307. @Override
  308. public void onClick(DialogInterface dialog, int which) {
  309. }
  310. });
  311. InterfaceManager.sharedInstance().setBuilderButtonTextColor(builder).show();
  312. }
  313. };
  314. Button.OnClickListener joinButtonListener = new View.OnClickListener() {
  315. @Override
  316. public void onClick(View v) {
  317. AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
  318. Intent notificationIntent = new Intent("android.media.action.DISPLAY_NOTIFICATION");
  319. notificationIntent.addCategory("android.intent.category.DEFAULT");
  320. PendingIntent broadcast = PendingIntent.getBroadcast(MainActivity.this, getRandomNumber(), notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);
  321. Calendar cal = Calendar.getInstance();
  322. cal.add(Calendar.HOUR, 24);
  323. if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
  324. alarmManager.setExact(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), broadcast);
  325. }
  326. navigationView.setVisibility(View.VISIBLE);
  327. drawer.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED);
  328. toggle.setDrawerIndicatorEnabled(true);
  329. if(!currentOccasionGuestId.equals("")) {
  330. InterfaceManager.sharedInstance().showLoading(rootFrameLayout,MainActivity.this);
  331. ServerManager.getInstance().updateGuestStatusByGuest(currentOccasionGuestId,"joined");
  332. }else{
  333. ServerManager.getInstance().getUserOccasionGuestId(currentOccasionId);
  334. }
  335. }
  336. };
  337. ImageView.OnClickListener galleryFullScreenCloseImageViewListener = new View.OnClickListener() {
  338. @Override
  339. public void onClick(View v) {
  340. galleryFullScreenImageFrameLayout.setVisibility(View.GONE);
  341. isImageFromGalleryOpened = false;
  342. }
  343. };
  344. ImageView.OnClickListener galleryFullScreenEditImageViewListener = new View.OnClickListener() {
  345. @Override
  346. public void onClick(View v) {
  347. PopupMenu popupMenu = new PopupMenu(MainActivity.this,v);
  348. popupMenu.inflate(R.menu.menu_item);
  349. popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
  350. @Override
  351. public boolean onMenuItemClick(MenuItem item) {
  352. switch (item.getItemId()){
  353. case R.id.menu_item_delete:
  354. android.app.AlertDialog.Builder builder = new android.app.AlertDialog.Builder(MainActivity.this);
  355. builder.setTitle(MainActivity.this.getResources().getString(R.string.app_name));
  356. builder.setMessage(MainActivity.this.getResources().getString(R.string.are_you_sure_want_to_delete_gallery_picture));
  357. builder.setPositiveButton(MainActivity.this.getResources().getString(R.string.builder_yes), new DialogInterface.OnClickListener() {
  358. @Override
  359. public void onClick(DialogInterface dialog, int which) {
  360. galleryFullScreenImageFrameLayout.setVisibility(View.GONE);
  361. isImageFromGalleryOpened = false;
  362. InterfaceManager.sharedInstance().showLoading(rootFrameLayout,MainActivity.this);
  363. ServerManager.getInstance().deleteOccasionGallery(currentOccasionId, currentGalleryEntryId);
  364. }
  365. });
  366. builder.setNegativeButton(MainActivity.this.getResources().getString(R.string.builder_no), new DialogInterface.OnClickListener() {
  367. @Override
  368. public void onClick(DialogInterface dialog, int which) {
  369.  
  370. }
  371. });
  372. InterfaceManager.sharedInstance().setBuilderButtonTextColor(builder).show();
  373. break;
  374. }
  375. return false;
  376. }
  377. });
  378. popupMenu.show();
  379. }
  380. };
  381. public void register(){
  382. TelephonyManager telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
  383. String deviceId = "";
  384. if(telephonyManager.getDeviceId()!=null){
  385. deviceId = telephonyManager.getDeviceId();
  386. }else{
  387. deviceId = Settings.Secure.getString(getApplicationContext().getContentResolver(), Settings.Secure.ANDROID_ID);
  388. }
  389. if(!deviceId.equals("")) {
  390. SettingsManager.getInstance().setDeviceId(deviceId);
  391. }
  392. }
  393. public void initButtonForInvitedUser(){
  394. if(SettingsManager.getInstance().getCurrentUserRole() == SettingsManager.UserRole.INVITED) {
  395. navigationView.setVisibility(View.GONE);
  396. drawer.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
  397. toggle.setDrawerIndicatorEnabled(false);
  398. invitedActionLinearLayout.setVisibility(View.VISIBLE);
  399. Typeface font = Typeface.createFromAsset(getAssets(), "fonts/Montserrat-Light.otf");
  400. declineEventButton.setTypeface(font);
  401. joinEventButton.setTypeface(font);
  402. if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
  403. declineEventButton.setLetterSpacing(0.07f);
  404. joinEventButton.setLetterSpacing(0.07f);
  405. }
  406. }else {
  407. navigationView.setVisibility(View.VISIBLE);
  408. drawer.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED);
  409. toggle.setDrawerIndicatorEnabled(true);
  410. invitedActionLinearLayout.setVisibility(View.GONE);
  411. }
  412. if(SettingsManager.getInstance().getCurrentUserRole() == SettingsManager.UserRole.GUEST){
  413. leaveEventButton.setVisibility(View.VISIBLE);
  414. leaveEventButton.setEnabled(true);
  415. }else{
  416. leaveEventButton.setVisibility(View.GONE);
  417. }
  418. }
  419. public void initThemeAndTypeface(){
  420. if(currentOccasion!=null){
  421. if(currentOccasion.getThemeId()!=null) {
  422. if(!currentOccasion.getThemeId().equalsIgnoreCase("")){
  423. currentTheme = realm.where(Theme.class).equalTo("id",currentOccasion.getThemeId()).findFirst();
  424. if(currentTheme!=null){
  425. SettingsManager.getInstance().setCurrentTheme(currentTheme);
  426. SettingsManager.getInstance().setCurrentTypefaceHashMap(InterfaceManager.sharedInstance().getTypefaceByCurrentTheme(this, SettingsManager.getInstance().getCurrentTheme()));
  427. currentThemeTypeface = SettingsManager.getInstance().getCurrentTypefaceHashMap();
  428. }
  429. }
  430. }
  431. }
  432. initDynamicView();
  433. InterfaceManager.sharedInstance().showLoading(rootFrameLayout, this);
  434. ServerManager.getInstance().getThemeByOccasionId(currentOccasionId);
  435. }
  436. public void initDynamicView(){
  437. if(currentThemeTypeface!=null) {
  438. try {
  439. if(currentTheme.getBackgroundImageURL()!=null){
  440. if(!currentTheme.getBackgroundImageURL().equalsIgnoreCase("")){
  441. Glide.with(getApplicationContext()).load(currentTheme.getBackgroundImageURL()).into(backgroundImageView);
  442. }
  443. }
  444. titleTextView.setTypeface(currentThemeTypeface.get(InterfaceManager.DynamicTextView.PAGE_TITLE));
  445. titleTextView.setTextColor(Color.parseColor(currentTheme.getPageTitleFontTheme().getColor()));
  446. titleTextView.setTextSize(TypedValue.COMPLEX_UNIT_SP, currentTheme.getPageTitleFontTheme().getSize());
  447. guestAmountTextView.setTypeface(currentThemeTypeface.get(InterfaceManager.DynamicTextView.PAGE_TITLE));
  448. guestAmountTextView.setTextColor(Color.parseColor(currentTheme.getPageTitleFontTheme().getColor()));
  449. guestAmountTextView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 10);
  450. } catch (Exception e) {
  451. titleTextView.setTypeface(SettingsManager.getInstance().getDefaultTypeFaceHashMap().get(InterfaceManager.DynamicTextView.PAGE_TITLE));
  452. titleTextView.setTextColor(Color.parseColor("#FFFFFF"));
  453. titleTextView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 16);
  454. guestAmountTextView.setTypeface(SettingsManager.getInstance().getDefaultTypeFaceHashMap().get(InterfaceManager.DynamicTextView.PAGE_TITLE));
  455. guestAmountTextView.setTextColor(Color.parseColor("#FFFFFF"));
  456. guestAmountTextView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 10);
  457. }
  458. }else{
  459. backgroundImageView.setBackgroundDrawable(getResources().getDrawable(R.drawable.floral_dark));
  460. titleTextView.setTypeface(SettingsManager.getInstance().getDefaultTypeFaceHashMap().get(InterfaceManager.DynamicTextView.PAGE_TITLE));
  461. titleTextView.setTextColor(Color.parseColor("#FFFFFF"));
  462. titleTextView.setTextSize(TypedValue.COMPLEX_UNIT_SP,16);
  463. guestAmountTextView.setTypeface(SettingsManager.getInstance().getDefaultTypeFaceHashMap().get(InterfaceManager.DynamicTextView.PAGE_TITLE));
  464. guestAmountTextView.setTextColor(Color.parseColor("#FFFFFF"));
  465. guestAmountTextView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 10);
  466. }
  467. initView();
  468. }
  469. public void initView(){
  470. switch (position){
  471. case 0:
  472. title = getResources().getString(R.string.title_events);
  473. guestAmountTextView.setVisibility(View.GONE);
  474. fragmentManager.beginTransaction()
  475. .replace(R.id.mainPageContainer, new EventsFragment())
  476. .commitAllowingStateLoss();
  477. break;
  478. case 1:
  479. title = getResources().getString(R.string.title_contact);
  480. guestAmountTextView.setVisibility(View.GONE);
  481. fragmentManager.beginTransaction()
  482. .replace(R.id.mainPageContainer, new ContactFragment())
  483. .commitAllowingStateLoss();
  484. break;
  485. case 2:
  486. title = getResources().getString(R.string.title_gallery);
  487. guestAmountTextView.setVisibility(View.GONE);
  488. fragmentManager.beginTransaction()
  489. .replace(R.id.mainPageContainer, new GalleryFragment())
  490. .commitAllowingStateLoss();
  491. break;
  492. case 3:
  493. title = getResources().getString(R.string.title_discussion);
  494. guestAmountTextView.setVisibility(View.GONE);
  495. fragmentManager.beginTransaction()
  496. .replace(R.id.mainPageContainer, new ForumFragment())
  497. .commitAllowingStateLoss();
  498. break;
  499. case 4:
  500. title = getResources().getString(R.string.title_guestbook);
  501. guestAmountTextView.setVisibility(View.GONE);
  502. fragmentManager.beginTransaction()
  503. .replace(R.id.mainPageContainer, new GuestBookFragment())
  504. .commitAllowingStateLoss();
  505. break;
  506. case 5:
  507. title = getResources().getString(R.string.title_guestlist);
  508. guestAmountTextView.setVisibility(View.VISIBLE);
  509. fragmentManager.beginTransaction()
  510. .replace(R.id.mainPageContainer, new GuestListFragment())
  511. .commitAllowingStateLoss();
  512. break;
  513. }
  514. titleTextView.setText(title);
  515. navigationView.getMenu().getItem(position).setChecked(true);
  516. }
  517. @Override
  518. public void onBackPressed() {
  519. DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
  520. if (drawer.isDrawerOpen(GravityCompat.START)) {
  521. drawer.closeDrawer(GravityCompat.START);
  522. }else if(isImageFromGalleryOpened){
  523. galleryFullScreenImageFrameLayout.setVisibility(View.GONE);
  524. isImageFromGalleryOpened = false;
  525. }else {
  526. super.onBackPressed();
  527. finish();
  528. }
  529. }
  530. private void applyFontToMenuItem(MenuItem mi) {
  531. Typeface font = Typeface.createFromAsset(getAssets(), "fonts/Montserrat-Light.otf");
  532. SpannableString mNewTitle = new SpannableString(mi.getTitle());
  533. mNewTitle.setSpan(new CustomTypefaceSpan("" , font), 0 , mNewTitle.length(), Spannable.SPAN_INCLUSIVE_INCLUSIVE);
  534. mi.setTitle(mNewTitle);
  535. }
  536. @SuppressWarnings("StatementWithEmptyBody")
  537. @Override
  538. public boolean onNavigationItemSelected(MenuItem item) {
  539. int id = item.getItemId();
  540. if (id == R.id.nav_event) {
  541. fragmentManager.beginTransaction()
  542. .replace(R.id.mainPageContainer, new EventsFragment())
  543. .commit();
  544. drawer.closeDrawers();
  545. titleTextView.setText(MainActivity.this.getResources().getString(R.string.title_events));
  546. guestAmountTextView.setVisibility(View.GONE);
  547. } else if (id == R.id.nav_contact) {
  548. fragmentManager.beginTransaction()
  549. .replace(R.id.mainPageContainer, new ContactFragment())
  550. .commit();
  551. drawer.closeDrawers();
  552. titleTextView.setText(MainActivity.this.getResources().getString(R.string.title_contact));
  553. guestAmountTextView.setVisibility(View.GONE);
  554. } else if (id == R.id.nav_gallery) {
  555. fragmentManager.beginTransaction()
  556. .replace(R.id.mainPageContainer, new GalleryFragment())
  557. .commit();
  558. drawer.closeDrawers();
  559. titleTextView.setText(MainActivity.this.getResources().getString(R.string.title_gallery));
  560. guestAmountTextView.setVisibility(View.GONE);
  561. } else if (id == R.id.nav_discussion) {
  562. fragmentManager.beginTransaction()
  563. .replace(R.id.mainPageContainer, new ForumFragment())
  564. .commit();
  565. drawer.closeDrawers();
  566. titleTextView.setText(MainActivity.this.getResources().getString(R.string.title_discussion));
  567. guestAmountTextView.setVisibility(View.GONE);
  568. } else if (id == R.id.nav_guestbook) {
  569. fragmentManager.beginTransaction()
  570. .replace(R.id.mainPageContainer, new GuestBookFragment())
  571. .commit();
  572. drawer.closeDrawers();
  573. titleTextView.setText(MainActivity.this.getResources().getString(R.string.title_guestbook));
  574. guestAmountTextView.setVisibility(View.GONE);
  575. } else if (id == R.id.nav_guestlist) {
  576. fragmentManager.beginTransaction()
  577. .replace(R.id.mainPageContainer, new GuestListFragment())
  578. .commit();
  579. drawer.closeDrawers();
  580. titleTextView.setText(MainActivity.this.getResources().getString(R.string.title_guestlist));
  581. if(SettingsManager.getInstance().getCurrentUserRole() == SettingsManager.UserRole.GUEST) {
  582. guestAmountTextView.setVisibility(View.GONE);
  583. }else{
  584. guestAmountTextView.setVisibility(View.VISIBLE);
  585. }
  586. }
  587. drawer.closeDrawer(GravityCompat.START);
  588. return true;
  589. }
  590. public void onEvent(GetUserOccasionGuestIdFinishedEvent event){
  591. if(event.occasionGuest!=null){
  592. currentOccasionGuestId = event.occasionGuest.getId();
  593. }
  594. }
  595. public void onEvent(GetThemeFinishedEvent event){
  596. InterfaceManager.sharedInstance().hideLoading();
  597. if(event.theme!=null){
  598. currentTheme = event.theme;
  599. SettingsManager.getInstance().setCurrentTheme(currentTheme);
  600. SettingsManager.getInstance().setCurrentTypefaceHashMap(
  601. InterfaceManager.sharedInstance().getTypefaceByCurrentTheme(this, SettingsManager.getInstance().getCurrentTheme()));
  602. currentThemeTypeface = SettingsManager.getInstance().getCurrentTypefaceHashMap();
  603. }
  604. initDynamicView();
  605. }
  606. public void onEvent(UpdateGuestStatusByGuestFinishedEvent event){
  607. InterfaceManager.sharedInstance().hideLoading();
  608. if(event.errorMessage.equals("")){
  609. if(event.userStatus.equalsIgnoreCase("joined")){
  610. SettingsManager.getInstance().setCurrentUserRole(SettingsManager.UserRole.GUEST);
  611. initButtonForInvitedUser();
  612. EventBus.getDefault().post(new ReturnToEventFragmentEvent());
  613. Toast.makeText(this, MainActivity.this.getResources().getString(R.string.notification_success_join_event),Toast.LENGTH_SHORT).show();
  614. }else if(event.userStatus.equals("declined")){
  615. finish();
  616. Toast.makeText(this, MainActivity.this.getResources().getString(R.string.notification_success_decline_event),Toast.LENGTH_SHORT).show();
  617. }
  618. }
  619. }
  620. public void onEvent(GalleryFullImageCloseButtonEvent event){
  621. }
  622. public void onEvent(GalleryFullImageItemClickedEvent event){
  623. InterfaceManager.sharedInstance().hideLoading();
  624. galleryFullScreenImageFrameLayout.setVisibility(View.VISIBLE);
  625. galleryFullScreenProgressBar.setVisibility(View.VISIBLE);
  626. if (SettingsManager.getInstance().getCurrentUser().getId().equalsIgnoreCase(event.ownerId) || SettingsManager.getInstance().getCurrentUserRole().equals(SettingsManager.UserRole.HOST)) {
  627. galleryFullScreenEditImageView.setVisibility(View.VISIBLE);
  628. }
  629. currentGalleryEntryId = event.galleryEntryId;
  630. galleryFullScreenProgressBar.getIndeterminateDrawable().setColorFilter(Color.parseColor("#FC00FF"), PorterDuff.Mode.MULTIPLY);
  631. Glide.with(MainActivity.this).load(event.imageURL).listener(new RequestListener<String, GlideDrawable>() {
  632. @Override
  633. public boolean onException(Exception e, String model, Target<GlideDrawable> target, boolean isFirstResource) {
  634. return false;
  635. }
  636. @Override
  637. public boolean onResourceReady(GlideDrawable resource, String model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) {
  638. galleryFullScreenProgressBar.setVisibility(View.GONE);
  639. return false;
  640. }
  641. }).into(galleryFullScreenImageViewTouch);
  642. isImageFromGalleryOpened = true;
  643. }
  644. public void onEvent(MainActivityShowLoadingEvent event){
  645. InterfaceManager.sharedInstance().showLoading(rootFrameLayout,this);
  646. }
  647. public void onEvent(MainActivityHideLoadingEvent event){
  648. InterfaceManager.sharedInstance().hideLoading();
  649. }
  650. public void onEvent(LeaveOccasionEvent event){
  651. InterfaceManager.sharedInstance().hideLoading();
  652. if(event.errorMessage.equalsIgnoreCase("")){
  653. SettingsManager.getInstance().setCurrentOccasion(null);
  654. Intent i = new Intent(this, HomePageActivity.class);
  655. startActivity(i);
  656. finish();
  657. }else{
  658. InterfaceManager.sharedInstance().showErrorMessage(this,event.errorMessage);
  659. }
  660. }
  661. @Override
  662. public void onDestroy(){
  663. EventBus.getDefault().post(new RefreshHomePageOccasionEvent());
  664. super.onDestroy();
  665. if(EventBus.getDefault().isRegistered(this)){
  666. EventBus.getDefault().unregister(this);
  667. }
  668. }
  669. @Override
  670. public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
  671. super.onRequestPermissionsResult(requestCode, permissions, grantResults);
  672. switch (requestCode){
  673. case 0:
  674. int flag=0;
  675. if(grantResults.length>0){
  676. for(int i=0; i<grantResults.length; i++){
  677. if(grantResults[i] == PackageManager.PERMISSION_GRANTED){
  678. flag++;
  679. }
  680. }
  681. Log.v("login_flag", flag+"");
  682. if(flag==permissions.length){
  683. isEligibleToTakePicture = true;
  684. }else{
  685. isEligibleToTakePicture = false;
  686. }
  687. EventBus.getDefault().post(new AddPicturePermissionEvent(isEligibleToTakePicture, requestCode));
  688. }
  689. break;
  690. case 1:
  691. if(grantResults.length>0) {
  692. if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
  693. isEligibleToTakePicture = true;
  694. }else{
  695. isEligibleToTakePicture = false;
  696. }
  697. EventBus.getDefault().post(new AddPicturePermissionEvent(isEligibleToTakePicture, requestCode));
  698. }
  699. break;
  700. }
  701. }
  702. public int getRandomNumber(){
  703. Random random = new Random();
  704. int mid = random.nextInt(9999 - 1000) + 1000;
  705. return mid;
  706. }
  707. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement