Advertisement
Guest User

Untitled

a guest
Mar 25th, 2017
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 20.88 KB | None | 0 0
  1. 03-25 14:22:12.567 22927-22927/com.android.octa.memetixs E/AndroidRuntime: FATAL EXCEPTION: main
  2. Process: com.android.octa.memetixs, PID: 22927
  3. Theme: themes:{default=overlay:system, iconPack:system, fontPkg:system, com.android.systemui=overlay:system, com.android.systemui.navbar=overlay:system}
  4. java.lang.IllegalArgumentException: location must not be null or empty
  5. at com.google.android.gms.common.internal.zzac.zzb(Unknown Source)
  6. at com.google.firebase.storage.FirebaseStorage.getReference(Unknown Source)
  7. at com.android.octa.memetixs.ui.fragment.UserFragment.onCreateView(UserFragment.java:67)
  8. at android.support.v4.app.Fragment.performCreateView(Fragment.java:2192)
  9. at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1299)
  10. at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1528)
  11. at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1595)
  12. at android.support.v4.app.BackStackRecord.executeOps(BackStackRecord.java:758)
  13. at android.support.v4.app.FragmentManagerImpl.executeOps(FragmentManager.java:2363)
  14. at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2149)
  15. at android.support.v4.app.FragmentManagerImpl.optimizeAndExecuteOps(FragmentManager.java:2103)
  16. at android.support.v4.app.FragmentManagerImpl.execSingleAction(FragmentManager.java:1984)
  17. at android.support.v4.app.BackStackRecord.commitNowAllowingStateLoss(BackStackRecord.java:626)
  18. at android.support.v4.app.FragmentStatePagerAdapter.finishUpdate(FragmentStatePagerAdapter.java:166)
  19. at android.support.v4.view.ViewPager.populate(ViewPager.java:1268)
  20. at android.support.v4.view.ViewPager.populate(ViewPager.java:1116)
  21. at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1642)
  22. at android.view.View.measure(View.java:18799)
  23. at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:715)
  24. at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:461)
  25. at android.view.View.measure(View.java:18799)
  26. at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951)
  27. at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
  28. at android.view.View.measure(View.java:18799)
  29. at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:715)
  30. at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:461)
  31. at android.view.View.measure(View.java:18799)
  32. at android.support.v4.widget.DrawerLayout.onMeasure(DrawerLayout.java:1081)
  33. at android.view.View.measure(View.java:18799)
  34. at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951)
  35. at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
  36. at android.support.v7.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:139)
  37. at android.view.View.measure(View.java:18799)
  38. at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951)
  39. at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1458)
  40. at android.widget.LinearLayout.measureVertical(LinearLayout.java:746)
  41. at android.widget.LinearLayout.onMeasure(LinearLayout.java:629)
  42. at android.view.View.measure(View.java:18799)
  43. at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951)
  44. at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
  45. at android.view.View.measure(View.java:18799)
  46. at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951)
  47. at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1458)
  48. at android.widget.LinearLayout.measureVertical(LinearLayout.java:746)
  49. at android.widget.LinearLayout.onMeasure(LinearLayout.java:629)
  50. at android.view.View.measure(View.java:18799)
  51. at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951)
  52. at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
  53. at com.android.internal.policy.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2899)
  54. at android.view.View.measure(View.java:18799)
  55. at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2108)
  56. at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1224)
  57. at android.view.ViewRootImpl.performTraversals(ViewR
  58.  
  59. public class UserFragment extends Fragment {
  60.  
  61.  
  62. private View mRootView;
  63. private ImageView mUserImage;
  64. private TextView mUsername;
  65. private ImageButton mChangePhotoUser, mLogOut;
  66. private Uri mSelectedImageUri;
  67. private User mUser;
  68. private Post mPost;
  69.  
  70. private FirebaseAuth mAuth;
  71. private FirebaseAuth.AuthStateListener mAuthListener;
  72.  
  73. private final static int RC_PHOTO_PICKER = 2;
  74.  
  75. public UserFragment() {
  76.  
  77. }
  78.  
  79.  
  80. @Override
  81. public View onCreateView(LayoutInflater inflater, ViewGroup container,
  82. Bundle savedInstanceState) {
  83. mRootView = inflater.inflate(R.layout.fragment_user, container, false);
  84. mAuth = FirebaseAuth.getInstance();
  85.  
  86.  
  87. init();
  88. StorageReference storageReference = FirebaseStorage.getInstance().getReference(mUser.getPhotUrl());
  89. Glide.with(getActivity()).using(new FirebaseImageLoader()).load(storageReference).into(mUserImage);
  90.  
  91. return mRootView;
  92. }
  93.  
  94. private void init(){
  95. final String userId = FirebaseUtils.getUid();
  96. mUserImage = (ImageView) mRootView.findViewById(R.id.imageViewUser_fragUser);
  97. mUsername = (TextView) mRootView.findViewById(R.id.textViewUsername_fragUser);
  98. mLogOut = (ImageButton) mRootView.findViewById(R.id.imageButtonExit_FragUser);
  99. mChangePhotoUser = (ImageButton) mRootView.findViewById(R.id.buttonAddPhoto_fragUser);
  100. mUser = new User();
  101.  
  102. mChangePhotoUser.setOnClickListener(new View.OnClickListener() {
  103. @Override
  104. public void onClick(View v) {
  105. selectImage();
  106. }
  107. });
  108.  
  109. if(mSelectedImageUri != null){
  110. FirebaseUtils.getImagesUserRef().child(mSelectedImageUri.getLastPathSegment()).putFile(mSelectedImageUri).addOnSuccessListener(getActivity(), new OnSuccessListener<UploadTask.TaskSnapshot>() {
  111. @Override
  112. public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
  113. String url = Constants.USER_IMAGE + "/" + mSelectedImageUri.getLastPathSegment();
  114. mUser.setPhotUrl(url);
  115.  
  116.  
  117. addToMyOtherList(userId);
  118.  
  119. }
  120. });
  121.  
  122.  
  123.  
  124. }else{
  125. addToMyOtherList(userId);
  126. }
  127.  
  128.  
  129.  
  130. mLogOut.setOnClickListener(new View.OnClickListener() {
  131. @Override
  132. public void onClick(View v) {
  133. logOut();
  134. }
  135. });
  136.  
  137.  
  138. }
  139.  
  140. private void logOut(){
  141. mAuth.signOut();
  142. }
  143.  
  144.  
  145. private void addToMyOtherList(String imageId){
  146. FirebaseUtils.getUserImageProfileRef().child(imageId).setValue(mUser);
  147. FirebaseUtils.getMyUserProfileRef().child(imageId).setValue(true).addOnCompleteListener(getActivity(), new OnCompleteListener<Void>() {
  148. @Override
  149. public void onComplete(@NonNull Task<Void> task) {
  150. // null
  151. }
  152. });
  153. FirebaseUtils.addToMyOtherRecord(Constants.USER_IMAGE_KEY, imageId);
  154. }
  155.  
  156. private void selectImage(){
  157. Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
  158. intent.setType("image/jpeg");
  159. intent.putExtra(Intent.EXTRA_LOCAL_ONLY, true);
  160. startActivityForResult(Intent.createChooser(intent, "Complete action using"), RC_PHOTO_PICKER);
  161. }
  162.  
  163. public void onActivityResult(int requestCode, int resultCode, Intent data) {
  164. super.onActivityResult(requestCode, resultCode, data);
  165. if (requestCode == RC_PHOTO_PICKER) {
  166. if (resultCode == RESULT_OK) {
  167. mSelectedImageUri = data.getData();
  168. mUserImage.setImageURI(mSelectedImageUri);
  169. }
  170. }
  171.  
  172. }
  173.  
  174. public class PostCreateDialog extends DialogFragment implements View.OnClickListener {
  175.  
  176. private static final int RC_PHOTO_PICKER = 1;
  177. private View mRootView;
  178. private Post mPost;
  179.  
  180. private ProgressDialog mProgressDialog;
  181. private Uri mSelectedImageUri;
  182. private ImageView mPostDisplay;
  183.  
  184. @Override
  185. public Dialog onCreateDialog(Bundle savedInstanceState) {
  186. AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
  187. mPost = new Post();
  188.  
  189. mProgressDialog = new ProgressDialog(getContext());
  190. mRootView = getActivity().getLayoutInflater().inflate(R.layout.post_create_dialog, null);
  191. mPostDisplay = (ImageView) mRootView.findViewById(R.id.post_dialog_display);
  192. mRootView.findViewById(R.id.post_dialog_select_imageview).setOnClickListener(this);
  193. mRootView.findViewById(R.id.post_dialog_send_imageview).setOnClickListener(this);
  194. builder.setView(mRootView);
  195. return builder.create();
  196.  
  197.  
  198. }
  199.  
  200. @Override
  201. public void onClick(View v) {
  202. switch (v.getId()) {
  203. case R.id.post_dialog_send_imageview:
  204. sendPost();
  205. break;
  206. case R.id.post_dialog_select_imageview:
  207. selectImage();
  208. break;
  209. }
  210. }
  211.  
  212.  
  213. private void selectImage(){
  214. Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
  215. intent.setType("image/jpeg");
  216. intent.putExtra(Intent.EXTRA_LOCAL_ONLY, true);
  217. startActivityForResult(Intent.createChooser(intent, "Complete action using"), RC_PHOTO_PICKER);
  218. }
  219.  
  220. private void sendPost(){
  221. mProgressDialog.setMessage("Sending post...");
  222. mProgressDialog.setCancelable(false);
  223. mProgressDialog.setIndeterminate(true);
  224. mProgressDialog.show();
  225.  
  226. FirebaseUtils.getUserRef(FirebaseUtils.getCurrentUser().getEmail().replace(".", ","))
  227. .addListenerForSingleValueEvent(new ValueEventListener() {
  228. @Override
  229. public void onDataChange(DataSnapshot dataSnapshot) {
  230. User user = dataSnapshot.getValue(User.class);
  231. final String postUid = FirebaseUtils.getUid();
  232. TextView postDialogTextView = (TextView) mRootView.findViewById(R.id.post_dialog_edittext);
  233. String text = postDialogTextView.getText().toString();
  234.  
  235. mPost.setUser(user);
  236. mPost.setNumComments(0);
  237. mPost.setNumLikes(0);
  238. mPost.setTimeCreated(System.currentTimeMillis());
  239. mPost.setPostId(postUid);
  240. mPost.setPostText(text);
  241.  
  242. if (mSelectedImageUri != null) {
  243. FirebaseUtils.getImagesSRef()
  244. .child(mSelectedImageUri.getLastPathSegment())
  245. .putFile(mSelectedImageUri)
  246. .addOnSuccessListener(getActivity(),
  247. new OnSuccessListener<UploadTask.TaskSnapshot>() {
  248. @Override
  249. public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
  250. String url = Constants.POST_IMAGES + "/" + mSelectedImageUri.getLastPathSegment();
  251. //String downloadUrl = taskSnapshot.getDownloadUrl().toString();
  252. mPost.setPostImageUrl(url);
  253. addToMyPostList(postUid);
  254. }
  255.  
  256.  
  257. });
  258. } else {
  259. addToMyPostList(postUid);
  260. }
  261. }
  262.  
  263. @Override
  264. public void onCancelled(DatabaseError databaseError) {
  265. mProgressDialog.dismiss();
  266. }
  267. });
  268. }
  269.  
  270. private void addToMyPostList(final String postUid){
  271. FirebaseUtils.getPostRef().child(postUid)
  272. .setValue(mPost);
  273. FirebaseUtils.getMyPostRef().child(postUid).setValue(true)
  274. .addOnCompleteListener(getActivity(), new OnCompleteListener<Void>() {
  275. @Override
  276. public void onComplete(@NonNull Task<Void> task) {
  277. mProgressDialog.dismiss();
  278. dismiss();
  279. }
  280. });
  281.  
  282. FirebaseUtils.addToMyRecord(Constants.POSTS_KEY, postUid);
  283. }
  284.  
  285. @Override
  286. public void onActivityResult(int requestCode, int resultCode, Intent data) {
  287. super.onActivityResult(requestCode, resultCode, data);
  288. if (requestCode == RC_PHOTO_PICKER) {
  289. if (resultCode == RESULT_OK) {
  290. mSelectedImageUri = data.getData();
  291. mPostDisplay.setImageURI(mSelectedImageUri);
  292. }
  293. }
  294.  
  295. }
  296.  
  297. public class FirebaseUtils {
  298. public static DatabaseReference getUserRef(String email) {
  299. return FirebaseDatabase.getInstance()
  300. .getReference(Constants.USERS_KEYS)
  301. .child(email);
  302. }
  303.  
  304. public static DatabaseReference getUserImageProfileRef(){
  305. return FirebaseDatabase.getInstance().getReference(Constants.USER_IMAGE_KEY);
  306. }
  307.  
  308. public static DatabaseReference getMyUserProfileRef(){
  309. return FirebaseDatabase.getInstance().getReference(Constants.MY_USER_IMAGE).child(getCurrentUser().getEmail().replace(".",","));
  310. }
  311.  
  312. public static DatabaseReference getPostRef() {
  313. return FirebaseDatabase.getInstance()
  314. .getReference(Constants.POSTS_KEY);
  315. }
  316.  
  317. public static Query getPostQuery() {
  318. return getPostRef().orderByChild(Constants.TIME_CREATED_KEY);
  319. }
  320.  
  321. public static DatabaseReference getPostLikedRef() {
  322. return FirebaseDatabase.getInstance()
  323. .getReference(Constants.POSTS_LIKED_KEY);
  324. }
  325.  
  326. public static DatabaseReference getPostLikedRef(String postId) {
  327. return getPostLikedRef().child(getCurrentUser().getEmail()
  328. .replace(".", ","))
  329. .child(postId);
  330. }
  331.  
  332. public static FirebaseUser getCurrentUser() {
  333. return FirebaseAuth.getInstance().getCurrentUser();
  334. }
  335.  
  336. public static String getUid() {
  337. String path = FirebaseDatabase.getInstance().getReference().push().toString();
  338. return path.substring(path.lastIndexOf("/") + 1);
  339. }
  340.  
  341. public static StorageReference getImagesSRef() {
  342. return FirebaseStorage.getInstance().getReference(Constants.POST_IMAGES);
  343. }
  344.  
  345. public static StorageReference getImagesUserRef(){
  346. return FirebaseStorage.getInstance().getReference(Constants.USER_IMAGE);
  347. }
  348.  
  349. public static DatabaseReference getMyPostRef() {
  350. return FirebaseDatabase.getInstance().getReference(Constants.MY_POSTS)
  351. .child(getCurrentUser().getEmail().replace(".", ","));
  352. }
  353.  
  354. public static DatabaseReference getCommentRef(String postId) {
  355. return FirebaseDatabase.getInstance().getReference(Constants.COMMENTS_KEY)
  356. .child(postId);
  357. }
  358.  
  359. public static DatabaseReference getMyRecordRef() {
  360. return FirebaseDatabase.getInstance().getReference(Constants.USER_RECORD)
  361. .child(getCurrentUser().getEmail().replace(".", ","));
  362. }
  363.  
  364. public static void addToMyOtherRecord(String node, final String id){
  365. FirebaseUtils.getMyRecordRef().child(node).runTransaction(new Transaction.Handler() {
  366. @Override
  367. public Transaction.Result doTransaction(MutableData mutableData) {
  368. ArrayList<String> myUserImageCollection;
  369. if(mutableData.getValue() == null){
  370. myUserImageCollection = new ArrayList<>(1);
  371. myUserImageCollection.add(id);
  372. mutableData.setValue(myUserImageCollection);
  373. }else{
  374. myUserImageCollection = (ArrayList<String>) mutableData.getValue();
  375. myUserImageCollection.add(id);
  376. mutableData.setValue(myUserImageCollection);
  377. }
  378. return Transaction.success(mutableData);
  379. }
  380.  
  381. @Override
  382. public void onComplete(DatabaseError databaseError, boolean b, DataSnapshot dataSnapshot) {
  383.  
  384. }
  385. });
  386. }
  387.  
  388. public static void addToMyRecord(String node,final String id) {
  389. FirebaseUtils.getMyRecordRef().child(node).runTransaction(new Transaction.Handler() {
  390. @Override
  391. public Transaction.Result doTransaction(MutableData mutableData) {
  392. ArrayList<String> myPostCollection;
  393. if (mutableData.getValue() == null) {
  394. myPostCollection = new ArrayList<>(1);
  395. myPostCollection.add(id);
  396. mutableData.setValue(myPostCollection);
  397. } else {
  398. myPostCollection = (ArrayList<String>) mutableData.getValue();
  399. myPostCollection.add(id);
  400. mutableData.setValue(myPostCollection);
  401. }
  402. return Transaction.success(mutableData);
  403. }
  404.  
  405. @Override
  406. public void onComplete(DatabaseError databaseError, boolean b, DataSnapshot dataSnapshot) {
  407.  
  408. }
  409. });
  410. }
  411.  
  412. public class Constants {
  413. public static final String POSTS_KEY = "posts";
  414. public static final String TIME_CREATED_KEY = "timeCreated";
  415. public static final String NUM_LIKES_KEY = "numLikes";
  416. public static final String POSTS_LIKED_KEY = "posts_liked";
  417. public static final String EXTRA_POST_ID = "postId";
  418. public static final String POST_IMAGES = "post_images";
  419. public static final String USER_IMAGE = "user_imagee";
  420. public static final String MY_USER_IMAGE = "my_profileeImages";
  421. public static final String USER_IMAGE_KEY = "userImage_key"; // se agrega al record
  422. public static final String MY_POSTS = "my_posts";
  423. public static final String EXTRA_POST = "post";
  424. public static final String COMMENTS_KEY = "comments";
  425. public static final String USER_RECORD = "user_record";
  426. public static final String NUM_SHARES_KEY = "numShares";
  427. public static String USERS_KEYS = "users";
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement