Advertisement
Guest User

create post fragment.java

a guest
Jan 22nd, 2020
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.33 KB | None | 0 0
  1. package com.hsr.dbclifestyles.features.post;
  2.  
  3. import android.app.AlertDialog;
  4. import android.content.Context;
  5. import android.content.pm.ActivityInfo;
  6. import android.graphics.drawable.Drawable;
  7. import android.net.Uri;
  8. import android.os.Bundle;
  9. import android.util.Log;
  10. import android.view.LayoutInflater;
  11. import android.view.View;
  12. import android.view.ViewGroup;
  13. import android.widget.Button;
  14. import android.widget.FrameLayout;
  15. import android.widget.ImageButton;
  16. import android.widget.ImageView;
  17. import android.widget.MediaController;
  18. import android.widget.ProgressBar;
  19. import android.widget.TextView;
  20. import android.widget.Toast;
  21. import android.widget.VideoView;
  22.  
  23. import androidx.annotation.NonNull;
  24. import androidx.annotation.Nullable;
  25.  
  26. import com.bumptech.glide.Glide;
  27. import com.bumptech.glide.load.DataSource;
  28. import com.bumptech.glide.load.DecodeFormat;
  29. import com.bumptech.glide.load.engine.GlideException;
  30. import com.bumptech.glide.request.RequestListener;
  31. import com.bumptech.glide.request.RequestOptions;
  32. import com.bumptech.glide.request.target.Target;
  33. import com.hsr.dbclifestyles.R;
  34. import com.hsr.dbclifestyles.features.base.BaseFragment;
  35. import com.hsr.dbclifestyles.interfaces.OnBottomNavVisibility;
  36.  
  37. public class CreatePostFragment extends BaseFragment implements View.OnClickListener {
  38.  
  39. private ImageView postImageView;
  40. private VideoView postVideoView;
  41. private FrameLayout videoViewFrameLayout;
  42. private ImageButton navigateBackImageButton;
  43. private OnBottomNavVisibility onBottomNavVisibility;
  44. private ProgressBar photoDramaProgressBar, videoProgressbar;
  45. private TextView menuItemTextView, toolbarTitleTextView,
  46. genderPostVisibilityTextView, postVisibilityTextView;
  47.  
  48. @Nullable
  49. @Override
  50. public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
  51. View view = inflater.inflate(R.layout.fragment_create_post, container, false);
  52.  
  53. postVideoView = view.findViewById(R.id.create_post_video_view);
  54. postImageView = view.findViewById(R.id.create_post_image_view);
  55. videoViewFrameLayout = view.findViewById(R.id.video_view_frame_layout);
  56. toolbarTitleTextView = view.findViewById(R.id.toolbar_title_text_view);
  57. videoProgressbar = view.findViewById(R.id.create_video_post_progressbar);
  58. menuItemTextView = view.findViewById(R.id.toolbar_menu_action_text_view);
  59. navigateBackImageButton = view.findViewById(R.id.navigate_back_image_button);
  60. postVisibilityTextView = view.findViewById(R.id.post_visibility_option_text_view);
  61. photoDramaProgressBar = view.findViewById(R.id.create_photo_drama_post_progressbar);
  62. genderPostVisibilityTextView = view.findViewById(R.id.gender_visibility_option_text_view);
  63.  
  64. menuItemTextView.setOnClickListener(this);
  65. navigateBackImageButton.setOnClickListener(this);
  66. postVisibilityTextView.setOnClickListener(this);
  67. genderPostVisibilityTextView.setOnClickListener(this);
  68.  
  69. menuItemTextView.setText(R.string.post);
  70. toolbarTitleTextView.setText(R.string.create_post);
  71. menuItemTextView.setVisibility(View.VISIBLE);
  72.  
  73. return view;
  74. }
  75.  
  76. @Override
  77. public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
  78. super.onViewCreated(view, savedInstanceState);
  79.  
  80. /* try {
  81. InputStream inputStream = getContentResolver().openInputStream(result.getUri());
  82. if (inputStream != null) {
  83. //showProgressHud();
  84. // accountViewModel.uploadUserProfileImage(inputStream);
  85. inputStream.close();
  86. }
  87. } catch (IOException e) {
  88. e.printStackTrace();
  89. }*/
  90.  
  91. if (getArguments() != null) {
  92. String postType = getArguments().getString("post_type");
  93.  
  94. if (postType != null && postType.equals("photo/drama")) {
  95. Uri imageUri = getArguments().getParcelable("post_image_uri");
  96.  
  97. if (imageUri != null) {
  98. photoDramaProgressBar.setVisibility(View.VISIBLE);
  99. postImageView.setVisibility(View.VISIBLE);
  100.  
  101. Glide.with(requireContext())
  102. .load(imageUri)
  103. .apply(new RequestOptions().format(DecodeFormat.PREFER_ARGB_8888)
  104. .override(Target.SIZE_ORIGINAL))
  105. .listener(new RequestListener<Drawable>() {
  106. @Override
  107. public boolean onLoadFailed(@Nullable GlideException e, Object model,
  108. Target<Drawable> target, boolean isFirstResource) {
  109. photoDramaProgressBar.setVisibility(View.GONE);
  110. return false;
  111. }
  112.  
  113. @Override
  114. public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target,
  115. DataSource dataSource, boolean isFirstResource) {
  116. photoDramaProgressBar.setVisibility(View.GONE);
  117. return false;
  118. }
  119. })
  120. .into(postImageView);
  121. }
  122. } else if (postType != null && postType.equals("video")) {
  123. Uri videoUri = getArguments().getParcelable("post_video_uri");
  124. if (videoUri != null) {
  125. videoProgressbar.setVisibility(View.VISIBLE);
  126. videoViewFrameLayout.setVisibility(View.VISIBLE);
  127.  
  128. MediaController mediaController= new MediaController(getContext());
  129. mediaController.setAnchorView(postVideoView);
  130. postVideoView.setMediaController(mediaController);
  131.  
  132. postVideoView.setOnPreparedListener(mediaPlayer -> {
  133. videoProgressbar.setVisibility(View.GONE);
  134. mediaController.show(0);
  135. postVideoView.seekTo(1000);
  136. });
  137. postVideoView.setVideoURI(videoUri);
  138. }
  139. }
  140. }
  141. }
  142.  
  143. private void showVisibilityDialog(String title, String globalOrAll, String maleOrFriends, String femaleOrOnlyMe) {
  144. ViewGroup viewGroup = requireView().findViewById(android.R.id.content);
  145. View alertView = LayoutInflater.from(requireContext()).inflate(R.layout.dialog_post_visibility, viewGroup, false);
  146.  
  147. TextView titleTextView = alertView.findViewById(R.id.post_visibility_dialog_title_text_view);
  148. Button globalOrAllButton = alertView.findViewById(R.id.global_or_all_button);
  149. Button maleOrFriendsButton = alertView.findViewById(R.id.male_or_friends_button);
  150. Button femaleOrOnlyMeButton = alertView.findViewById(R.id.female_or_only_me_button);
  151.  
  152. AlertDialog alertDialog = new AlertDialog.Builder(requireContext())
  153. .setView(alertView)
  154. .create();
  155.  
  156. titleTextView.setText(title);
  157. globalOrAllButton.setText(globalOrAll);
  158. maleOrFriendsButton.setText(maleOrFriends);
  159. femaleOrOnlyMeButton.setText(femaleOrOnlyMe);
  160.  
  161. if (title.equals("Post Visibility")) {
  162. globalOrAllButton.setCompoundDrawablesWithIntrinsicBounds(R.drawable.global_black, 0, 0, 0);
  163. maleOrFriendsButton.setCompoundDrawablesWithIntrinsicBounds(R.drawable.friends_black, 0, 0, 0);
  164. femaleOrOnlyMeButton.setCompoundDrawablesWithIntrinsicBounds(R.drawable.queen_crown, 0, 0, 0);
  165. } else if (title.equals("Select Gender")) {
  166. maleOrFriendsButton.setCompoundDrawablesWithIntrinsicBounds(R.drawable.king_crown, 0, 0, 0);
  167. femaleOrOnlyMeButton.setCompoundDrawablesWithIntrinsicBounds(R.drawable.queen_crown, 0, 0, 0);
  168. }
  169.  
  170. globalOrAllButton.setOnClickListener(v -> {
  171. Toast.makeText(requireContext(), globalOrAll, Toast.LENGTH_SHORT).show();
  172. alertDialog.dismiss();
  173. });
  174.  
  175. maleOrFriendsButton.setOnClickListener(v -> {
  176. Toast.makeText(requireContext(), maleOrFriends, Toast.LENGTH_SHORT).show();
  177. alertDialog.dismiss();
  178. });
  179.  
  180. femaleOrOnlyMeButton.setOnClickListener(v -> {
  181. Toast.makeText(requireContext(), femaleOrOnlyMe, Toast.LENGTH_SHORT).show();
  182. alertDialog.dismiss();
  183. });
  184.  
  185. alertDialog.show();
  186. }
  187.  
  188. @Override
  189. public void onClick(View view) {
  190. switch (view.getId()) {
  191. case R.id.navigate_back_image_button:
  192. requireActivity().onBackPressed();
  193. break;
  194.  
  195. case R.id.toolbar_menu_action_text_view:
  196.  
  197. break;
  198.  
  199. case R.id.post_visibility_option_text_view:
  200. showVisibilityDialog("Post Visibility", "Global", "Friends", "Only Me");
  201. break;
  202.  
  203. case R.id.gender_visibility_option_text_view:
  204. showVisibilityDialog("Select Gender", "All", "Male", "Female");
  205. break;
  206. }
  207. }
  208.  
  209. @Override
  210. public void onAttach(@NonNull Context context) {
  211. super.onAttach(context);
  212.  
  213. try {
  214. onBottomNavVisibility = (OnBottomNavVisibility) context;
  215. onBottomNavVisibility.isHideNav(true);
  216. } catch (ClassCastException e) {
  217. Toast.makeText(context, "Exception: " + e.getMessage(), Toast.LENGTH_SHORT).show();
  218. }
  219. }
  220.  
  221. @Override
  222. public void onResume() {
  223. super.onResume();
  224. requireActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
  225. }
  226.  
  227. @Override
  228. public void onDestroyView() {
  229. super.onDestroyView();
  230.  
  231. if (onBottomNavVisibility != null) {
  232. onBottomNavVisibility.isHideNav(false);
  233. }
  234. }
  235.  
  236. @Override
  237. public void onDetach() {
  238. super.onDetach();
  239. requireActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_FULL_SENSOR);
  240. }
  241. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement