From 7eab8f2257d8809a09d751b0d2126c6ab04c09d7 Mon Sep 17 00:00:00 2001 From: Niels Zwemmer Date: Tue, 13 Jun 2017 20:10:26 +0200 Subject: [PATCH 01/67] First, unofficial council minutes. --- notulen/notulen_0_1362017.pdf | Bin 0 -> 124129 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 notulen/notulen_0_1362017.pdf diff --git a/notulen/notulen_0_1362017.pdf b/notulen/notulen_0_1362017.pdf new file mode 100644 index 0000000000000000000000000000000000000000..ef11180de2c1c682bffa049842f5a7e2a5a87d20 GIT binary patch literal 124129 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 aT0o#)Z%PV Date: Tue, 20 Jun 2017 14:39:37 +0200 Subject: [PATCH 02/67] Added logboek template --- logboek/logboek.tex | 265 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 265 insertions(+) create mode 100755 logboek/logboek.tex diff --git a/logboek/logboek.tex b/logboek/logboek.tex new file mode 100755 index 0000000..981cacc --- /dev/null +++ b/logboek/logboek.tex @@ -0,0 +1,265 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% LATEX-TEMPLATE GENERIEK +% Voor readme en meest recente versie, zie +% https://gitlab-fnwi.uva.nl/informatica/LaTeX-template.git +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%------------------------------------------------------------------------------- +% PACKAGES EN DOCUMENT CONFIGURATIE +%------------------------------------------------------------------------------- + +\documentclass{uva-inf-article} +\usepackage[dutch]{babel} +\usepackage{booktabs} +%------------------------------------------------------------------------------- +% GEGEVENS VOOR IN DE TITEL, HEADER EN FOOTER +%------------------------------------------------------------------------------- + +% Vul de naam van de opdracht in. +\assignment{MyHyvesBookPlusTagram} +% Vul het soort opdracht in. +\assignmenttype{Samenvatting} +% Vul de titel van de eindopdracht in. +\title{Logboek} + +% Vul de volledige namen van alle auteurs in. +\authors{NAME} +% Vul de corresponderende UvAnetID's in. +\uvanetids{CKNUM} + +% Vul altijd de naam in van diegene die het nakijkt, tutor of docent. +\tutor{Youri Voet} +% Vul indien nodig de naam van de begeleider in. +\mentor{} +% Vul eventueel ook de naam van de docent of vakcoordinator toe. +\docent{} +% Vul hier de naam van de PAV-groep in. +\group{The Return Of MyHyvesBook+} +% Vul de naam van de cursus in. +\course{} +% Te vinden op onder andere Datanose. +\courseid{} +\date{\today} + +% Dit is de datum die op het document komt te staan. Standaard is dat vandaag. + +%------------------------------------------------------------------------------- +% VOORPAGINA EN EVENTUEEL INHOUDSOPGAVE EN ABSTRACT +%------------------------------------------------------------------------------- + +\begin{document} +\maketitle + +%------------------------------------------------------------------------------- +% INHOUD +%------------------------------------------------------------------------------- +\section{Algemeen} +\subsection{19-6-2017} +De dag verliep anders dan verwacht door een onverwachte opdracht die de TA's ons oplegde. Deze bestond uit een pitch van een paar minuten die ons plan en project +duidelijk moesten maken. Dit plan werd goedgekeurd door Youri. Voor de pitches stond de tijd van 13:00 tot 14:00 ingesteld. Door deze pitch is onze vergadering verplaatst naar dinsdag 20-6-2017 van 11:00 tot 13:00. +Na de pitch hebben wij nog geprogrammeerd tot ongeveer 15:00. Daarna zijn wij naar huis gegaan en heeft iedereen voor zichzelf gewerkt. +\subsection{20-6-2017} +Lorem Ipsum Dolor sit amet. +\subsection{21-6-2017} +Lorem Ipsum Dolor sit amet. +\subsection{22-6-2017} +Lorem Ipsum Dolor sit amet. +\subsection{23-6-2017} +Lorem Ipsum Dolor sit amet. +\subsection{24-6-2017} +Lorem Ipsum Dolor sit amet. +\subsection{25-6-2017} +Lorem Ipsum Dolor sit amet. +\subsection{26-6-2017} +Lorem Ipsum Dolor sit amet. +\subsection{27-6-2017} +Lorem Ipsum Dolor sit amet. +\subsection{28-6-2017} +Lorem Ipsum Dolor sit amet. +\subsection{29-6-2017} +Lorem Ipsum Dolor sit amet. +\subsection{30-6-2017} +Lorem Ipsum Dolor sit amet. + +\section{Persoonlijk} +\subsection{19-6-2017} +\textbf{10:00 - 11:00}\\ +ENTRY0\\\\ +\textbf{11:00 - 13:00}\\ +ENTRY1\\\\ +\textbf{13:00 - 13:30}\\ +ENTRY2\\\\ +\textbf{13:30 - 15:00}\\ +ENTRY3\\\\ +\textbf{15:00 - 16:00}\\ +ENTRY4\\\\ +\textbf{16:00 - 17:30}\\ +ENTRY5\\\\ +\textbf{17:30+}\\ +ENTRY6\\ +\subsection{20-6-2017} +\textbf{10:00 - 11:00}\\ +ENTRY0\\\\ +\textbf{11:00 - 13:00}\\ +ENTRY1\\\\ +\textbf{13:00 - 13:30}\\ +ENTRY2\\\\ +\textbf{13:30 - 15:00}\\ +ENTRY3\\\\ +\textbf{15:00 - 16:00}\\ +ENTRY4\\\\ +\textbf{16:00 - 17:30}\\ +ENTRY5\\\\ +\textbf{17:30+}\\ +ENTRY6\\ +\subsection{21-6-2017} +\textbf{10:00 - 11:00}\\ +ENTRY0\\\\ +\textbf{11:00 - 13:00}\\ +ENTRY1\\\\ +\textbf{13:00 - 13:30}\\ +ENTRY2\\\\ +\textbf{13:30 - 15:00}\\ +ENTRY3\\\\ +\textbf{15:00 - 16:00}\\ +ENTRY4\\\\ +\textbf{16:00 - 17:30}\\ +ENTRY5\\\\ +\textbf{17:30+}\\ +ENTRY6\\ +\subsection{22-6-2017} +\textbf{10:00 - 11:00}\\ +ENTRY0\\\\ +\textbf{11:00 - 13:00}\\ +ENTRY1\\\\ +\textbf{13:00 - 13:30}\\ +ENTRY2\\\\ +\textbf{13:30 - 15:00}\\ +ENTRY3\\\\ +\textbf{15:00 - 16:00}\\ +ENTRY4\\\\ +\textbf{16:00 - 17:30}\\ +ENTRY5\\\\ +\textbf{17:30+}\\ +ENTRY6\\ +\subsection{23-6-2017} +\textbf{10:00 - 11:00}\\ +ENTRY0\\\\ +\textbf{11:00 - 13:00}\\ +ENTRY1\\\\ +\textbf{13:00 - 13:30}\\ +ENTRY2\\\\ +\textbf{13:30 - 15:00}\\ +ENTRY3\\\\ +\textbf{15:00 - 16:00}\\ +ENTRY4\\\\ +\textbf{16:00 - 17:30}\\ +ENTRY5\\\\ +\textbf{17:30+}\\ +ENTRY6\\ +\subsection{24-6-2017} +\textbf{10:00 - 11:00}\\ +ENTRY0\\\\ +\textbf{11:00 - 13:00}\\ +ENTRY1\\\\ +\textbf{13:00 - 13:30}\\ +ENTRY2\\\\ +\textbf{13:30 - 15:00}\\ +ENTRY3\\\\ +\textbf{15:00 - 16:00}\\ +ENTRY4\\\\ +\textbf{16:00 - 17:30}\\ +ENTRY5\\\\ +\textbf{17:30+}\\ +ENTRY6\\ +\subsection{25-6-2017} +\textbf{10:00 - 11:00}\\ +ENTRY0\\\\ +\textbf{11:00 - 13:00}\\ +ENTRY1\\\\ +\textbf{13:00 - 13:30}\\ +ENTRY2\\\\ +\textbf{13:30 - 15:00}\\ +ENTRY3\\\\ +\textbf{15:00 - 16:00}\\ +ENTRY4\\\\ +\textbf{16:00 - 17:30}\\ +ENTRY5\\\\ +\textbf{17:30+}\\ +ENTRY6\\ +\subsection{26-6-2017} +\textbf{10:00 - 11:00}\\ +ENTRY0\\\\ +\textbf{11:00 - 13:00}\\ +ENTRY1\\\\ +\textbf{13:00 - 13:30}\\ +ENTRY2\\\\ +\textbf{13:30 - 15:00}\\ +ENTRY3\\\\ +\textbf{15:00 - 16:00}\\ +ENTRY4\\\\ +\textbf{16:00 - 17:30}\\ +ENTRY5\\\\ +\textbf{17:30+}\\ +ENTRY6\\ +\subsection{27-6-2017} +\textbf{10:00 - 11:00}\\ +ENTRY0\\\\ +\textbf{11:00 - 13:00}\\ +ENTRY1\\\\ +\textbf{13:00 - 13:30}\\ +ENTRY2\\\\ +\textbf{13:30 - 15:00}\\ +ENTRY3\\\\ +\textbf{15:00 - 16:00}\\ +ENTRY4\\\\ +\textbf{16:00 - 17:30}\\ +ENTRY5\\\\ +\textbf{17:30+}\\ +ENTRY6\\ +\subsection{28-6-2017} +\textbf{10:00 - 11:00}\\ +ENTRY0\\\\ +\textbf{11:00 - 13:00}\\ +ENTRY1\\\\ +\textbf{13:00 - 13:30}\\ +ENTRY2\\\\ +\textbf{13:30 - 15:00}\\ +ENTRY3\\\\ +\textbf{15:00 - 16:00}\\ +ENTRY4\\\\ +\textbf{16:00 - 17:30}\\ +ENTRY5\\\\ +\textbf{17:30+}\\ +ENTRY6\\ +\subsection{29-6-2017} +\textbf{10:00 - 11:00}\\ +ENTRY0\\\\ +\textbf{11:00 - 13:00}\\ +ENTRY1\\\\ +\textbf{13:00 - 13:30}\\ +ENTRY2\\\\ +\textbf{13:30 - 15:00}\\ +ENTRY3\\\\ +\textbf{15:00 - 16:00}\\ +ENTRY4\\\\ +\textbf{16:00 - 17:30}\\ +ENTRY5\\\\ +\textbf{17:30+}\\ +ENTRY6\\ +\subsection{30-6-2017} +\textbf{10:00 - 11:00}\\ +ENTRY0\\\\ +\textbf{11:00 - 13:00}\\ +ENTRY1\\\\ +\textbf{13:00 - 13:30}\\ +ENTRY2\\\\ +\textbf{13:30 - 15:00}\\ +ENTRY3\\\\ +\textbf{15:00 - 16:00}\\ +ENTRY4\\\\ +\textbf{16:00 - 17:30}\\ +ENTRY5\\\\ +\textbf{17:30+}\\ +ENTRY6\\ +\end{document} -- 2.49.1 From f3ee792d221630fe89050f6e677095c2ccc0040d Mon Sep 17 00:00:00 2001 From: Niels Zwemmer Date: Tue, 20 Jun 2017 19:21:30 +0200 Subject: [PATCH 03/67] Added today's log --- logboek/logboek.tex | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/logboek/logboek.tex b/logboek/logboek.tex index 981cacc..387ce37 100755 --- a/logboek/logboek.tex +++ b/logboek/logboek.tex @@ -56,10 +56,11 @@ \section{Algemeen} \subsection{19-6-2017} De dag verliep anders dan verwacht door een onverwachte opdracht die de TA's ons oplegde. Deze bestond uit een pitch van een paar minuten die ons plan en project -duidelijk moesten maken. Dit plan werd goedgekeurd door Youri. Voor de pitches stond de tijd van 13:00 tot 14:00 ingesteld. Door deze pitch is onze vergadering verplaatst naar dinsdag 20-6-2017 van 11:00 tot 13:00. +duidelijk moesten maken. Dit plan werd goedgekeurd door Youri. Voor de pitches stond de tijd van 13:00 tot 14:00 ingesteld. Door deze pitch is onze vergadering verplaatst naar dinsdag 20-6-2017 van 11:00 tot 12:00. Na de pitch hebben wij nog geprogrammeerd tot ongeveer 15:00. Daarna zijn wij naar huis gegaan en heeft iedereen voor zichzelf gewerkt. \subsection{20-6-2017} -Lorem Ipsum Dolor sit amet. +Allereerst zijn de laatste oefenopgaven nagekeken. Daarna zijn Felix en Marijn direct begonnen aan hun onderdelen implementeren waarna Paul en Niels zich bij hen voegden. Marijn heeft het logo ge\"updatet en is begonnen met de upload-class implementeren. Felix heeft een eerste versie van de CameraView gemaakt. +Paul is begonnen aan de profielpagina en Niels heeft hem daarmee geholpen. Ook heeft Niels de notulen voor de vergadering gemaakt die vandaag van 11:00 tot 12:00 plaatsvond. Tijdens deze vergadering zijn vooral een aantal ontwerpkeuzes besproken. Tot slot is er een template gemaakt voor de logboeken van ieder persoon, zodat productiviteit zo veel mogelijk ongehinderd kan blijven door het achteraf moeten stroomlijnen van dit soort zaken. \subsection{21-6-2017} Lorem Ipsum Dolor sit amet. \subsection{22-6-2017} -- 2.49.1 From 39a48044d3f31a186f56984cbecdb4d37215b14f Mon Sep 17 00:00:00 2001 From: Niels Zwemmer Date: Tue, 20 Jun 2017 19:53:56 +0200 Subject: [PATCH 04/67] Removed produced PDF of counsil minutes and replaced it with .tex file. Also, added a new .tex file for today's meeting. --- notulen/notulen_0_1362017.pdf | Bin 124129 -> 0 bytes notulen/notulen_0_1362017.tex | 115 ++++++++++++++++++++++++++++++++++ notulen/notulen_1_2062017.tex | 110 ++++++++++++++++++++++++++++++++ 3 files changed, 225 insertions(+) delete mode 100644 notulen/notulen_0_1362017.pdf create mode 100644 notulen/notulen_0_1362017.tex create mode 100644 notulen/notulen_1_2062017.tex diff --git a/notulen/notulen_0_1362017.pdf b/notulen/notulen_0_1362017.pdf deleted file mode 100644 index ef11180de2c1c682bffa049842f5a7e2a5a87d20..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 124129 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 aT0o#)Z%PV Date: Wed, 21 Jun 2017 15:52:15 +0200 Subject: [PATCH 05/67] Added updated log file. --- logboek/logboek.tex | 188 ++++---------------------------------------- 1 file changed, 17 insertions(+), 171 deletions(-) mode change 100755 => 100644 logboek/logboek.tex diff --git a/logboek/logboek.tex b/logboek/logboek.tex old mode 100755 new mode 100644 index 387ce37..c418a50 --- a/logboek/logboek.tex +++ b/logboek/logboek.tex @@ -23,9 +23,9 @@ \title{Logboek} % Vul de volledige namen van alle auteurs in. -\authors{NAME} +\authors{Niels Zwemmer} % Vul de corresponderende UvAnetID's in. -\uvanetids{CKNUM} +\uvanetids{11025980} % Vul altijd de naam in van diegene die het nakijkt, tutor of docent. \tutor{Youri Voet} @@ -62,7 +62,9 @@ Na de pitch hebben wij nog geprogrammeerd tot ongeveer 15:00. Daarna zijn wij na Allereerst zijn de laatste oefenopgaven nagekeken. Daarna zijn Felix en Marijn direct begonnen aan hun onderdelen implementeren waarna Paul en Niels zich bij hen voegden. Marijn heeft het logo ge\"updatet en is begonnen met de upload-class implementeren. Felix heeft een eerste versie van de CameraView gemaakt. Paul is begonnen aan de profielpagina en Niels heeft hem daarmee geholpen. Ook heeft Niels de notulen voor de vergadering gemaakt die vandaag van 11:00 tot 12:00 plaatsvond. Tijdens deze vergadering zijn vooral een aantal ontwerpkeuzes besproken. Tot slot is er een template gemaakt voor de logboeken van ieder persoon, zodat productiviteit zo veel mogelijk ongehinderd kan blijven door het achteraf moeten stroomlijnen van dit soort zaken. \subsection{21-6-2017} -Lorem Ipsum Dolor sit amet. +De dag begon om 11:00 met een bijeenkomst van Marijn, Niels en Paul. Felix kon niet aanwezig zijn vandaag maar heeft dat gecompenseerd door veel thuis gewerkt te hebben aan de opdracht. Paul en Niels hebben de profielpagina nagenoeg afgemaakt en wachten nu tot Marijn en Felix hun eerste deel hebben ge\"implementeerd zodat zij verder kunnen. Dit zijn de onderdelen foto uploaden en wachtwoord wijzigen.\\ +Om 13:00 ging Marijn naar zijn Minor Programmeren groep om daar TA te zijn. Paul en Niels hebben tussen 13:00 en 15:00 gewerkt aan de interface opleuken van de profielpagina naast de functionaliteiten die eerder al waren verwerkt. +Om 15:00 ging iedereen naar huis, met uitzondering van Marijn die pas om 16:00 klaar was. \subsection{22-6-2017} Lorem Ipsum Dolor sit amet. \subsection{23-6-2017} @@ -84,183 +86,27 @@ Lorem Ipsum Dolor sit amet. \section{Persoonlijk} \subsection{19-6-2017} -\textbf{10:00 - 11:00}\\ -ENTRY0\\\\ -\textbf{11:00 - 13:00}\\ -ENTRY1\\\\ -\textbf{13:00 - 13:30}\\ -ENTRY2\\\\ -\textbf{13:30 - 15:00}\\ -ENTRY3\\\\ -\textbf{15:00 - 16:00}\\ -ENTRY4\\\\ -\textbf{16:00 - 17:30}\\ -ENTRY5\\\\ -\textbf{17:30+}\\ -ENTRY6\\ +Lorem Ipsum Dolor sit amet. \subsection{20-6-2017} -\textbf{10:00 - 11:00}\\ -ENTRY0\\\\ -\textbf{11:00 - 13:00}\\ -ENTRY1\\\\ -\textbf{13:00 - 13:30}\\ -ENTRY2\\\\ -\textbf{13:30 - 15:00}\\ -ENTRY3\\\\ -\textbf{15:00 - 16:00}\\ -ENTRY4\\\\ -\textbf{16:00 - 17:30}\\ -ENTRY5\\\\ -\textbf{17:30+}\\ -ENTRY6\\ +Lorem Ipsum Dolor sit amet. \subsection{21-6-2017} -\textbf{10:00 - 11:00}\\ -ENTRY0\\\\ -\textbf{11:00 - 13:00}\\ -ENTRY1\\\\ -\textbf{13:00 - 13:30}\\ -ENTRY2\\\\ -\textbf{13:30 - 15:00}\\ -ENTRY3\\\\ -\textbf{15:00 - 16:00}\\ -ENTRY4\\\\ -\textbf{16:00 - 17:30}\\ -ENTRY5\\\\ -\textbf{17:30+}\\ -ENTRY6\\ +Lorem Ipsum Dolor sit amet. \subsection{22-6-2017} -\textbf{10:00 - 11:00}\\ -ENTRY0\\\\ -\textbf{11:00 - 13:00}\\ -ENTRY1\\\\ -\textbf{13:00 - 13:30}\\ -ENTRY2\\\\ -\textbf{13:30 - 15:00}\\ -ENTRY3\\\\ -\textbf{15:00 - 16:00}\\ -ENTRY4\\\\ -\textbf{16:00 - 17:30}\\ -ENTRY5\\\\ -\textbf{17:30+}\\ -ENTRY6\\ +Lorem Ipsum Dolor sit amet. \subsection{23-6-2017} -\textbf{10:00 - 11:00}\\ -ENTRY0\\\\ -\textbf{11:00 - 13:00}\\ -ENTRY1\\\\ -\textbf{13:00 - 13:30}\\ -ENTRY2\\\\ -\textbf{13:30 - 15:00}\\ -ENTRY3\\\\ -\textbf{15:00 - 16:00}\\ -ENTRY4\\\\ -\textbf{16:00 - 17:30}\\ -ENTRY5\\\\ -\textbf{17:30+}\\ -ENTRY6\\ +Lorem Ipsum Dolor sit amet. \subsection{24-6-2017} -\textbf{10:00 - 11:00}\\ -ENTRY0\\\\ -\textbf{11:00 - 13:00}\\ -ENTRY1\\\\ -\textbf{13:00 - 13:30}\\ -ENTRY2\\\\ -\textbf{13:30 - 15:00}\\ -ENTRY3\\\\ -\textbf{15:00 - 16:00}\\ -ENTRY4\\\\ -\textbf{16:00 - 17:30}\\ -ENTRY5\\\\ -\textbf{17:30+}\\ -ENTRY6\\ +Lorem Ipsum Dolor sit amet. \subsection{25-6-2017} -\textbf{10:00 - 11:00}\\ -ENTRY0\\\\ -\textbf{11:00 - 13:00}\\ -ENTRY1\\\\ -\textbf{13:00 - 13:30}\\ -ENTRY2\\\\ -\textbf{13:30 - 15:00}\\ -ENTRY3\\\\ -\textbf{15:00 - 16:00}\\ -ENTRY4\\\\ -\textbf{16:00 - 17:30}\\ -ENTRY5\\\\ -\textbf{17:30+}\\ -ENTRY6\\ +Lorem Ipsum Dolor sit amet. \subsection{26-6-2017} -\textbf{10:00 - 11:00}\\ -ENTRY0\\\\ -\textbf{11:00 - 13:00}\\ -ENTRY1\\\\ -\textbf{13:00 - 13:30}\\ -ENTRY2\\\\ -\textbf{13:30 - 15:00}\\ -ENTRY3\\\\ -\textbf{15:00 - 16:00}\\ -ENTRY4\\\\ -\textbf{16:00 - 17:30}\\ -ENTRY5\\\\ -\textbf{17:30+}\\ -ENTRY6\\ +Lorem Ipsum Dolor sit amet. \subsection{27-6-2017} -\textbf{10:00 - 11:00}\\ -ENTRY0\\\\ -\textbf{11:00 - 13:00}\\ -ENTRY1\\\\ -\textbf{13:00 - 13:30}\\ -ENTRY2\\\\ -\textbf{13:30 - 15:00}\\ -ENTRY3\\\\ -\textbf{15:00 - 16:00}\\ -ENTRY4\\\\ -\textbf{16:00 - 17:30}\\ -ENTRY5\\\\ -\textbf{17:30+}\\ -ENTRY6\\ +Lorem Ipsum Dolor sit amet. \subsection{28-6-2017} -\textbf{10:00 - 11:00}\\ -ENTRY0\\\\ -\textbf{11:00 - 13:00}\\ -ENTRY1\\\\ -\textbf{13:00 - 13:30}\\ -ENTRY2\\\\ -\textbf{13:30 - 15:00}\\ -ENTRY3\\\\ -\textbf{15:00 - 16:00}\\ -ENTRY4\\\\ -\textbf{16:00 - 17:30}\\ -ENTRY5\\\\ -\textbf{17:30+}\\ -ENTRY6\\ +Lorem Ipsum Dolor sit amet. \subsection{29-6-2017} -\textbf{10:00 - 11:00}\\ -ENTRY0\\\\ -\textbf{11:00 - 13:00}\\ -ENTRY1\\\\ -\textbf{13:00 - 13:30}\\ -ENTRY2\\\\ -\textbf{13:30 - 15:00}\\ -ENTRY3\\\\ -\textbf{15:00 - 16:00}\\ -ENTRY4\\\\ -\textbf{16:00 - 17:30}\\ -ENTRY5\\\\ -\textbf{17:30+}\\ -ENTRY6\\ +Lorem Ipsum Dolor sit amet. \subsection{30-6-2017} -\textbf{10:00 - 11:00}\\ -ENTRY0\\\\ -\textbf{11:00 - 13:00}\\ -ENTRY1\\\\ -\textbf{13:00 - 13:30}\\ -ENTRY2\\\\ -\textbf{13:30 - 15:00}\\ -ENTRY3\\\\ -\textbf{15:00 - 16:00}\\ -ENTRY4\\\\ -\textbf{16:00 - 17:30}\\ -ENTRY5\\\\ -\textbf{17:30+}\\ -ENTRY6\\ +Lorem Ipsum Dolor sit amet. \end{document} -- 2.49.1 From d7dcaa6c29def800e9ab5a9930a5fd28c8bf21e6 Mon Sep 17 00:00:00 2001 From: Niels Zwemmer Date: Thu, 22 Jun 2017 20:53:01 +0200 Subject: [PATCH 06/67] Added today's log entry. --- logboek/logboek.tex | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/logboek/logboek.tex b/logboek/logboek.tex index c418a50..e807f88 100644 --- a/logboek/logboek.tex +++ b/logboek/logboek.tex @@ -66,7 +66,10 @@ De dag begon om 11:00 met een bijeenkomst van Marijn, Niels en Paul. Felix kon n Om 13:00 ging Marijn naar zijn Minor Programmeren groep om daar TA te zijn. Paul en Niels hebben tussen 13:00 en 15:00 gewerkt aan de interface opleuken van de profielpagina naast de functionaliteiten die eerder al waren verwerkt. Om 15:00 ging iedereen naar huis, met uitzondering van Marijn die pas om 16:00 klaar was. \subsection{22-6-2017} -Lorem Ipsum Dolor sit amet. +Vandaag hebben wij om 10 uur afgesproken om alvast een eerste versie van onze poster te maken. We zijn over het algemeen al tevreden over dat resultaat maar de definitieve versie zal minder tekst en meer, grotere plaatjes moeten bevatten. +Nadat de poster klaar was, hebben wij geprogrammeerd tot 15:00; de tijd waarop de PAV bijeenkomst begon. +Marijn was vanaf 13:00 weer te vinden in het Minor Programmeren lokaal. We hebben allemaal wat progressie geboekt. Paul heeft Felix ondersteunt met zijn camera implementatie waardoor Felix nu bijna toe is aan de filterimplementatie. +Marijn is bezig geweest aan de poster ontwerpen onder het toeziend oog van Felix als hoofd-design en Niels heeft een eerste implementatie gedaan voor het updaten van de profielfoto. Na de PAV-bijeenkomst is iedereen in de stromende regen naar huis gegaan. \subsection{23-6-2017} Lorem Ipsum Dolor sit amet. \subsection{24-6-2017} -- 2.49.1 From 06eb90bc9facb1fa5eb35580b7b10b4124c2fbf1 Mon Sep 17 00:00:00 2001 From: Niels Zwemmer Date: Fri, 23 Jun 2017 13:14:15 +0200 Subject: [PATCH 07/67] Added council minutes of today. --- notulen/notulen_2_2362017.tex | 113 ++++++++++++++++++++++++++++++++++ 1 file changed, 113 insertions(+) create mode 100644 notulen/notulen_2_2362017.tex diff --git a/notulen/notulen_2_2362017.tex b/notulen/notulen_2_2362017.tex new file mode 100644 index 0000000..0567799 --- /dev/null +++ b/notulen/notulen_2_2362017.tex @@ -0,0 +1,113 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% LATEX-TEMPLATE GENERIEK +% Voor readme en meest recente versie, zie +% https://gitlab-fnwi.uva.nl/informatica/LaTeX-template.git +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%------------------------------------------------------------------------------- +% PACKAGES EN DOCUMENT CONFIGURATIE +%------------------------------------------------------------------------------- + +\documentclass{uva-inf-article} +\newcommand\tab[1][1cm]{\hspace*{#1}} +\newcommand\tabb[1][1.4cm]{\hspace*{#1}} +\usepackage[dutch]{babel} +\usepackage{booktabs} +%------------------------------------------------------------------------------- +% GEGEVENS VOOR IN DE TITEL, HEADER EN FOOTER +%------------------------------------------------------------------------------- + + + +% Vul de naam van de opdracht in. +\assignment{Notulen: The Return Of The MyHyvesBook+} +% Vul het soort opdracht in. +\assignmenttype{Samenvatting} +% Vul de titel van de eindopdracht in. +\title{Entry 2: Nu komt het echte werk} + +% Vul de volledige namen van alle auteurs in. +\authors{Marijn Jansen; Felix Atsma; Paul Lagerweij; Niels Zwemmer} +% Vul de corresponderende UvAnetID's in. +\uvanetids{11166932; 11035064; 11306084; 11025980} + +% Vul altijd de naam in van diegene die het nakijkt, tutor of docent. +\tutor{Robin Klusman} +% Vul eventueel ook de naam van de docent of vakcoordinator toe. +\docent{drs. A. van Inge} +% Vul hier de naam van de PAV-groep in. +\group{C1 (C++)} +% Vul de naam van de cursus in. +\course{Multimedia} +% Te vinden op onder andere Datanose. +\courseid{5062MULT6Y} + +% Dit is de datum die op het document komt te staan. Standaard is dat vandaag. +\date{\today} + +%------------------------------------------------------------------------------- +% VOORPAGINA EN EVENTUEEL INHOUDSOPGAVE EN ABSTRACT +%------------------------------------------------------------------------------- + +\begin{document} +\maketitle + +\noindent +\textbf{Data Vergadering}\\\\ +Datum:\tab 23-6-2017 +\\ +Tijd:\tabb 11:30-12:00 +\\ +Noot: De vergadering is iets later begonnen door een vertraging van zowel Niels als Felix. +\\\\ +\noindent +Aanwezig (fysiek):\tabb\space\space\space Marijn, Felix, Niels\\ +Aanwezig (telefonisch):\tab-\\ +Afwezig:\tabb\tabb\space\space\space\space Paul\\\\ +\noindent +\textbf{Onderwerpen besproken} + +\begin{itemize} +\item Implementatiekeuzes: Ingebouwde camera voor de profielfoto, mogelijkheid tot uitbreiden met gezichtsherkenning (indien tijd). +\item Evaluatie: Hoe staan we ervoor? Back-end grotendeels af. +\item Problemen aan de kant van Multimedia-team: Niet ingedeeld in een groep, projectplan niet her-inleverbaar. +\item Verdeling aangepast: Iedereen helpt elkaar met methodes waar zij verstand van hebben. +\end{itemize} +\pagebreak + +\noindent +\textbf{Positieve punten naar voren gekomen}\\\\ +We maken goede vooruitgang waarbij we zowel de code als de poster in gedachten hebben. De code ziet er netjes uit en iedereen houdt een consistente stijl aan. Dit zorgt voor een goede werksfeer en weinig over en weer uitleg nodig. +Het gebruik van de ingebouwde camera voor een profielfoto (aangezien daar weinig verdere methodes voor nodig zijn zoals die nodig zijn voor een post plaatsen), zorgt ervoor dat veel werk uit handen genomen wordt en wij onszelf meer tijd gunnen voor de overige benodigde functionaliteit. We zitten goed op schema en lopen zelfs op punten wat voor. Dit moeten we zo volhouden om te zorgen dat de app ook nog daadwerkelijk volgemaakt kan worden met posts voor de oplevering volgende week. +De back-end is nu grotendeels af, wat ervoor zorgt dat we nu ook echt de filters en andere algoritmes kunnen implementeren en testen. +\\\\ + +\noindent +\textbf{Kort} +\begin{itemize} +\item Goede vooruitgang, zowel poster als programma. +\item Ingebouwde camera goede keuze geweest. +\item We liggen op schema; back-end bijna af. +\end{itemize} + +\noindent +\textbf{Negatieve punten naar voren gekomen}\\\\ +Paul heeft wat tijd nodig om te herstellen na een aantal dagen achter elkaar aanwezig te zijn geweest op de UvA. Thuis werkt hij echter wel door. +Daarnaast zijn we niet goed ingedeeld in een groep op Blackboard, hiervoor zal Niels een mailtje sturen naar Toto om te vragen voor ondersteuning. +\\\\ + +\noindent +\textbf{Kort} +\begin{itemize} +\item Paul moet even herstellen. +\item Geen groep op Blackboard. + +\end{itemize} + + \vfill \hfill \textit{“Wer hedden d’r zin oan!”} + +%------------------------------------------------------------------------------- +% INHOUD +%------------------------------------------------------------------------------- + +\end{document} -- 2.49.1 From 0e25ff63ccedc5a4814e12bace863620fe7aded7 Mon Sep 17 00:00:00 2001 From: Niels Zwemmer Date: Fri, 23 Jun 2017 14:35:25 +0200 Subject: [PATCH 08/67] Cleaned code, added an invalidate. Needs testing. --- .../tagram/ProfileFragment.java | 21 +------------------ 1 file changed, 1 insertion(+), 20 deletions(-) diff --git a/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/ProfileFragment.java b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/ProfileFragment.java index 27ab142..7b251aa 100644 --- a/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/ProfileFragment.java +++ b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/ProfileFragment.java @@ -185,29 +185,10 @@ public class ProfileFragment extends Fragment implements View.OnClickListener { Bitmap imageBitmap = (Bitmap) extras.get("data"); UploadClass uploadClass = new UploadClass(); uploadClass.uploadProfilePicture(imageBitmap); -// uploadClass.uploadPicture(new BitmapPost(imageBitmap, "Ik ben een heel mooi comment")); -// downloadUrl = uploadClass.getDownloadUrl(); -// updateUserProfilePic(user); + profilePicture.invalidate(); } } -// protected void updateUserProfilePic(final FirebaseUser user) { -// UserProfileChangeRequest request = new UserProfileChangeRequest.Builder() -// .setPhotoUri(downloadUrl) -// .build(); -// -// user.updateProfile(request) -// .addOnCompleteListener(new OnCompleteListener() { -// @Override -// public void onComplete(@NonNull Task task) { -// if (task.isSuccessful()) { -// Log.d(TAG, "User profile updated!"); -// } -// } -// }); -// } - - // TODO Make this function into its own class for modularity. /** * Performs password reset action. -- 2.49.1 From 8ba9f7f8e3394f02a5fccca635df33f40aa35267 Mon Sep 17 00:00:00 2001 From: Marijn Jansen Date: Fri, 23 Jun 2017 16:40:34 +0200 Subject: [PATCH 09/67] Delete profile pics on replace. --- .../tagram/controller/UploadClass.java | 29 +++++++++++++++---- 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/controller/UploadClass.java b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/controller/UploadClass.java index 3f104a2..c3e7c8b 100644 --- a/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/controller/UploadClass.java +++ b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/controller/UploadClass.java @@ -34,13 +34,15 @@ public class UploadClass { private static final String TAG = "UploadClass"; private StorageReference mStorageRef; private DatabaseReference mDataRef; - private ProfilePictureUpdatedListener mListener; + private FirebaseUser mUser; + private Uri oldPicture; public UploadClass(Context context) { mStorageRef = FirebaseStorage.getInstance().getReference(); mDataRef = FirebaseDatabase.getInstance().getReference(); mListener = (ProfilePictureUpdatedListener) context; + mUser = FirebaseAuth.getInstance().getCurrentUser(); } /// Helpers /// @@ -52,9 +54,8 @@ public class UploadClass { } private String getUserUid() { - FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser(); - if (user != null) { - return user.getUid(); + if (mUser != null) { + return mUser.getUid(); } return ""; } @@ -101,6 +102,7 @@ public class UploadClass { public void uploadProfilePicture(Bitmap picture) { byte[] uploadPhoto = bitmapToBytes(picture); + oldPicture = mUser.getPhotoUrl(); UploadTask photoUpload = mStorageRef.child("profile").child(getUserUid() + "_" + currentTimeMillis()).putBytes(uploadPhoto); photoUpload.addOnSuccessListener(new OnSuccessListener() { @Override @@ -112,16 +114,31 @@ public class UploadClass { } private void updateProfilePictureInUser(Uri url) { - FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser(); UserProfileChangeRequest request = new UserProfileChangeRequest.Builder() .setPhotoUri(url) .build(); - user.updateProfile(request) + mUser.updateProfile(request) .addOnCompleteListener(new OnCompleteListener() { @Override public void onComplete(@NonNull Task task) { Log.d(TAG, "onComplete: Updated profile picture"); mListener.ProfilePictureUpdated(true); + removeOldPicture(); + } + }); + } + + private void removeOldPicture() { + StorageReference ref = FirebaseStorage.getInstance().getReferenceFromUrl(oldPicture.toString()); + ref.delete() + .addOnCompleteListener(new OnCompleteListener() { + @Override + public void onComplete(@NonNull Task task) { + if (task.isSuccessful()) { + Log.d(TAG, "onComplete: Delete successfull"); + } else { + Log.d(TAG, "onComplete: " + task.getException().getLocalizedMessage()); + } } }); } -- 2.49.1 From 3855d9d917d6c63feb129291bfc12b3cc856e5b9 Mon Sep 17 00:00:00 2001 From: Niels Zwemmer Date: Fri, 23 Jun 2017 17:30:29 +0200 Subject: [PATCH 10/67] Cleared up code and made first (failed) attempt at progressDialog. --- .../myhyvesbookplus/tagram/MainActivity.java | 4 +- .../tagram/ProfileFragment.java | 100 ++---------------- .../app/src/main/res/values/strings.xml | 2 + 3 files changed, 14 insertions(+), 92 deletions(-) diff --git a/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/MainActivity.java b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/MainActivity.java index 51b3a3b..2ce7f04 100644 --- a/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/MainActivity.java +++ b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/MainActivity.java @@ -18,7 +18,7 @@ import com.google.firebase.auth.FirebaseAuth; import nl.myhyvesbookplus.tagram.controller.UploadClass; import nl.myhyvesbookplus.tagram.model.BitmapPost; -public class MainActivity extends AppCompatActivity implements CameraFragment.OnFragmentInteractionListener, ProfileFragment.OnFragmentInteractionListener, TimelineFragment.OnFragmentInteractionListener, UploadClass.ProfilePictureUpdatedListener { +public class MainActivity extends AppCompatActivity implements CameraFragment.OnFragmentInteractionListener, TimelineFragment.OnFragmentInteractionListener, UploadClass.ProfilePictureUpdatedListener { final static private String TAG = "MainScreen"; FirebaseAuth mAuth; @@ -110,14 +110,12 @@ public class MainActivity extends AppCompatActivity implements CameraFragment.On @Override public void ProfilePictureUpdated(Boolean success) { - Log.d(TAG, "ProfilePictureUpdated: Ja ik luister naar je!"); FragmentManager man = getFragmentManager(); ProfileFragment frag = (ProfileFragment) man.findFragmentById(R.id.content); FragmentTransaction transaction = man.beginTransaction(); transaction.detach(frag) .attach(frag) .commit(); - Log.d(TAG, "ProfilePictureUpdated: Done reloading fragment"); } } diff --git a/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/ProfileFragment.java b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/ProfileFragment.java index 31e1fdb..2692d29 100644 --- a/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/ProfileFragment.java +++ b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/ProfileFragment.java @@ -1,6 +1,7 @@ package nl.myhyvesbookplus.tagram; import android.app.Fragment; +import android.app.ProgressDialog; import android.content.Context; import android.content.Intent; import android.graphics.Bitmap; @@ -32,64 +33,25 @@ import static android.app.Activity.RESULT_OK; /** * A simple {@link Fragment} subclass. - * Activities that contain this fragment must implement the - * {@link ProfileFragment.OnFragmentInteractionListener} interface - * to handle interaction events. - * Use the {@link ProfileFragment#newInstance} factory method to - * create an instance of this fragment. */ public class ProfileFragment extends Fragment implements View.OnClickListener { static final int REQUEST_IMAGE_CAPTURE = 1; - final static private String TAG = "ProfileFragment"; - // TODO: Rename parameter arguments, choose names that match - // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER - private static final String ARG_PARAM1 = "param1"; - private static final String ARG_PARAM2 = "param2"; - private static Uri downloadUrl; protected Button changePwdButton; protected ImageButton profilePicButton; - - /// Views /// protected StorageReference httpsReference; protected TextView profileName; protected ImageView profilePicture; protected FirebaseUser user; - // TODO: Rename and change types of parameters - private String mParam1; - private String mParam2; - private OnFragmentInteractionListener mListener; + private ProgressDialog progressDialog; /// Required empty public constructor /// - public ProfileFragment() {} - - - /** - * Use this factory method to create a new instance of - * this fragment using the provided parameters. - * - * @param param1 Parameter 1. - * @param param2 Parameter 2. - * @return A new instance of fragment ProfileFragment. - */ - // TODO: Rename and change types and number of parameters - public static ProfileFragment newInstance(String param1, String param2) { - ProfileFragment fragment = new ProfileFragment(); - Bundle args = new Bundle(); - args.putString(ARG_PARAM1, param1); - args.putString(ARG_PARAM2, param2); - fragment.setArguments(args); - return fragment; + public ProfileFragment() { } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - if (getArguments() != null) { - mParam1 = getArguments().getString(ARG_PARAM1); - mParam2 = getArguments().getString(ARG_PARAM2); - } - user = FirebaseAuth.getInstance().getCurrentUser(); } @@ -126,7 +88,7 @@ public class ProfileFragment extends Fragment implements View.OnClickListener { Glide.with(this).using(new FirebaseImageLoader()).load(httpsReference).into(profilePicture); } - profilePicture.invalidate(); + profilePicture.invalidate(); // To display the profile picture after it has been updated. if (user != null && user.getDisplayName() != null) { profileName.setText(user.getDisplayName()); @@ -135,13 +97,6 @@ public class ProfileFragment extends Fragment implements View.OnClickListener { return view; } - // TODO: Rename method, update argument and hook method into UI event - public void onButtonPressed(Uri uri) { - if (mListener != null) { - mListener.onFragmentInteraction(uri); - } - } - /** * Called when a view has been clicked. * @@ -160,11 +115,11 @@ public class ProfileFragment extends Fragment implements View.OnClickListener { } // TODO Make the function actually do something. + /** * Performs profile picture change action. */ public void profilePicOnClick() { -// Log.d(TAG, "profilePicOnClick: JE KAN NOG GEEN FOTO UPLOADEN"); dispatchTakePictureIntent(); } @@ -180,6 +135,7 @@ public class ProfileFragment extends Fragment implements View.OnClickListener { /** * Grabs the image just taken by the built-in camera and pushes this image to the user account. + * * @param requestCode * @param resultCode * @param data @@ -189,12 +145,15 @@ public class ProfileFragment extends Fragment implements View.OnClickListener { if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) { Bundle extras = data.getExtras(); Bitmap imageBitmap = (Bitmap) extras.get("data"); + progressDialog = ProgressDialog.show(getActivity(), getString(R.string.please_wait), "Uploading...", true, false); UploadClass uploadClass = new UploadClass(getActivity()); uploadClass.uploadProfilePicture(imageBitmap); + progressDialog.dismiss(); } } // TODO Make this function into its own class for modularity. + /** * Performs password reset action. */ @@ -205,8 +164,8 @@ public class ProfileFragment extends Fragment implements View.OnClickListener { @Override public void onComplete(@NonNull Task task) { Toast.makeText(getActivity(), task.isSuccessful() - ? "An e-mail was sent, please follow its instructions." - : "An error occurred, please check internet connection.", + ? getString(R.string.mail_successful) + : getString(R.string.mail_failed), Toast.LENGTH_SHORT).show(); } }); @@ -214,41 +173,4 @@ public class ProfileFragment extends Fragment implements View.OnClickListener { // TODO Add code here for when there is no currently active user. } } - - /** - * Obligatory onAttach function included in fragments. - * @param context provided context for the function to operate on. - */ - @Override - public void onAttach(Context context) { - super.onAttach(context); - if (context instanceof OnFragmentInteractionListener) { - mListener = (OnFragmentInteractionListener) context; - } else { - throw new RuntimeException(context.toString() - + " must implement OnFragmentInteractionListener"); - } - } - - /** - * Obligatory onDetach function included in fragments. - */ - @Override - public void onDetach() { - super.onDetach(); - mListener = null; - } - - /** - * This interface must be implemented by activities that contain this - * fragment to allow an interaction in this fragment to be communicated - * to the activity and potentially other fragments contained in that - * activity. - * See the Android Training lesson http://developer.android.com/training/basics/fragments/communicating.html - * for more information. - */ - public interface OnFragmentInteractionListener { - // TODO: Update argument type and name - void onFragmentInteraction(Uri uri); - } } diff --git a/app/MyHyvesBookPlusStagram/app/src/main/res/values/strings.xml b/app/MyHyvesBookPlusStagram/app/src/main/res/values/strings.xml index a5f3ee1..8986643 100644 --- a/app/MyHyvesBookPlusStagram/app/src/main/res/values/strings.xml +++ b/app/MyHyvesBookPlusStagram/app/src/main/res/values/strings.xml @@ -24,4 +24,6 @@ profile picture Change Password Please Wait + An e-mail was sent. Please follow its instructions. + An error occurred. Please check internet connection. -- 2.49.1 From a71fc80f5982d06038ecd7f736fe8682b6aeb40c Mon Sep 17 00:00:00 2001 From: Marijn Jansen Date: Fri, 23 Jun 2017 20:35:47 +0200 Subject: [PATCH 11/67] Added ProgressDialog to upload. --- .../src/main/java/nl/myhyvesbookplus/tagram/MainActivity.java | 1 + .../main/java/nl/myhyvesbookplus/tagram/ProfileFragment.java | 3 +++ 2 files changed, 4 insertions(+) diff --git a/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/MainActivity.java b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/MainActivity.java index 51b3a3b..076c727 100644 --- a/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/MainActivity.java +++ b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/MainActivity.java @@ -114,6 +114,7 @@ public class MainActivity extends AppCompatActivity implements CameraFragment.On FragmentManager man = getFragmentManager(); ProfileFragment frag = (ProfileFragment) man.findFragmentById(R.id.content); FragmentTransaction transaction = man.beginTransaction(); + frag.progressDialog.dismiss(); transaction.detach(frag) .attach(frag) .commit(); diff --git a/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/ProfileFragment.java b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/ProfileFragment.java index 5f87eb2..ae93f98 100644 --- a/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/ProfileFragment.java +++ b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/ProfileFragment.java @@ -1,6 +1,7 @@ package nl.myhyvesbookplus.tagram; import android.app.Fragment; +import android.app.ProgressDialog; import android.content.Context; import android.content.Intent; import android.graphics.Bitmap; @@ -54,6 +55,7 @@ public class ProfileFragment extends Fragment implements View.OnClickListener { protected TextView profileName; protected ImageView profilePicture; protected FirebaseUser user; + ProgressDialog progressDialog; // TODO: Rename and change types of parameters private String mParam1; private String mParam2; @@ -189,6 +191,7 @@ public class ProfileFragment extends Fragment implements View.OnClickListener { if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) { Bundle extras = data.getExtras(); Bitmap imageBitmap = (Bitmap) extras.get("data"); + progressDialog = ProgressDialog.show(getActivity(), getString(R.string.please_wait), "bezig met uploaden", false, false); UploadClass uploadClass = new UploadClass(getActivity()); uploadClass.uploadProfilePicture(imageBitmap); } -- 2.49.1 From 5181128504243df8775434f30223e938c5739e6a Mon Sep 17 00:00:00 2001 From: Niels Zwemmer Date: Sat, 24 Jun 2017 13:40:02 +0200 Subject: [PATCH 12/67] Committed files for others to look at and improve: Photo upload does not work properly. --- .../app/src/main/AndroidManifest.xml | 3 + .../myhyvesbookplus/tagram/MainActivity.java | 4 +- .../tagram/ProfileFragment.java | 166 ++++++++++++++++-- .../tagram/controller/UploadClass.java | 33 ++-- 4 files changed, 178 insertions(+), 28 deletions(-) diff --git a/app/MyHyvesBookPlusStagram/app/src/main/AndroidManifest.xml b/app/MyHyvesBookPlusStagram/app/src/main/AndroidManifest.xml index dff6028..e3615d5 100644 --- a/app/MyHyvesBookPlusStagram/app/src/main/AndroidManifest.xml +++ b/app/MyHyvesBookPlusStagram/app/src/main/AndroidManifest.xml @@ -3,6 +3,9 @@ package="nl.myhyvesbookplus.tagram"> + + + task) { Toast.makeText(getActivity(), task.isSuccessful() - ? getString(R.string.mail_successful) - : getString(R.string.mail_failed), + ? "An e-mail was sent, please follow its instructions." + : "An error occurred, please check internet connection.", Toast.LENGTH_SHORT).show(); } }); @@ -174,4 +269,43 @@ public class ProfileFragment extends Fragment implements View.OnClickListener { // TODO Add code here for when there is no currently active user. } } + + /** + * Obligatory onAttach function included in fragments. + * @param context provided context for the function to operate on. + */ + @Override + public void onAttach(Context context) { + super.onAttach(context); + if (context instanceof OnFragmentInteractionListener) { + mListener = (OnFragmentInteractionListener) context; + } else { + throw new RuntimeException(context.toString() + + " must implement OnFragmentInteractionListener"); + } + } + + /** + * Obligatory onDetach function included in fragments. + */ + @Override + public void onDetach() { + super.onDetach(); + mListener = null; + } + + /** + * This interface must be implemented by activities that contain this + * fragment to allow an interaction in this fragment to be communicated + * to the activity and potentially other fragments contained in that + * activity. + * See the Android Training lesson http://developer.android.com/training/basics/fragments/communicating.html + * for more information. + */ + public interface OnFragmentInteractionListener { + // TODO: Update argument type and name + void onFragmentInteraction(Uri uri); + } + + } diff --git a/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/controller/UploadClass.java b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/controller/UploadClass.java index c3e7c8b..f46b18e 100644 --- a/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/controller/UploadClass.java +++ b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/controller/UploadClass.java @@ -6,6 +6,7 @@ import android.net.Uri; import android.support.annotation.NonNull; import android.util.Log; + import com.google.android.gms.tasks.OnCompleteListener; import com.google.android.gms.tasks.OnFailureListener; import com.google.android.gms.tasks.OnSuccessListener; @@ -20,6 +21,9 @@ import com.google.firebase.storage.StorageReference; import com.google.firebase.storage.UploadTask; import java.io.ByteArrayOutputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; import nl.myhyvesbookplus.tagram.model.BitmapPost; import nl.myhyvesbookplus.tagram.model.UriPost; @@ -100,17 +104,24 @@ public class UploadClass { /// Profile picture /// - public void uploadProfilePicture(Bitmap picture) { - byte[] uploadPhoto = bitmapToBytes(picture); - oldPicture = mUser.getPhotoUrl(); - UploadTask photoUpload = mStorageRef.child("profile").child(getUserUid() + "_" + currentTimeMillis()).putBytes(uploadPhoto); - photoUpload.addOnSuccessListener(new OnSuccessListener() { - @Override - public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) { - Uri downloadUrl = taskSnapshot.getDownloadUrl(); - updateProfilePictureInUser(downloadUrl); - } - }); + public void uploadProfilePicture(File picture) { + try { + FileInputStream stream = new FileInputStream(picture); +// Uri uri = Uri.fromFile(picture); + Log.d(TAG, "uploadProfilePicture: This is the uri:" + stream.toString()); + oldPicture = mUser.getPhotoUrl(); + + UploadTask photoUpload = mStorageRef.child("profile").child(getUserUid() + "_" + currentTimeMillis()).putStream(stream); + photoUpload.addOnSuccessListener(new OnSuccessListener() { + @Override + public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) { + Uri downloadUrl = taskSnapshot.getDownloadUrl(); + updateProfilePictureInUser(downloadUrl); + } + }); + } catch (FileNotFoundException fnfe) { + Log.d(TAG, "uploadProfilePicture: FIle niet gevonden"); + } } private void updateProfilePictureInUser(Uri url) { -- 2.49.1 From cc1b83b0e0054afbe0a0106893ac8a8bf5c99fc2 Mon Sep 17 00:00:00 2001 From: Niels Zwemmer Date: Sat, 24 Jun 2017 20:24:09 +0200 Subject: [PATCH 13/67] Added today and yesterday's entries. --- logboek/logboek.tex | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/logboek/logboek.tex b/logboek/logboek.tex index e807f88..0b61e0b 100644 --- a/logboek/logboek.tex +++ b/logboek/logboek.tex @@ -71,10 +71,12 @@ Nadat de poster klaar was, hebben wij geprogrammeerd tot 15:00; de tijd waarop d Marijn was vanaf 13:00 weer te vinden in het Minor Programmeren lokaal. We hebben allemaal wat progressie geboekt. Paul heeft Felix ondersteunt met zijn camera implementatie waardoor Felix nu bijna toe is aan de filterimplementatie. Marijn is bezig geweest aan de poster ontwerpen onder het toeziend oog van Felix als hoofd-design en Niels heeft een eerste implementatie gedaan voor het updaten van de profielfoto. Na de PAV-bijeenkomst is iedereen in de stromende regen naar huis gegaan. \subsection{23-6-2017} -Lorem Ipsum Dolor sit amet. -\subsection{24-6-2017} -Lorem Ipsum Dolor sit amet. -\subsection{25-6-2017} +De dag begon deze keer met een korte programmeersessie tussen Marijn en Niels. Felix was iets later aanwezig. Marijn heeft Niels geholpen met een aantal laatste functionaliteiten toevoegen voor het uploaden van een foto naar de Firebase storage. Felix heeft zich vooral bezig gehouden met het implementeren van de filters. Hij heeft zijn camera-deel waarbij zowel een upload -als opslagfunctie is ingebouwd nu. +Paul kon vandaag niet aanwezig zijn. Hij heeft zich echter van huis uit bezig gehouden met zijn gedeelte van de profielpagina en heeft een aantal wijzigingen met mij besproken. Zo hebben wij geconstateerd dat een bitmap niet de beste methode is om de profielfoto op te slaan, omdat deze een slechte kwaliteit biedt. +Marijn was vandaag niet nodig bij de Minor Programmeren. Hierdoor waren wij de gehele dag gezamelijk bezig aan de opdracht wat ervoor zorgde dat er een grote productiviteit was. +\subsection{24-6-2017 (Zaterdag) } +Een ieder is van huis uit bezig geweest met zijn eigen onderdelen t.b.v. Trello. Communicatieverkeer was er nauwelijks omdat iedereen nu goed gefocused kon zijn op zijn eigen werk. +\subsection{25-6-2017 (Zondag) } Lorem Ipsum Dolor sit amet. \subsection{26-6-2017} Lorem Ipsum Dolor sit amet. -- 2.49.1 From 8678cc911117de3c4e9ccd25633d8b7ffc44b164 Mon Sep 17 00:00:00 2001 From: Niels Zwemmer Date: Sat, 24 Jun 2017 20:58:00 +0200 Subject: [PATCH 14/67] Added today and yesterday's entries. Forgot about adding the meeting. It is now added. --- logboek/logboek.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/logboek/logboek.tex b/logboek/logboek.tex index 0b61e0b..3ba12fa 100644 --- a/logboek/logboek.tex +++ b/logboek/logboek.tex @@ -72,7 +72,7 @@ Marijn was vanaf 13:00 weer te vinden in het Minor Programmeren lokaal. We hebbe Marijn is bezig geweest aan de poster ontwerpen onder het toeziend oog van Felix als hoofd-design en Niels heeft een eerste implementatie gedaan voor het updaten van de profielfoto. Na de PAV-bijeenkomst is iedereen in de stromende regen naar huis gegaan. \subsection{23-6-2017} De dag begon deze keer met een korte programmeersessie tussen Marijn en Niels. Felix was iets later aanwezig. Marijn heeft Niels geholpen met een aantal laatste functionaliteiten toevoegen voor het uploaden van een foto naar de Firebase storage. Felix heeft zich vooral bezig gehouden met het implementeren van de filters. Hij heeft zijn camera-deel waarbij zowel een upload -als opslagfunctie is ingebouwd nu. -Paul kon vandaag niet aanwezig zijn. Hij heeft zich echter van huis uit bezig gehouden met zijn gedeelte van de profielpagina en heeft een aantal wijzigingen met mij besproken. Zo hebben wij geconstateerd dat een bitmap niet de beste methode is om de profielfoto op te slaan, omdat deze een slechte kwaliteit biedt. +Paul kon vandaag niet aanwezig zijn. Hij heeft zich echter van huis uit bezig gehouden met zijn gedeelte van de profielpagina en heeft een aantal wijzigingen met mij besproken. We hebben een vergadering gehouden van 11:30 tot ongeveer 12:30. Uit deze vergadering zijn een aantal dingen gebleken. Zo hebben wij bijvoorbeeld geconstateerd dat een bitmap niet de beste methode is om de profielfoto op te slaan, omdat deze een slechte kwaliteit biedt. Marijn was vandaag niet nodig bij de Minor Programmeren. Hierdoor waren wij de gehele dag gezamelijk bezig aan de opdracht wat ervoor zorgde dat er een grote productiviteit was. \subsection{24-6-2017 (Zaterdag) } Een ieder is van huis uit bezig geweest met zijn eigen onderdelen t.b.v. Trello. Communicatieverkeer was er nauwelijks omdat iedereen nu goed gefocused kon zijn op zijn eigen werk. -- 2.49.1 From c2582c128a0502fc353ae66ea463c8e0d4af5e21 Mon Sep 17 00:00:00 2001 From: Marijn Jansen Date: Sun, 25 Jun 2017 15:01:52 +0200 Subject: [PATCH 15/67] Spilt UploadClass in two classes. Posts are now obtainable from firebase. --- .../myhyvesbookplus/tagram/MainActivity.java | 13 +- .../tagram/ProfileFragment.java | 6 +- .../tagram/controller/DownloadClass.java | 34 ++++- .../tagram/controller/PostUploader.java | 79 ++++++++++++ .../controller/ProfilePictureUploader.java | 87 +++++++++++++ .../tagram/controller/UploadClass.java | 119 ++---------------- .../myhyvesbookplus/tagram/model/UriPost.java | 17 +-- 7 files changed, 220 insertions(+), 135 deletions(-) create mode 100644 app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/controller/PostUploader.java create mode 100644 app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/controller/ProfilePictureUploader.java diff --git a/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/MainActivity.java b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/MainActivity.java index 076c727..b8d1e62 100644 --- a/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/MainActivity.java +++ b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/MainActivity.java @@ -3,7 +3,6 @@ package nl.myhyvesbookplus.tagram; import android.app.FragmentManager; import android.app.FragmentTransaction; import android.content.Intent; -import android.graphics.Bitmap; import android.net.Uri; import android.os.Bundle; import android.support.annotation.NonNull; @@ -15,10 +14,10 @@ import android.view.View; import com.google.firebase.auth.FirebaseAuth; -import nl.myhyvesbookplus.tagram.controller.UploadClass; -import nl.myhyvesbookplus.tagram.model.BitmapPost; +import nl.myhyvesbookplus.tagram.controller.DownloadClass; +import nl.myhyvesbookplus.tagram.controller.ProfilePictureUploader; -public class MainActivity extends AppCompatActivity implements CameraFragment.OnFragmentInteractionListener, ProfileFragment.OnFragmentInteractionListener, TimelineFragment.OnFragmentInteractionListener, UploadClass.ProfilePictureUpdatedListener { +public class MainActivity extends AppCompatActivity implements CameraFragment.OnFragmentInteractionListener, ProfileFragment.OnFragmentInteractionListener, TimelineFragment.OnFragmentInteractionListener, ProfilePictureUploader.ProfilePictureUpdatedListener { final static private String TAG = "MainScreen"; FirebaseAuth mAuth; @@ -102,10 +101,8 @@ public class MainActivity extends AppCompatActivity implements CameraFragment.On } public void testCreatePost(View view) { - UploadClass uploadClass = new UploadClass(this); - Bitmap bitmap = Bitmap.createBitmap(100, 100, Bitmap.Config.ALPHA_8); - BitmapPost bitmapPost = new BitmapPost(bitmap, "Dit is een Test!"); - uploadClass.uploadPicture(bitmapPost); + DownloadClass downloadClass = new DownloadClass(); + downloadClass.getPosts(); } @Override diff --git a/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/ProfileFragment.java b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/ProfileFragment.java index ae93f98..191a3ef 100644 --- a/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/ProfileFragment.java +++ b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/ProfileFragment.java @@ -27,7 +27,7 @@ import com.google.firebase.auth.FirebaseUser; import com.google.firebase.storage.FirebaseStorage; import com.google.firebase.storage.StorageReference; -import nl.myhyvesbookplus.tagram.controller.UploadClass; +import nl.myhyvesbookplus.tagram.controller.ProfilePictureUploader; import static android.app.Activity.RESULT_OK; @@ -192,8 +192,8 @@ public class ProfileFragment extends Fragment implements View.OnClickListener { Bundle extras = data.getExtras(); Bitmap imageBitmap = (Bitmap) extras.get("data"); progressDialog = ProgressDialog.show(getActivity(), getString(R.string.please_wait), "bezig met uploaden", false, false); - UploadClass uploadClass = new UploadClass(getActivity()); - uploadClass.uploadProfilePicture(imageBitmap); + ProfilePictureUploader profilePictureUploader = new ProfilePictureUploader(getActivity()); + profilePictureUploader.uploadProfilePicture(imageBitmap); } } diff --git a/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/controller/DownloadClass.java b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/controller/DownloadClass.java index 1ddaf17..28a97a6 100644 --- a/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/controller/DownloadClass.java +++ b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/controller/DownloadClass.java @@ -1,9 +1,14 @@ package nl.myhyvesbookplus.tagram.controller; +import android.util.Log; + +import com.google.firebase.database.DataSnapshot; +import com.google.firebase.database.DatabaseError; import com.google.firebase.database.DatabaseReference; import com.google.firebase.database.FirebaseDatabase; -import com.google.firebase.storage.FirebaseStorage; -import com.google.firebase.storage.StorageReference; +import com.google.firebase.database.ValueEventListener; + +import java.util.ArrayList; import nl.myhyvesbookplus.tagram.model.UriPost; @@ -13,16 +18,37 @@ import nl.myhyvesbookplus.tagram.model.UriPost; public class DownloadClass { private static final String TAG = "DownloadClass"; - private StorageReference mStorageRef; + // private StorageReference mStorageRef; private DatabaseReference mDataRef; public DownloadClass() { - mStorageRef = FirebaseStorage.getInstance().getReference(); +// mStorageRef = FirebaseStorage.getInstance().getReference(); mDataRef = FirebaseDatabase.getInstance().getReference(); } public UriPost[] getPosts() { UriPost[] posts = new UriPost[10]; + getPostsFromServer().toArray(posts); + return posts; } + + private ArrayList getPostsFromServer() { + Log.d(TAG, "getPostsFromServer: Begin of function"); + final ArrayList list = new ArrayList<>(); + mDataRef.child("posts").addListenerForSingleValueEvent(new ValueEventListener() { + @Override + public void onDataChange(DataSnapshot dataSnapshot) { + for (DataSnapshot data : dataSnapshot.getChildren()) { + list.add(data.getValue(UriPost.class)); + } + } + + @Override + public void onCancelled(DatabaseError databaseError) { + Log.d(TAG, "onCancelled: " + databaseError.getDetails() + databaseError.getMessage()); + } + }); + return list; + } } diff --git a/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/controller/PostUploader.java b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/controller/PostUploader.java new file mode 100644 index 0000000..c0e00d6 --- /dev/null +++ b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/controller/PostUploader.java @@ -0,0 +1,79 @@ +package nl.myhyvesbookplus.tagram.controller; + +import android.content.Context; +import android.net.Uri; +import android.support.annotation.NonNull; +import android.util.Log; + +import com.google.android.gms.tasks.OnCompleteListener; +import com.google.android.gms.tasks.OnFailureListener; +import com.google.android.gms.tasks.OnSuccessListener; +import com.google.android.gms.tasks.Task; +import com.google.firebase.database.DatabaseReference; +import com.google.firebase.storage.UploadTask; + +import nl.myhyvesbookplus.tagram.model.BitmapPost; +import nl.myhyvesbookplus.tagram.model.UriPost; + +import static java.lang.System.currentTimeMillis; + +/** + * Created by marijnjansen on 25/06/2017. + */ + +public class PostUploader extends UploadClass { + + final private static String TAG = "PostUploader"; + + private PostUploadListener mListener; + + public PostUploader(Context context) { + super(); + if (context instanceof PostUploadListener) { + mListener = (PostUploadListener) context; + } else { + throw new RuntimeException(context.toString() + + " must implement PostUploadListener"); + } + } + + public void uploadPicture(final BitmapPost post) { + final String name = getUserUid() + currentTimeMillis(); + + UploadTask uploadTask = mStorageRef.child("posts").child(name + ".jpg").putBytes(bitmapToBytes(post.getBitmap())); + uploadTask.addOnFailureListener(new OnFailureListener() { + @Override + public void onFailure(@NonNull Exception e) { + Log.d(TAG, "onFailure: Upload Failed"); + } + }) + .addOnSuccessListener(new OnSuccessListener() { + @Override + public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) { + // Handle successful uploads on complete + Log.d(TAG, "onSuccess: Upload Success!"); + Uri downloadUrl = taskSnapshot.getMetadata().getDownloadUrl(); + putPostInDatabase(post.getUriPost(downloadUrl), name); + } + }); + } + + private void putPostInDatabase(UriPost post, String name) { + DatabaseReference ref = mDataRef.child("posts").child(name); + ref.setValue(post) + .addOnCompleteListener(new OnCompleteListener() { + @Override + public void onComplete(@NonNull Task task) { + if (task.isSuccessful()) { + Log.d(TAG, "onComplete: Added post to database"); + } else { + Log.d(TAG, "onComplete: " + task.getException().getLocalizedMessage()); + } + } + }); + } + + public interface PostUploadListener { + void PostUploadComplete(Boolean success); + } +} diff --git a/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/controller/ProfilePictureUploader.java b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/controller/ProfilePictureUploader.java new file mode 100644 index 0000000..0668936 --- /dev/null +++ b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/controller/ProfilePictureUploader.java @@ -0,0 +1,87 @@ +package nl.myhyvesbookplus.tagram.controller; + +import android.content.Context; +import android.graphics.Bitmap; +import android.net.Uri; +import android.support.annotation.NonNull; +import android.util.Log; + +import com.google.android.gms.tasks.OnCompleteListener; +import com.google.android.gms.tasks.OnSuccessListener; +import com.google.android.gms.tasks.Task; +import com.google.firebase.auth.UserProfileChangeRequest; +import com.google.firebase.storage.FirebaseStorage; +import com.google.firebase.storage.StorageReference; +import com.google.firebase.storage.UploadTask; + +import static java.lang.System.currentTimeMillis; + +/** + * Created by marijnjansen on 25/06/2017. + */ + +public class ProfilePictureUploader extends UploadClass { + + final static private String TAG = "PPUploader"; + + private Uri oldPicture; + private ProfilePictureUpdatedListener mListener; + + public ProfilePictureUploader(Context context) { + super(); + + if (context instanceof ProfilePictureUpdatedListener) { + mListener = (ProfilePictureUpdatedListener) context; + } else { + throw new RuntimeException(context.toString() + + " must implement ProfilePictureUpdatedListener"); + } + } + + public void uploadProfilePicture(Bitmap picture) { + byte[] uploadPhoto = bitmapToBytes(picture); + oldPicture = mUser.getPhotoUrl(); + UploadTask photoUpload = mStorageRef.child("profile").child(getUserUid() + "_" + currentTimeMillis()).putBytes(uploadPhoto); + photoUpload.addOnSuccessListener(new OnSuccessListener() { + @Override + public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) { + Uri downloadUrl = taskSnapshot.getDownloadUrl(); + updateProfilePictureInUser(downloadUrl); + } + }); + } + + private void updateProfilePictureInUser(Uri url) { + UserProfileChangeRequest request = new UserProfileChangeRequest.Builder() + .setPhotoUri(url) + .build(); + mUser.updateProfile(request) + .addOnCompleteListener(new OnCompleteListener() { + @Override + public void onComplete(@NonNull Task task) { + Log.d(TAG, "onComplete: Updated profile picture"); + mListener.ProfilePictureUpdated(true); + removeOldPicture(); + } + }); + } + + private void removeOldPicture() { + StorageReference ref = FirebaseStorage.getInstance().getReferenceFromUrl(oldPicture.toString()); + ref.delete() + .addOnCompleteListener(new OnCompleteListener() { + @Override + public void onComplete(@NonNull Task task) { + if (task.isSuccessful()) { + Log.d(TAG, "onComplete: Delete successfull"); + } else { + Log.d(TAG, "onComplete: " + task.getException().getLocalizedMessage()); + } + } + }); + } + + public interface ProfilePictureUpdatedListener { + void ProfilePictureUpdated(Boolean success); + } +} diff --git a/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/controller/UploadClass.java b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/controller/UploadClass.java index c3e7c8b..8d838f8 100644 --- a/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/controller/UploadClass.java +++ b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/controller/UploadClass.java @@ -1,149 +1,44 @@ package nl.myhyvesbookplus.tagram.controller; -import android.content.Context; import android.graphics.Bitmap; -import android.net.Uri; -import android.support.annotation.NonNull; -import android.util.Log; -import com.google.android.gms.tasks.OnCompleteListener; -import com.google.android.gms.tasks.OnFailureListener; -import com.google.android.gms.tasks.OnSuccessListener; -import com.google.android.gms.tasks.Task; import com.google.firebase.auth.FirebaseAuth; import com.google.firebase.auth.FirebaseUser; -import com.google.firebase.auth.UserProfileChangeRequest; import com.google.firebase.database.DatabaseReference; import com.google.firebase.database.FirebaseDatabase; import com.google.firebase.storage.FirebaseStorage; import com.google.firebase.storage.StorageReference; -import com.google.firebase.storage.UploadTask; import java.io.ByteArrayOutputStream; -import nl.myhyvesbookplus.tagram.model.BitmapPost; -import nl.myhyvesbookplus.tagram.model.UriPost; - -import static java.lang.System.currentTimeMillis; - /** * Class that does all the photo uploading things. */ -public class UploadClass { +public abstract class UploadClass { private static final String TAG = "UploadClass"; - private StorageReference mStorageRef; - private DatabaseReference mDataRef; - private ProfilePictureUpdatedListener mListener; - private FirebaseUser mUser; - private Uri oldPicture; + StorageReference mStorageRef; + DatabaseReference mDataRef; + FirebaseUser mUser; - public UploadClass(Context context) { + UploadClass() { mStorageRef = FirebaseStorage.getInstance().getReference(); mDataRef = FirebaseDatabase.getInstance().getReference(); - mListener = (ProfilePictureUpdatedListener) context; mUser = FirebaseAuth.getInstance().getCurrentUser(); } /// Helpers /// - private byte[] bitmapToBytes(Bitmap bitmap) { + byte[] bitmapToBytes(Bitmap bitmap) { ByteArrayOutputStream baos = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos); return baos.toByteArray(); } - private String getUserUid() { + String getUserUid() { if (mUser != null) { return mUser.getUid(); } return ""; } - - /// Post Uploads /// - - public void uploadPicture(final BitmapPost post) { - final String name = getUserUid() + currentTimeMillis(); - - UploadTask uploadTask = mStorageRef.child("posts").child(name + ".jpg").putBytes(bitmapToBytes(post.getBitmap())); - uploadTask.addOnFailureListener(new OnFailureListener() { - @Override - public void onFailure(@NonNull Exception e) { - Log.d(TAG, "onFailure: Upload Failed"); - } - }) - .addOnSuccessListener(new OnSuccessListener() { - @Override - public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) { - // Handle successful uploads on complete - Log.d(TAG, "onSuccess: Upload Success!"); - Uri downloadUrl = taskSnapshot.getMetadata().getDownloadUrl(); - putPostInDatabase(post.getUriPost(downloadUrl), name); - } - }); - } - - private void putPostInDatabase(UriPost post, String name) { - DatabaseReference ref = mDataRef.child("posts").child(name); - ref.setValue(post) - .addOnCompleteListener(new OnCompleteListener() { - @Override - public void onComplete(@NonNull Task task) { - if (task.isSuccessful()) { - Log.d(TAG, "onComplete: Added post to database"); - } else { - Log.d(TAG, "onComplete: " + task.getException().getLocalizedMessage()); - } - } - }); - } - - /// Profile picture /// - - public void uploadProfilePicture(Bitmap picture) { - byte[] uploadPhoto = bitmapToBytes(picture); - oldPicture = mUser.getPhotoUrl(); - UploadTask photoUpload = mStorageRef.child("profile").child(getUserUid() + "_" + currentTimeMillis()).putBytes(uploadPhoto); - photoUpload.addOnSuccessListener(new OnSuccessListener() { - @Override - public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) { - Uri downloadUrl = taskSnapshot.getDownloadUrl(); - updateProfilePictureInUser(downloadUrl); - } - }); - } - - private void updateProfilePictureInUser(Uri url) { - UserProfileChangeRequest request = new UserProfileChangeRequest.Builder() - .setPhotoUri(url) - .build(); - mUser.updateProfile(request) - .addOnCompleteListener(new OnCompleteListener() { - @Override - public void onComplete(@NonNull Task task) { - Log.d(TAG, "onComplete: Updated profile picture"); - mListener.ProfilePictureUpdated(true); - removeOldPicture(); - } - }); - } - - private void removeOldPicture() { - StorageReference ref = FirebaseStorage.getInstance().getReferenceFromUrl(oldPicture.toString()); - ref.delete() - .addOnCompleteListener(new OnCompleteListener() { - @Override - public void onComplete(@NonNull Task task) { - if (task.isSuccessful()) { - Log.d(TAG, "onComplete: Delete successfull"); - } else { - Log.d(TAG, "onComplete: " + task.getException().getLocalizedMessage()); - } - } - }); - } - - public interface ProfilePictureUpdatedListener { - void ProfilePictureUpdated(Boolean success); - } } diff --git a/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/model/UriPost.java b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/model/UriPost.java index 2b80ad6..25358be 100644 --- a/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/model/UriPost.java +++ b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/model/UriPost.java @@ -8,28 +8,29 @@ import java.util.Date; * UriPost is a Class for a Post with a Uri as an image. */ public class UriPost extends Post { - private String photo; + private String uri; public UriPost() { // Default constructor required for calls to DataSnapshot.getValue(UriPost.class) } - public UriPost(Uri photo, String comment, Date date, int nietSlechts, String poster) { + public UriPost(Uri uri, String comment, Date date, int nietSlechts, String poster) { super(comment, date, nietSlechts, poster); - this.photo = photo.toString(); + this.uri = uri.toString(); } - public UriPost(String photo, String comment) { + public UriPost(String uri, String comment) { super(comment); - this.photo = photo; + this.uri = uri; } public String getUri() { - return photo; + return uri; } - public void setPhoto(String photo) { - this.photo = photo; + + public void setUri(String uri) { + this.uri = uri; } } \ No newline at end of file -- 2.49.1 From a9ad1308667509e532c3ed7339f6de9af509d72e Mon Sep 17 00:00:00 2001 From: Marijn Jansen Date: Sun, 25 Jun 2017 15:06:13 +0200 Subject: [PATCH 16/67] Added failure messages. --- .../nl/myhyvesbookplus/tagram/controller/PostUploader.java | 4 ++++ .../tagram/controller/ProfilePictureUploader.java | 7 +++++++ 2 files changed, 11 insertions(+) diff --git a/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/controller/PostUploader.java b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/controller/PostUploader.java index c0e00d6..7076169 100644 --- a/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/controller/PostUploader.java +++ b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/controller/PostUploader.java @@ -45,6 +45,7 @@ public class PostUploader extends UploadClass { @Override public void onFailure(@NonNull Exception e) { Log.d(TAG, "onFailure: Upload Failed"); + mListener.PostUploadComplete(false); } }) .addOnSuccessListener(new OnSuccessListener() { @@ -66,8 +67,11 @@ public class PostUploader extends UploadClass { public void onComplete(@NonNull Task task) { if (task.isSuccessful()) { Log.d(TAG, "onComplete: Added post to database"); + mListener.PostUploadComplete(true); } else { Log.d(TAG, "onComplete: " + task.getException().getLocalizedMessage()); + mListener.PostUploadComplete(false); + } } }); diff --git a/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/controller/ProfilePictureUploader.java b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/controller/ProfilePictureUploader.java index 0668936..1137d5d 100644 --- a/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/controller/ProfilePictureUploader.java +++ b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/controller/ProfilePictureUploader.java @@ -7,6 +7,7 @@ import android.support.annotation.NonNull; import android.util.Log; import com.google.android.gms.tasks.OnCompleteListener; +import com.google.android.gms.tasks.OnFailureListener; import com.google.android.gms.tasks.OnSuccessListener; import com.google.android.gms.tasks.Task; import com.google.firebase.auth.UserProfileChangeRequest; @@ -48,6 +49,12 @@ public class ProfilePictureUploader extends UploadClass { Uri downloadUrl = taskSnapshot.getDownloadUrl(); updateProfilePictureInUser(downloadUrl); } + }) + .addOnFailureListener(new OnFailureListener() { + @Override + public void onFailure(@NonNull Exception e) { + mListener.ProfilePictureUpdated(false); + } }); } -- 2.49.1 From d90a878a580c503792c6348539ad95af46f6f575 Mon Sep 17 00:00:00 2001 From: Felix Atsma Date: Mon, 26 Jun 2017 10:43:59 +0200 Subject: [PATCH 17/67] Camera filter switching and uploading --- .../tagram/CameraFragment.java | 205 +++++++++++++----- .../myhyvesbookplus/tagram/CameraPreview.java | 7 +- .../tagram/PicturePreview.java | 134 ++++++++++++ .../myhyvesbookplus/tagram/UploadClass.java | 4 +- .../res/drawable/ic_arrow_back_black_24dp.png | Bin 0 -> 199 bytes .../drawable/ic_arrow_forward_black_24dp.png | Bin 0 -> 222 bytes .../src/main/res/layout/fragment_camera.xml | 105 +++++++-- .../app/src/main/res/values/colors.xml | 3 +- .../app/src/main/res/values/ids.xml | 5 + .../app/src/main/res/values/strings.xml | 3 + 10 files changed, 390 insertions(+), 76 deletions(-) create mode 100644 app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/PicturePreview.java create mode 100644 app/MyHyvesBookPlusStagram/app/src/main/res/drawable/ic_arrow_back_black_24dp.png create mode 100644 app/MyHyvesBookPlusStagram/app/src/main/res/drawable/ic_arrow_forward_black_24dp.png create mode 100644 app/MyHyvesBookPlusStagram/app/src/main/res/values/ids.xml diff --git a/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/CameraFragment.java b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/CameraFragment.java index b95c281..8ff1e89 100644 --- a/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/CameraFragment.java +++ b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/CameraFragment.java @@ -1,25 +1,20 @@ package nl.myhyvesbookplus.tagram; import android.content.Context; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.graphics.Matrix; import android.hardware.Camera; import android.hardware.Camera.PictureCallback; import android.net.Uri; import android.os.Bundle; import android.app.Fragment; -import android.support.v7.app.AppCompatActivity; +import android.support.design.widget.FloatingActionButton; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import android.widget.ImageButton; import android.widget.RelativeLayout; -import android.widget.RelativeLayout.LayoutParams; -import android.widget.Toast; - -import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileOutputStream; -import java.io.IOException; /** * A simple {@link Fragment} subclass. @@ -31,6 +26,7 @@ import java.io.IOException; */ public class CameraFragment extends Fragment { // TODO: Rename parameter arguments, choose names that match + private static final String TAG = "CameraFragment"; // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER private static final String ARG_PARAM1 = "param1"; private static final String ARG_PARAM2 = "param2"; @@ -43,6 +39,9 @@ public class CameraFragment extends Fragment { private Camera mCamera; private CameraPreview mPreview; + private byte[] mPhotoRaw; + private Bitmap mPhoto; + private int facing = Camera.CameraInfo.CAMERA_FACING_BACK; public CameraFragment() { // Required empty public constructor @@ -73,9 +72,6 @@ public class CameraFragment extends Fragment { mParam1 = getArguments().getString(ARG_PARAM1); mParam2 = getArguments().getString(ARG_PARAM2); } - - // Hide top bar - // ((AppCompatActivity) getActivity()).getSupportActionBar().hide(); } @Override @@ -84,57 +80,130 @@ public class CameraFragment extends Fragment { // Inflate the layout for this fragment final View view = inflater.inflate(R.layout.fragment_camera, container, false); + mCamera = getCameraInstance(facing); + Camera.Parameters params = mCamera.getParameters(); + params.setRotation(0); + mCamera.setParameters(params); + mPreview = new CameraPreview(getActivity().getBaseContext(), mCamera); - final RelativeLayout preview = (RelativeLayout) view.findViewById(R.id.camera_preview); + final RelativeLayout pictureButtons = (RelativeLayout) view.findViewById(R.id.picture_taken_buttons); + final RelativeLayout filterButtons = (RelativeLayout) view.findViewById(R.id.filter_buttons); + final RelativeLayout mCameraLayout = (RelativeLayout) view.findViewById(R.id.camera_preview); +// final RelativeLayout mImageTaken = (RelativeLayout) view.findViewById(R.id.picture_view); - preview.addView(mPreview); + mCameraLayout.addView(mPreview); - // Draw picture and switch button over preview + // Draw buttons over preview view.findViewById(R.id.picture_button).bringToFront(); view.findViewById(R.id.switch_camera_button).bringToFront(); + pictureButtons.bringToFront(); + filterButtons.bringToFront(); - ((ImageButton)view.findViewById(R.id.picture_button)).setOnClickListener(new View.OnClickListener() { + (view.findViewById(R.id.switch_camera_button)).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - Toast.makeText(getActivity(), "Snap!", Toast.LENGTH_SHORT).show(); - /* - PictureCallback mPicture = new PictureCallback() { + switchFacing(); - @Override - public void onPictureTaken(byte[] data, Camera camera) { - Log.v("picture", "Getting output media file"); - File pictureFile = getOutputMediaFile(); - if (pictureFile == null) { - Log.v("picture", "Error creating output file"); - return; - } - try { - FileOutputStream fos = new FileOutputStream(pictureFile); - fos.write(data); - fos.close(); - } catch (IOException e) { - Log.v("picture", e.getMessage()); - } - } - }; - */ - } - }); - - ((ImageButton)view.findViewById(R.id.switch_camera_button)).setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - CameraPreview.switchFacing(); - - preview.removeView(mPreview); + mCameraLayout.removeView(mPreview); + mCamera = getCameraInstance(facing); mPreview = new CameraPreview(getActivity().getBaseContext(), mCamera); - preview.addView(mPreview); + mCameraLayout.addView(mPreview); view.findViewById(R.id.picture_button).bringToFront(); view.findViewById(R.id.switch_camera_button).bringToFront(); } }); + (view.findViewById(R.id.picture_button)).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + mCamera.takePicture(null, null, new PictureCallback() { + @Override + public void onPictureTaken(byte[] data, Camera camera) { + Bitmap bmp = rotate(BitmapFactory.decodeByteArray(data, 0, data.length, null), 90); + mPhoto = bmp; + + PicturePreview mPicPreview = new PicturePreview(getActivity().getBaseContext(), mPhoto); + mPicPreview.setId(R.id.pic_preview); + Log.d(TAG, "onPictureTaken: PICTURE"); + + mCameraLayout.addView(mPicPreview); + + filterButtons.setVisibility(View.VISIBLE); + filterButtons.bringToFront(); + +// mPicPreview.invalidate(); + switchButtons(view); + } + }); + } + }); + + (view.findViewById(R.id.upload_button)).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + UploadClass upload = new UploadClass(); + upload.uploadPicture(mPhoto); + + mPhoto.recycle(); + mPhoto = null; + + filterButtons.setVisibility(View.GONE); + switchButtons(view); + + mCameraLayout.removeView(mPreview); + + mCamera = getCameraInstance(facing); + Camera.Parameters params = mCamera.getParameters(); + params.setRotation(0); + mCamera.setParameters(params); + + mPreview = new CameraPreview(getActivity().getBaseContext(), mCamera); + mCameraLayout.addView(mPreview); + + view.findViewById(R.id.picture_button).bringToFront(); + view.findViewById(R.id.switch_camera_button).bringToFront(); + + mCameraLayout.removeView(view.findViewById(R.id.pic_preview)); + } + }); + + (view.findViewById(R.id.filter_left)).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + mCameraLayout.removeView(view.findViewById(R.id.pic_preview)); + + PicturePreview.filterPrev(); + + PicturePreview mPicPreview = new PicturePreview(getActivity().getBaseContext(), mPhoto); + mPicPreview.setId(R.id.pic_preview); + + mCameraLayout.addView(mPicPreview); + + view.findViewById(R.id.picture_taken_buttons).bringToFront(); + filterButtons.setVisibility(View.VISIBLE); + filterButtons.bringToFront(); + } + }); + + (view.findViewById(R.id.filter_right)).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + mCameraLayout.removeView(view.findViewById(R.id.pic_preview)); + + PicturePreview.filterNext(); + + PicturePreview mPicPreview = new PicturePreview(getActivity().getBaseContext(), mPhoto); + mPicPreview.setId(R.id.pic_preview); + + mCameraLayout.addView(mPicPreview); + + view.findViewById(R.id.picture_taken_buttons).bringToFront(); + filterButtons.setVisibility(View.VISIBLE); + filterButtons.bringToFront(); + } + }); + return view; } @@ -162,6 +231,16 @@ public class CameraFragment extends Fragment { mListener = null; } + public static Bitmap rotate(Bitmap bitmap, int degree) { + int w = bitmap.getWidth(); + int h = bitmap.getHeight(); + + Matrix mtx = new Matrix(); + mtx.postRotate(degree); + + return Bitmap.createBitmap(bitmap, 0, 0, w, h, mtx, true); + } + public static Camera getCameraInstance(int facing) { Camera c = null; try { @@ -172,6 +251,34 @@ public class CameraFragment extends Fragment { return c; } + public void switchFacing() { + if (facing == Camera.CameraInfo.CAMERA_FACING_FRONT) + facing = Camera.CameraInfo.CAMERA_FACING_BACK; + else + facing = Camera.CameraInfo.CAMERA_FACING_FRONT; + } + + public void switchButtons(View view) { + RelativeLayout pictureButtons = (RelativeLayout) view.findViewById(R.id.picture_taken_buttons); + FloatingActionButton upload = (FloatingActionButton) view.findViewById(R.id.upload_button); + FloatingActionButton save = (FloatingActionButton) view.findViewById(R.id.save_button); + + if (((Integer)upload.getVisibility()).equals(View.VISIBLE)) { + upload.hide(); + save.hide(); + + view.findViewById(R.id.picture_button).setVisibility(View.VISIBLE); + view.findViewById(R.id.switch_camera_button).setVisibility(View.VISIBLE); + } else { + pictureButtons.bringToFront(); + upload.show(); + save.show(); + + view.findViewById(R.id.picture_button).setVisibility(View.GONE); + view.findViewById(R.id.switch_camera_button).setVisibility(View.GONE); + } + } + @Override public void onPause() { super.onPause(); @@ -182,10 +289,6 @@ public class CameraFragment extends Fragment { super.onResume(); } - public void setCamera(Camera c) { - this.mCamera = c; - } - /** * This interface must be implemented by activities that contain this * fragment to allow an interaction in this fragment to be communicated diff --git a/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/CameraPreview.java b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/CameraPreview.java index fb4a199..84fbe45 100644 --- a/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/CameraPreview.java +++ b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/CameraPreview.java @@ -8,13 +8,14 @@ import android.view.SurfaceView; import java.io.IOException; public class CameraPreview extends SurfaceView implements SurfaceHolder.Callback { + private static String TAG = "CameraPreview"; private SurfaceHolder mHolder; private Camera mCamera; - private static int facing = 0; + private static int facing = Camera.CameraInfo.CAMERA_FACING_BACK; public CameraPreview(Context context, Camera camera) { super(context); - mCamera = camera.open(facing); + mCamera = camera; mCamera.setDisplayOrientation(90); mHolder = getHolder(); @@ -24,6 +25,7 @@ public class CameraPreview extends SurfaceView implements SurfaceHolder.Callback @Override public void surfaceCreated(SurfaceHolder mHolder) { try { + Log.d(TAG, "surfaceCreated: CREATED"); mCamera.setPreviewDisplay(mHolder); mCamera.startPreview(); } catch (IOException e) { @@ -60,6 +62,7 @@ public class CameraPreview extends SurfaceView implements SurfaceHolder.Callback @Override public void surfaceDestroyed(SurfaceHolder holder) { + Log.d(TAG, "surfaceDestroyed: DESTROYED"); mCamera.stopPreview(); mCamera.release(); } diff --git a/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/PicturePreview.java b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/PicturePreview.java new file mode 100644 index 0000000..4fe18a5 --- /dev/null +++ b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/PicturePreview.java @@ -0,0 +1,134 @@ +package nl.myhyvesbookplus.tagram; + +import android.content.Context; +import android.graphics.Bitmap; +import android.graphics.Canvas; +import android.graphics.ColorFilter; +import android.graphics.ColorMatrix; +import android.graphics.ColorMatrixColorFilter; +import android.graphics.Paint; +import android.util.Log; +import android.view.SurfaceHolder; +import android.view.SurfaceView; + +/** + * Created by felix on 23/06/2017. + */ + +public class PicturePreview extends SurfaceView implements SurfaceHolder.Callback { + private static final int FILTER_NONE = 0; + private static final int FILTER_SEPIA = 1; + private static final int FILTER_BW = 2; + + private static int currentFilter = FILTER_NONE; + + Bitmap picture; + Bitmap filterPicture; + + public PicturePreview(Context context, Bitmap bmp) { + super(context); + picture = Bitmap.createScaledBitmap(bmp, 1920, 1440, false); + setWillNotDraw(false); + } + + @Override + protected void onDraw(Canvas canvas) { + super.onDraw(canvas); + ColorMatrix cm = new ColorMatrix(); + Paint paint = new Paint(); + ColorMatrixColorFilter filter; + + switch (currentFilter) { + case FILTER_NONE: + canvas.drawBitmap(picture, 0, 0, null); + filterPicture = picture; + break; + case FILTER_SEPIA: + canvas.drawBitmap(toSepia(picture), 0, 0, null); + filterPicture = toSepia(picture); + break; + case FILTER_BW: + cm.setSaturation(0); + filter = new ColorMatrixColorFilter(cm); + paint.setColorFilter(filter); + canvas.drawBitmap(picture, 0, 0, paint); + break; + } + } + + public static void filterPrev() { + switch (currentFilter) { + case FILTER_NONE: + currentFilter = FILTER_BW; + break; + case FILTER_SEPIA: + currentFilter = FILTER_NONE; + break; + case FILTER_BW: + currentFilter = FILTER_SEPIA; + break; + } + } + + public static void filterNext() { + switch (currentFilter) { + case FILTER_NONE: + currentFilter = FILTER_SEPIA; + break; + case FILTER_SEPIA: + currentFilter = FILTER_BW; + break; + case FILTER_BW: + currentFilter = FILTER_NONE; + break; + } + } + + public Bitmap toSepia(Bitmap color) { + int red, green, blue, pixel, gry; + int height = color.getHeight(); + int width = color.getWidth(); + int depth = 20; + + Bitmap sepia = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); + + int[] pixels = new int[width * height]; + color.getPixels(pixels, 0, width, 0, 0, width, height); + for (int i = 0; i < pixels.length; i++) { + pixel = pixels[i]; + + red = (pixel >> 16) & 0xFF; + green = (pixel >> 8) & 0xFF; + blue = pixel & 0xFF; + + red = green = blue = (red + green + blue) / 3; + + red += (depth * 2); + green += depth; + + if (red > 255) + red = 255; + if (green > 255) + green = 255; + pixels[i] = (0xFF << 24) | (red << 16) | (green << 8) | blue; + } + sepia.setPixels(pixels, 0, width, 0, 0, width, height); + return sepia; + } + + public Bitmap getPicture() { + return filterPicture; + } + + @Override + public void surfaceCreated(SurfaceHolder holder) { + } + + @Override + public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { + } + + @Override + public void surfaceDestroyed(SurfaceHolder holder) { + } +} diff --git a/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/UploadClass.java b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/UploadClass.java index c3acf21..daf20bb 100644 --- a/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/UploadClass.java +++ b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/UploadClass.java @@ -13,6 +13,7 @@ import com.google.firebase.storage.StorageReference; import com.google.firebase.storage.UploadTask; import java.io.ByteArrayOutputStream; +import java.util.Random; /** * Created by marijnjansen on 20/06/2017. @@ -24,7 +25,8 @@ public class UploadClass { public UploadClass() { - mStorageRef = FirebaseStorage.getInstance().getReference().child("images"); + String name = Integer.toString(new Random().nextInt(10000)); + mStorageRef = FirebaseStorage.getInstance().getReference().child("images/" + name); } private byte[] bitmapToBytes(Bitmap bitmap) { diff --git a/app/MyHyvesBookPlusStagram/app/src/main/res/drawable/ic_arrow_back_black_24dp.png b/app/MyHyvesBookPlusStagram/app/src/main/res/drawable/ic_arrow_back_black_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..7726760865bee01ff1f2b06fb58cbab901d0b6e4 GIT binary patch literal 199 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD0wg^q?%xcg`aE46Ln;{G-f|aZHWWCPz|7%k zY`FdD)1ukGm;I}p-`23jG*#*zNJB%RT2%d9$(z46axRVM-1uv%z>4_Go4>CAw!nYB zUG1+gFE1~LGVJ;P`upzs=XE{)J<|`Cnz{Jv2Y5hc)%DX+0(`1=f~S_ j`;+@u4rsxF`x_XKKUCeUxL{cZkjvod>gTe~DWM4fCOJ*w literal 0 HcmV?d00001 diff --git a/app/MyHyvesBookPlusStagram/app/src/main/res/drawable/ic_arrow_forward_black_24dp.png b/app/MyHyvesBookPlusStagram/app/src/main/res/drawable/ic_arrow_forward_black_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..8b5a68183db0af5ae96767121f57a6a5f4290587 GIT binary patch literal 222 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD0wg^q?%xcgmU_B4hEy=Vz2(SvFhHdB;daKH zNwqO=cz5sOQOQqHa4mlH`yJc4`6h3dFf%Yb@P1Wzuy3*ZbG12c_Un_L1L@~Kj znKyHTq&TOLipK;6$0imSqouWK>FO^H{i-EZPRrFeK5$IE{(?Wpc>mF7v-AI5{qucB z{=T2j?*A(SlJC!$->>-`zQKR4edwz{D}$c - + android:layout_height="match_parent" > + + + + + + + android:id="@+id/filter_buttons" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:visibility="gone" + android:layout_marginBottom="60dp" + android:layout_centerVertical="true"> + + + + + + + + android:layout_alignParentLeft="true" + android:scaleType="center" + app:fabSize="normal" + android:src="@android:drawable/ic_menu_upload"/> - - + android:layout_alignParentBottom="true" + android:scaleType="center" + app:fabSize="normal" + android:src="@android:drawable/ic_menu_save"/> - + diff --git a/app/MyHyvesBookPlusStagram/app/src/main/res/values/colors.xml b/app/MyHyvesBookPlusStagram/app/src/main/res/values/colors.xml index a27903e..9709ac7 100644 --- a/app/MyHyvesBookPlusStagram/app/src/main/res/values/colors.xml +++ b/app/MyHyvesBookPlusStagram/app/src/main/res/values/colors.xml @@ -2,5 +2,6 @@ #fbbf2d #ffa70f - #4CAF50 + #4bAfe5 + diff --git a/app/MyHyvesBookPlusStagram/app/src/main/res/values/ids.xml b/app/MyHyvesBookPlusStagram/app/src/main/res/values/ids.xml new file mode 100644 index 0000000..0754da4 --- /dev/null +++ b/app/MyHyvesBookPlusStagram/app/src/main/res/values/ids.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/MyHyvesBookPlusStagram/app/src/main/res/values/strings.xml b/app/MyHyvesBookPlusStagram/app/src/main/res/values/strings.xml index a5f3ee1..4b3b06d 100644 --- a/app/MyHyvesBookPlusStagram/app/src/main/res/values/strings.xml +++ b/app/MyHyvesBookPlusStagram/app/src/main/res/values/strings.xml @@ -24,4 +24,7 @@ profile picture Change Password Please Wait + + Upload + Save -- 2.49.1 From 247a443aba3ef8feb9707a6b12c646866f6aed11 Mon Sep 17 00:00:00 2001 From: Marijn Jansen Date: Mon, 26 Jun 2017 15:20:18 +0200 Subject: [PATCH 18/67] Timeline things working right now Woohoo! --- .../myhyvesbookplus/tagram/LoginActivity.java | 2 +- .../myhyvesbookplus/tagram/MainActivity.java | 22 ++- .../tagram/TimeLineAdapter.java | 75 ++++++++ .../tagram/TimelineFragment.java | 86 ++------- .../tagram/controller/DownloadClass.java | 38 ++-- .../tagram/controller/PostUploader.java | 2 +- .../src/main/res/layout/activity_login.xml | 182 +++++++++--------- .../src/main/res/layout/fragment_timeline.xml | 19 +- .../main/res/layout/list_item_timeline.xml | 37 ++++ .../app/src/main/res/values-nl/strings.xml | 1 + .../app/src/main/res/values/strings.xml | 1 + 11 files changed, 279 insertions(+), 186 deletions(-) create mode 100644 app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/TimeLineAdapter.java create mode 100644 app/MyHyvesBookPlusStagram/app/src/main/res/layout/list_item_timeline.xml diff --git a/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/LoginActivity.java b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/LoginActivity.java index 992e3e3..46befe8 100644 --- a/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/LoginActivity.java +++ b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/LoginActivity.java @@ -118,7 +118,7 @@ public class LoginActivity extends AppCompatActivity implements View.OnClickList String passwordConfirmString = passwordConfirmField.getText().toString(); if (!emailString.isEmpty() && !usernameString.isEmpty() - && passwordString.isEmpty() && passwordConfirmString.isEmpty()) { + && !passwordString.isEmpty() && !passwordConfirmString.isEmpty()) { if (passwordField.getText().toString().equals(passwordConfirmField.getText().toString())) { registerUser(emailField.getText().toString(), passwordField.getText().toString()); } else { diff --git a/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/MainActivity.java b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/MainActivity.java index b8d1e62..bae9414 100644 --- a/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/MainActivity.java +++ b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/MainActivity.java @@ -17,7 +17,11 @@ import com.google.firebase.auth.FirebaseAuth; import nl.myhyvesbookplus.tagram.controller.DownloadClass; import nl.myhyvesbookplus.tagram.controller.ProfilePictureUploader; -public class MainActivity extends AppCompatActivity implements CameraFragment.OnFragmentInteractionListener, ProfileFragment.OnFragmentInteractionListener, TimelineFragment.OnFragmentInteractionListener, ProfilePictureUploader.ProfilePictureUpdatedListener { +public class MainActivity extends AppCompatActivity implements + CameraFragment.OnFragmentInteractionListener, + ProfileFragment.OnFragmentInteractionListener, + ProfilePictureUploader.ProfilePictureUpdatedListener, + DownloadClass.PostDownloadListener { final static private String TAG = "MainScreen"; FirebaseAuth mAuth; @@ -100,10 +104,10 @@ public class MainActivity extends AppCompatActivity implements CameraFragment.On this.finish(); } - public void testCreatePost(View view) { - DownloadClass downloadClass = new DownloadClass(); - downloadClass.getPosts(); - } +// public void testCreatePost(View view) { +// DownloadClass downloadClass = new DownloadClass(); +// downloadClass.getPosts(); +// } @Override public void ProfilePictureUpdated(Boolean success) { @@ -118,4 +122,12 @@ public class MainActivity extends AppCompatActivity implements CameraFragment.On Log.d(TAG, "ProfilePictureUpdated: Done reloading fragment"); } + @Override + public void PostDownloaded() { + FragmentManager fragmentManager = getFragmentManager(); + fragmentManager.findFragmentById(R.id.content); + TimelineFragment frag = (TimelineFragment) fragmentManager.findFragmentById(R.id.content); + frag.startList(); + + } } diff --git a/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/TimeLineAdapter.java b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/TimeLineAdapter.java new file mode 100644 index 0000000..5cf22f4 --- /dev/null +++ b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/TimeLineAdapter.java @@ -0,0 +1,75 @@ +package nl.myhyvesbookplus.tagram; + +import android.content.Context; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.BaseAdapter; +import android.widget.ImageView; +import android.widget.TextView; + +import com.bumptech.glide.Glide; +import com.firebase.ui.storage.images.FirebaseImageLoader; +import com.google.firebase.storage.FirebaseStorage; +import com.google.firebase.storage.StorageReference; + +import java.util.ArrayList; + +import nl.myhyvesbookplus.tagram.model.UriPost; + +/** + * Created by marijnjansen on 26/06/2017. + */ + +public class TimeLineAdapter extends BaseAdapter { + private static final String TAG = "TimeLineAdapter"; + private LayoutInflater mInflater; + private Context mContext; + private ArrayList mData; + + TimeLineAdapter(Context context, ArrayList data) { + mContext = context; + mInflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); + mData = data; + } + + @Override + public int getCount() { + Log.d(TAG, "getCount: " + mData.size()); + return mData.size(); + } + + @Override + public Object getItem(int position) { + return mData.get(position); + } + + @Override + public long getItemId(int position) { + return position; + } + + @Override + public View getView(int position, View convertView, ViewGroup parent) { + View rowView = mInflater.inflate(R.layout.list_item_timeline, parent, false); + + TextView comment = (TextView) rowView.findViewById(R.id.comment_timeline); + TextView nietslechts = (TextView) rowView.findViewById(R.id.niet_slecht_count); + ImageView photo = (ImageView) rowView.findViewById(R.id.timeline_image); + + UriPost post = (UriPost) getItem(position); + + nietslechts.setText(Integer.toString(post.getNietSlechts())); + comment.setText(post.getComment()); + + StorageReference ref = FirebaseStorage.getInstance().getReferenceFromUrl(post.getUri()); + Glide.with(mContext) + .using(new FirebaseImageLoader()) + .load(ref) + .into(photo); + + + return rowView; + } +} diff --git a/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/TimelineFragment.java b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/TimelineFragment.java index c4693e2..44f568d 100644 --- a/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/TimelineFragment.java +++ b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/TimelineFragment.java @@ -1,33 +1,25 @@ package nl.myhyvesbookplus.tagram; -import android.content.Context; -import android.net.Uri; -import android.os.Bundle; import android.app.Fragment; +import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import android.widget.ListView; + +import nl.myhyvesbookplus.tagram.controller.DownloadClass; /** * A simple {@link Fragment} subclass. - * Activities that contain this fragment must implement the - * {@link TimelineFragment.OnFragmentInteractionListener} interface - * to handle interaction events. * Use the {@link TimelineFragment#newInstance} factory method to * create an instance of this fragment. */ public class TimelineFragment extends Fragment { - // TODO: Rename parameter arguments, choose names that match - // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER - private static final String ARG_PARAM1 = "param1"; - private static final String ARG_PARAM2 = "param2"; + final private static String TAG = "TimelineFragment"; - // TODO: Rename and change types of parameters - private String mParam1; - private String mParam2; - - private OnFragmentInteractionListener mListener; + private ListView listView; + private DownloadClass downloadClass; public TimelineFragment() { // Required empty public constructor @@ -36,73 +28,31 @@ public class TimelineFragment extends Fragment { /** * Use this factory method to create a new instance of * this fragment using the provided parameters. - * - * @param param1 Parameter 1. - * @param param2 Parameter 2. * @return A new instance of fragment TimelineFragment. */ // TODO: Rename and change types and number of parameters - public static TimelineFragment newInstance(String param1, String param2) { + public static TimelineFragment newInstance() { TimelineFragment fragment = new TimelineFragment(); Bundle args = new Bundle(); - args.putString(ARG_PARAM1, param1); - args.putString(ARG_PARAM2, param2); fragment.setArguments(args); return fragment; } - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - if (getArguments() != null) { - mParam1 = getArguments().getString(ARG_PARAM1); - mParam2 = getArguments().getString(ARG_PARAM2); - } - } - @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { + View view = inflater.inflate(R.layout.fragment_timeline, container, false); + + listView = (ListView) view.findViewById(R.id.listview); + downloadClass = new DownloadClass(getActivity()); + downloadClass.getPostsFromServer(); + // Inflate the layout for this fragment - return inflater.inflate(R.layout.fragment_timeline, container, false); + return view; } - // TODO: Rename method, update argument and hook method into UI event - public void onButtonPressed(Uri uri) { - if (mListener != null) { - mListener.onFragmentInteraction(uri); - } - } - - @Override - public void onAttach(Context context) { - super.onAttach(context); - if (context instanceof OnFragmentInteractionListener) { - mListener = (OnFragmentInteractionListener) context; - } else { - throw new RuntimeException(context.toString() - + " must implement OnFragmentInteractionListener"); - } - } - - @Override - public void onDetach() { - super.onDetach(); - mListener = null; - } - - /** - * This interface must be implemented by activities that contain this - * fragment to allow an interaction in this fragment to be communicated - * to the activity and potentially other fragments contained in that - * activity. - *

- * See the Android Training lesson Communicating with Other Fragments for more information. - */ - public interface OnFragmentInteractionListener { - // TODO: Update argument type and name - void onFragmentInteraction(Uri uri); + public void startList() { + TimeLineAdapter adapter = new TimeLineAdapter(getActivity(), downloadClass.getmList()); + listView.setAdapter(adapter); } } diff --git a/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/controller/DownloadClass.java b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/controller/DownloadClass.java index 28a97a6..a32a97c 100644 --- a/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/controller/DownloadClass.java +++ b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/controller/DownloadClass.java @@ -1,5 +1,6 @@ package nl.myhyvesbookplus.tagram.controller; +import android.content.Context; import android.util.Log; import com.google.firebase.database.DataSnapshot; @@ -9,6 +10,7 @@ import com.google.firebase.database.FirebaseDatabase; import com.google.firebase.database.ValueEventListener; import java.util.ArrayList; +import java.util.Collections; import nl.myhyvesbookplus.tagram.model.UriPost; @@ -18,30 +20,31 @@ import nl.myhyvesbookplus.tagram.model.UriPost; public class DownloadClass { private static final String TAG = "DownloadClass"; - // private StorageReference mStorageRef; private DatabaseReference mDataRef; + private ArrayList mList; + private PostDownloadListener mListener; - public DownloadClass() { -// mStorageRef = FirebaseStorage.getInstance().getReference(); + public DownloadClass(Context context) { + if (context instanceof DownloadClass.PostDownloadListener) { + mListener = (PostDownloadListener) context; + } else { + throw new RuntimeException(context.toString() + + " must implement PostDownloadListener"); + } mDataRef = FirebaseDatabase.getInstance().getReference(); + mList = new ArrayList<>(); } - public UriPost[] getPosts() { - UriPost[] posts = new UriPost[10]; - getPostsFromServer().toArray(posts); - - return posts; - } - - private ArrayList getPostsFromServer() { + public void getPostsFromServer() { Log.d(TAG, "getPostsFromServer: Begin of function"); - final ArrayList list = new ArrayList<>(); mDataRef.child("posts").addListenerForSingleValueEvent(new ValueEventListener() { @Override public void onDataChange(DataSnapshot dataSnapshot) { for (DataSnapshot data : dataSnapshot.getChildren()) { - list.add(data.getValue(UriPost.class)); + mList.add(data.getValue(UriPost.class)); } + Collections.reverse(mList); + mListener.PostDownloaded(); } @Override @@ -49,6 +52,13 @@ public class DownloadClass { Log.d(TAG, "onCancelled: " + databaseError.getDetails() + databaseError.getMessage()); } }); - return list; + } + + public ArrayList getmList() { + return mList; + } + + public interface PostDownloadListener { + void PostDownloaded(); } } diff --git a/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/controller/PostUploader.java b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/controller/PostUploader.java index 7076169..56d2d69 100644 --- a/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/controller/PostUploader.java +++ b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/controller/PostUploader.java @@ -38,7 +38,7 @@ public class PostUploader extends UploadClass { } public void uploadPicture(final BitmapPost post) { - final String name = getUserUid() + currentTimeMillis(); + final String name = currentTimeMillis() + "_" + getUserUid(); UploadTask uploadTask = mStorageRef.child("posts").child(name + ".jpg").putBytes(bitmapToBytes(post.getBitmap())); uploadTask.addOnFailureListener(new OnFailureListener() { diff --git a/app/MyHyvesBookPlusStagram/app/src/main/res/layout/activity_login.xml b/app/MyHyvesBookPlusStagram/app/src/main/res/layout/activity_login.xml index ccc5b0c..e2e44b0 100644 --- a/app/MyHyvesBookPlusStagram/app/src/main/res/layout/activity_login.xml +++ b/app/MyHyvesBookPlusStagram/app/src/main/res/layout/activity_login.xml @@ -1,111 +1,121 @@ - - - + android:layout_height="match_parent"> - + - + - + - + - + - + - + -