package mx.ambmultimedia.brillamexico.activities;
import android.content.Context;
import android.media.MediaPlayer;
import android.net.Uri;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.support.v7.widget.Toolbar;
import android.text.Html;
import android.text.Spanned;
import android.view.DragEvent;
import android.view.Gravity;
import android.view.View;
import android.widget.ImageView;
import android.widget.MediaController;
import android.widget.TextView;
import android.widget.VideoView;
import com.bluejamesbond.text.DocumentView;
import com.getbase.floatingactionbutton.FloatingActionButton;
import com.squareup.picasso.Picasso;
import org.json.JSONException;
import org.json.JSONObject;
import de.hdodenhof.circleimageview.CircleImageView;
import mx.ambmultimedia.brillamexico.utils.Config;
import mx.ambmultimedia.brillamexico.fragments.NavDrawerFrag;
import mx.ambmultimedia.brillamexico.R;
import mx.ambmultimedia.brillamexico.utils.DrawerUtils;
public class Bases extends ActionBarActivity {
Context ctx;
Config config;
NavDrawerFrag navDrawerFragment;
DrawerLayout drawer_layout;
VideoView video;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_bases);
ctx = this;
config = new Config(ctx);
Toolbar toolbar = (Toolbar) findViewById(R.id.app_bar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayShowHomeEnabled(true);
navDrawerFragment = (NavDrawerFrag) getSupportFragmentManager().findFragmentById(R.id.navDrawer);
drawer_layout = (DrawerLayout) findViewById(R.id.drawer_layout2);
navDrawerFragment.setUp(R.id.navDrawer, drawer_layout, toolbar);
DrawerUtils drawerutils = new DrawerUtils(this, this);
drawerutils.Navigation(drawer_layout);
BuildProfile();
String uriPath = "android.resource://mx.ambmultimedia.brillamexico/raw/bmx_video";
Uri uri = Uri.parse(uriPath);
final ImageView videoPreview = (ImageView) findViewById(R.id.videoPreview);
video = (VideoView) findViewById(R.id.videoView);
video.setVideoURI(uri);
final MediaController mediaController = new MediaController(this);
mediaController.setAnchorView(video);
video.setMediaController(mediaController);
drawer_layout.setDrawerListener(new DrawerLayout.DrawerListener() {
@Override
public void onDrawerSlide(View drawerView, float slideOffset) {
mediaController.hide();
}
@Override
public void onDrawerOpened(View drawerView) {
mediaController.hide();
}
@Override
public void onDrawerClosed(View drawerView) { }
@Override
public void onDrawerStateChanged(int newState) {
mediaController.hide();
}
});
final FloatingActionButton playVideo = (FloatingActionButton) findViewById(R.id.playVideo);
playVideo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
playVideo.setVisibility(View.INVISIBLE);
videoPreview.setVisibility(View.INVISIBLE);
video.start();
}
});
float videoWidth = (float) video.getWidth();
float videoHeight = videoWidth * 0.5625f;
video.layout(0, 0, (int) videoWidth, (int) videoHeight);
video.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
public void onPrepared(MediaPlayer arg) {
video.start();
video.pause();
}
});
video.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer vmp) {
playVideo.setVisibility(View.VISIBLE);
videoPreview.setVisibility(View.VISIBLE);
}
});
video.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
video.pause();
}
});
/**
* Formateado de texto
*/
DocumentView documentView = (DocumentView) findViewById(R.id.largeText);
String htmlText = String.valueOf(
documentView.getText());
htmlText = htmlText
.replaceAll("¬", "<br><br>")
.replaceAll("\\^", "<br>")
.replaceAll("\\[nota\\]", "<font color=\"#797979\"><i>")
.replaceAll("\\[\\/nota\\]", "</i></font>")
.replaceAll("\\[\\{", "<font color=\"#490256\">")
.replaceAll("\\}\\]", "</font>")
.replaceAll("\\[", "<font color=\"#5b026b\"><b>")
.replaceAll("\\]", ")</b></font>")
.replaceAll("#####", "<h4><font color=\"#595959\">")
.replaceAll("#/###", "</font></h4>")
.replaceAll("####", "<h4>")
.replaceAll("#/##", "</h4>")
.replaceAll("###", "<h3><font color=\"#d32393\">")
.replaceAll("#/#", "</font></h3>")
.replaceAll("<li>", "<font color=\"#5b026b\">● </font>")
.replaceAll("</li>", "<br><br>");
Spanned htmlSpan = Html.fromHtml(htmlText);
documentView.setText(htmlSpan);
}
@Override
protected void onDestroy() {
super.onDestroy();
video.stopPlayback();
}
@Override
protected void onPause() {
super.onPause();
video.pause();
}
@Override
protected void onStop() {
super.onStop();
video.stopPlayback();
}
@Override
public void onBackPressed () {
if (drawer_layout.isDrawerOpen(Gravity.LEFT)){
drawer_layout.closeDrawer(Gravity.LEFT);
} else {
super.onBackPressed();
this.finish();
}
}
public void BuildProfile () {
String fbID = config.get("fbID", "0");
String _user = config.get("user", "null");
final TextView DrawerUserName = (TextView) findViewById(R.id.UserName);
final TextView DrawerCountPuntos = (TextView) findViewById(R.id.UserPoints);
try {
JSONObject user = new JSONObject(_user);
DrawerUserName.setText(user.getString("name"));
DrawerCountPuntos.setText(user.getString("points") + " puntos");
} catch (JSONException e) { }
CircleImageView ImgDrawerAvatar = (CircleImageView) findViewById(R.id.UserAvatar);
String _avatarUrl = getString(R.string.fb_avatar_link);
String miniAvatarUrl = _avatarUrl.replaceAll("__fbid__", fbID);
Picasso.with(ctx)
.load(miniAvatarUrl)
.placeholder(R.drawable.com_facebook_profile_picture_blank_square)
.into(ImgDrawerAvatar);
}
}