mirror of
https://github.com/pierre42100/ComunicAndroid
synced 2024-11-27 07:49:28 +00:00
Posts movies are supported.
This commit is contained in:
parent
9c39112bf7
commit
d8837aa016
@ -0,0 +1,44 @@
|
|||||||
|
package org.communiquons.android.comunic.client.data.helpers;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.support.annotation.NonNull;
|
||||||
|
|
||||||
|
import org.communiquons.android.comunic.client.data.models.Movie;
|
||||||
|
import org.json.JSONException;
|
||||||
|
import org.json.JSONObject;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Movies helper
|
||||||
|
*
|
||||||
|
* @author Pierre HUBERT
|
||||||
|
*/
|
||||||
|
|
||||||
|
public class MoviesHelper extends BaseHelper {
|
||||||
|
|
||||||
|
MoviesHelper(Context context) {
|
||||||
|
super(context);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Parse a JSON object into a movie object
|
||||||
|
*
|
||||||
|
* @param object The object to parse
|
||||||
|
* @return Parsed movie object
|
||||||
|
* @throws JSONException If JSON object could not be correctly read
|
||||||
|
*/
|
||||||
|
Movie parse_json_object(@NonNull JSONObject object) throws JSONException {
|
||||||
|
|
||||||
|
Movie movie = new Movie();
|
||||||
|
|
||||||
|
movie.setId(object.getInt("id"));
|
||||||
|
movie.setUrl(object.getString("url"));
|
||||||
|
movie.setUserID(object.getInt("userID"));
|
||||||
|
movie.setName(object.getString("name"));
|
||||||
|
movie.setFileType(object.getString("file_type"));
|
||||||
|
movie.setSize(object.getInt("size"));
|
||||||
|
|
||||||
|
return movie;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
@ -380,6 +380,11 @@ public class PostsHelper {
|
|||||||
post.setFile_path_url(json.getString("file_path_url"));
|
post.setFile_path_url(json.getString("file_path_url"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Get information about movie (if any)
|
||||||
|
if(!json.isNull("video_info"))
|
||||||
|
post.setMovie(new MoviesHelper(mContext)
|
||||||
|
.parse_json_object(json.getJSONObject("video_info")));
|
||||||
|
|
||||||
return post;
|
return post;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -0,0 +1,65 @@
|
|||||||
|
package org.communiquons.android.comunic.client.data.models;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Movie model
|
||||||
|
*
|
||||||
|
* @author Pierre HUBERT
|
||||||
|
*/
|
||||||
|
public class Movie {
|
||||||
|
|
||||||
|
//Private properties
|
||||||
|
private int id;
|
||||||
|
private String url;
|
||||||
|
private int userID;
|
||||||
|
private String name;
|
||||||
|
private String fileType;
|
||||||
|
private int size;
|
||||||
|
|
||||||
|
public int getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(int id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getUrl() {
|
||||||
|
return url;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUrl(String url) {
|
||||||
|
this.url = url;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getUserID() {
|
||||||
|
return userID;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUserID(int userID) {
|
||||||
|
this.userID = userID;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFileType() {
|
||||||
|
return fileType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFileType(String fileType) {
|
||||||
|
this.fileType = fileType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getSize() {
|
||||||
|
return size;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSize(int size) {
|
||||||
|
this.size = size;
|
||||||
|
}
|
||||||
|
}
|
@ -43,6 +43,9 @@ public class Post {
|
|||||||
//Files specific
|
//Files specific
|
||||||
private String file_path_url;
|
private String file_path_url;
|
||||||
|
|
||||||
|
//Movie
|
||||||
|
private Movie movie;
|
||||||
|
|
||||||
|
|
||||||
//Set and get the ID of the post
|
//Set and get the ID of the post
|
||||||
public void setId(int id) {
|
public void setId(int id) {
|
||||||
@ -194,5 +197,19 @@ public class Post {
|
|||||||
public String getFile_path_url() {
|
public String getFile_path_url() {
|
||||||
return file_path_url;
|
return file_path_url;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//Set and get movie information
|
||||||
|
public Movie getMovie() {
|
||||||
|
return movie;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean hasMovie(){
|
||||||
|
return movie != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMovie(Movie movie) {
|
||||||
|
this.movie = movie;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4,6 +4,7 @@ import android.content.Context;
|
|||||||
import android.support.annotation.NonNull;
|
import android.support.annotation.NonNull;
|
||||||
import android.support.annotation.Nullable;
|
import android.support.annotation.Nullable;
|
||||||
import android.util.ArrayMap;
|
import android.util.ArrayMap;
|
||||||
|
import android.util.Log;
|
||||||
import android.view.KeyEvent;
|
import android.view.KeyEvent;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
@ -26,6 +27,7 @@ import org.communiquons.android.comunic.client.ui.utils.UiUtils;
|
|||||||
import org.communiquons.android.comunic.client.data.utils.Utilities;
|
import org.communiquons.android.comunic.client.data.utils.Utilities;
|
||||||
import org.communiquons.android.comunic.client.ui.views.EditCommentContentView;
|
import org.communiquons.android.comunic.client.ui.views.EditCommentContentView;
|
||||||
import org.communiquons.android.comunic.client.ui.views.LikeButtonView;
|
import org.communiquons.android.comunic.client.ui.views.LikeButtonView;
|
||||||
|
import org.communiquons.android.comunic.client.ui.views.MovieView;
|
||||||
import org.communiquons.android.comunic.client.ui.views.PDFLinkButtonView;
|
import org.communiquons.android.comunic.client.ui.views.PDFLinkButtonView;
|
||||||
import org.communiquons.android.comunic.client.ui.views.WebImageView;
|
import org.communiquons.android.comunic.client.ui.views.WebImageView;
|
||||||
import org.communiquons.android.comunic.client.ui.views.WebUserAccountImage;
|
import org.communiquons.android.comunic.client.ui.views.WebUserAccountImage;
|
||||||
@ -176,6 +178,20 @@ public class PostsAdapter extends ArrayAdapter<Post>{
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//Set post movie (if any)
|
||||||
|
MovieView movieView = convertView.findViewById(R.id.post_movie);
|
||||||
|
|
||||||
|
if(post.getType() == PostTypes.MOVIE){
|
||||||
|
movieView.setVisibility(View.VISIBLE);
|
||||||
|
movieView.setMovie(post.getMovie());
|
||||||
|
}
|
||||||
|
|
||||||
|
else {
|
||||||
|
movieView.setVisibility(View.GONE);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//Set post file PDF (if any)
|
//Set post file PDF (if any)
|
||||||
PDFLinkButtonView pdfLinkButtonView = convertView.findViewById(R.id.btn_pdf_link);
|
PDFLinkButtonView pdfLinkButtonView = convertView.findViewById(R.id.btn_pdf_link);
|
||||||
|
|
||||||
|
@ -0,0 +1,83 @@
|
|||||||
|
package org.communiquons.android.comunic.client.ui.views;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.net.Uri;
|
||||||
|
import android.support.annotation.NonNull;
|
||||||
|
import android.support.annotation.Nullable;
|
||||||
|
import android.util.AttributeSet;
|
||||||
|
import android.view.View;
|
||||||
|
import android.widget.FrameLayout;
|
||||||
|
import android.widget.MediaController;
|
||||||
|
import android.widget.VideoView;
|
||||||
|
|
||||||
|
import org.communiquons.android.comunic.client.R;
|
||||||
|
import org.communiquons.android.comunic.client.data.models.Movie;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Movie view
|
||||||
|
*
|
||||||
|
* This view is used to display a movie
|
||||||
|
*
|
||||||
|
* @author Pierre HUBERT
|
||||||
|
*/
|
||||||
|
public class MovieView extends FrameLayout {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Current movie in view
|
||||||
|
*/
|
||||||
|
private Movie mMovie;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* VideoView that contains the video
|
||||||
|
*/
|
||||||
|
private VideoView mVideoView;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Related media controller
|
||||||
|
*/
|
||||||
|
private MediaController mMediaController;
|
||||||
|
|
||||||
|
public MovieView(@NonNull Context context) {
|
||||||
|
super(context);
|
||||||
|
init();
|
||||||
|
}
|
||||||
|
|
||||||
|
public MovieView(@NonNull Context context, @Nullable AttributeSet attrs) {
|
||||||
|
super(context, attrs);
|
||||||
|
init();
|
||||||
|
}
|
||||||
|
|
||||||
|
public MovieView(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
|
||||||
|
super(context, attrs, defStyleAttr);
|
||||||
|
init();
|
||||||
|
}
|
||||||
|
|
||||||
|
public MovieView(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes) {
|
||||||
|
super(context, attrs, defStyleAttr, defStyleRes);
|
||||||
|
init();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void init(){
|
||||||
|
|
||||||
|
View view = inflate(getContext(), R.layout.view_movie, null);
|
||||||
|
addView(view);
|
||||||
|
|
||||||
|
mVideoView = view.findViewById(R.id.video);
|
||||||
|
mMediaController = new MediaController(getContext());
|
||||||
|
mMediaController.setAnchorView(mVideoView);
|
||||||
|
mMediaController.setMediaPlayer(mVideoView);
|
||||||
|
mVideoView.setMediaController(mMediaController);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set (apply) a new movie in the view
|
||||||
|
*
|
||||||
|
* @param movie The movie to apply
|
||||||
|
*/
|
||||||
|
public void setMovie(@NonNull Movie movie) {
|
||||||
|
this.mMovie = movie;
|
||||||
|
|
||||||
|
mVideoView.setVideoURI(Uri.parse(mMovie.getUrl()));
|
||||||
|
}
|
||||||
|
}
|
@ -78,6 +78,13 @@
|
|||||||
android:contentDescription="@string/post_image_description"
|
android:contentDescription="@string/post_image_description"
|
||||||
android:scaleType="centerInside" />
|
android:scaleType="centerInside" />
|
||||||
|
|
||||||
|
<!-- Post related movie (if any) -->
|
||||||
|
<org.communiquons.android.comunic.client.ui.views.MovieView
|
||||||
|
android:id="@+id/post_movie"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="200dp"
|
||||||
|
style="@style/PostMovie"/>
|
||||||
|
|
||||||
<!-- Related PDF (if any) -->
|
<!-- Related PDF (if any) -->
|
||||||
<org.communiquons.android.comunic.client.ui.views.PDFLinkButtonView
|
<org.communiquons.android.comunic.client.ui.views.PDFLinkButtonView
|
||||||
android:id="@+id/btn_pdf_link"
|
android:id="@+id/btn_pdf_link"
|
||||||
|
12
app/src/main/res/layout/view_movie.xml
Normal file
12
app/src/main/res/layout/view_movie.xml
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
|
<VideoView
|
||||||
|
android:id="@+id/video"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:layout_gravity="center_horizontal" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
@ -82,6 +82,12 @@
|
|||||||
<item name="android:layout_gravity">center_vertical</item>
|
<item name="android:layout_gravity">center_vertical</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
<!-- Post Movie (when required) -->
|
||||||
|
<style name="PostMovie">
|
||||||
|
<item name="android:visibility">gone</item>
|
||||||
|
<item name="android:layout_gravity">center_horizontal</item>
|
||||||
|
</style>
|
||||||
|
|
||||||
<!-- Post PDF button (when required) -->
|
<!-- Post PDF button (when required) -->
|
||||||
<style name="PostPDFButton">
|
<style name="PostPDFButton">
|
||||||
<item name="android:layout_gravity">center_horizontal</item>
|
<item name="android:layout_gravity">center_horizontal</item>
|
||||||
|
Loading…
Reference in New Issue
Block a user