Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.melnikov.universus;
- import android.animation.Animator;
- import android.animation.AnimatorListenerAdapter;
- import android.animation.ObjectAnimator;
- import android.content.Intent;
- import android.graphics.Bitmap;
- import android.graphics.BitmapFactory;
- import android.graphics.drawable.BitmapDrawable;
- import android.os.AsyncTask;
- import android.os.Bundle;
- import android.support.annotation.Nullable;
- import android.support.v4.app.Fragment;
- import android.util.Log;
- import android.util.Pair;
- import android.view.LayoutInflater;
- import android.view.View;
- import android.view.ViewGroup;
- import android.view.animation.Animation;
- import android.view.animation.AnimationUtils;
- import android.widget.ImageView;
- import android.widget.LinearLayout;
- import android.widget.RelativeLayout;
- import android.widget.TextView;
- import android.widget.Toast;
- import com.squareup.picasso.Picasso;
- import org.json.JSONArray;
- import org.json.JSONException;
- import org.json.JSONObject;
- import org.w3c.dom.Text;
- import java.io.IOException;
- import java.util.ArrayList;
- import java.util.List;
- import static android.support.constraint.Constraints.TAG;
- import static com.melnikov.universus.LoginActivity.TOKEN;
- import static com.melnikov.universus.LoginActivity.mToken;
- public class SwiperFragment extends Fragment {
- static int index = 0;
- private static List<Girl> mItems = new ArrayList<>();
- private ImageView mLikeButton;
- private ImageView mDislikeButton;
- private static ImageView mGirlPic;
- private TextView mGirlName;
- private TextView mGirlUrl;
- private TextView mGirlUniversity;
- private static ImageView mGirlPicNext;
- private TextView mGirlNameNext;
- private TextView mGirlUrlNext;
- private TextView mGirlUniversityNext;
- private RelativeLayout mContainer;
- private LinearLayout mUniversityContainer;
- private LinearLayout mPickContainer;
- Animation animation;
- Animation animationBack;
- static boolean like;
- public static Bitmap bitmap;
- public static ImageView photo;
- public static Bitmap bitmapNext;
- public static ImageView photoNext;
- View view;
- public SwiperFragment() {
- // Required empty public constructor
- }
- @Override
- public void onCreate(@Nullable Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- }
- @Override
- public View onCreateView(LayoutInflater inflater, ViewGroup container,
- Bundle savedInstanceState) {
- view = inflater.inflate(R.layout.fragment_swiper, container, false);
- mLikeButton = view.findViewById(R.id.swiper_like_button);
- mDislikeButton = view.findViewById(R.id.swiper_dislike_button);
- mContainer = view.findViewById(R.id.swiper_container);
- mPickContainer = view.findViewById(R.id.swiper_pick_container);
- animation = AnimationUtils.loadAnimation(getContext(), R.anim.scale);
- animationBack = AnimationUtils.loadAnimation(getContext(), R.anim.scale_back);
- mGirlPic = view.findViewById(R.id.swiper_item_girl_pic);
- mGirlName = view.findViewById(R.id.swiper_item_girl_name);
- mGirlUrl = view.findViewById(R.id.swiper_item_girl_url);
- mGirlUniversity = view.findViewById(R.id.swiper_item_girl_university);
- mGirlPicNext = view.findViewById(R.id.swiper_item_girl_pic_next);
- mGirlNameNext = view.findViewById(R.id.swiper_item_girl_name_next);
- mGirlUrlNext = view.findViewById(R.id.swiper_item_girl_url_next);
- mGirlUniversityNext = view.findViewById(R.id.swiper_item_girl_university_next);
- SetGirls();
- mLikeButton.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- //для отправки пачками(пока нет)
- //Data.getInstance().girlLikes.add(new Pair<Girl, Boolean>(mItems.get(index), true));
- like = true;
- new GetNextGirlTask().execute();
- }
- });
- mDislikeButton.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- //для отправки пачками(пока нет)
- //Data.getInstance().girlLikes.add(new Pair<Girl, Boolean>(mItems.get(index), false));
- like = false;
- new GetNextGirlTask().execute();
- }
- });
- return view;
- }
- //kek
- class GetNextGirlTask extends AsyncTask<Void, Void, Boolean> {
- @Override
- protected Boolean doInBackground(Void... params) {
- Boolean q = sendResult(like, mItems.get(index).getID());
- index++;
- return q;
- }
- @Override
- protected void onPostExecute(Boolean q) {
- if (q & index < mItems.size()) {
- SetGirls();
- } else {
- new TimeTask().execute();
- }
- }
- }
- private static boolean sendResult(boolean like, int ID) {
- try {
- String s;
- if (like)
- s = "1";
- else
- s = "0";
- String t = mToken.getString(TOKEN, "");
- String url = LoginActivity.server + "swiper_result/" + t + "/" + ID + "/" + s;
- String jsonString = ListGetter.getUrlString(url);
- Log.i(TAG, "Received JSON: " + jsonString);
- JSONObject jsonBody = new JSONObject(jsonString);
- String status = (String) jsonBody.get("status");
- switch (status) {
- case "Confirm the registration at first": {
- //пользователь должен сначала зарегестрироваться
- return false;
- }
- case "You have used all the votes": {
- return false;
- }
- case "ok": {
- return true;
- }
- case "Token is invalid": {
- Log.i(TAG, "Послал неверный токен!!!" + "LOL");
- // какой-то бред, пусть прога упадет
- }
- }
- } catch (java.io.IOException e) {
- System.out.println(e);
- Log.i(TAG, "Failed to send the request");
- } catch (JSONException jo) {
- Log.i(TAG, "Failed to receive JSONbody");
- }
- return false;
- }
- //kek
- public void SetGirls() {
- mGirlName.setText(mItems.get(index).getName());
- mGirlUrl.setText(mItems.get(index).getUrl());
- mGirlUniversity.setText(mItems.get(index).getUniversity().getName());
- //photo
- if (index > 0) {
- bitmap = bitmapNext;
- } else {
- //photo
- /*Picasso.get().load(mItems.get(index).getProfile_pic_url_instagram()).into(mGirlPic);
- bitmap = ((BitmapDrawable) mGirlPic.getDrawable()).getBitmap();*/
- try {
- byte[] urlbytes = ListGetter.getUrlBytes(mItems.get(index).getProfile_pic_url_instagram());
- bitmap = BitmapFactory.decodeByteArray(urlbytes, 0, urlbytes.length);
- } catch (IOException e) {
- System.out.println(e);
- }
- }
- mGirlPic.setImageBitmap(ImageHelper.getRoundedCornerBitmap(bitmap, 100));
- if (index < mItems.size() - 1) {
- mGirlNameNext.setText(mItems.get(index + 1).getName());
- mGirlUrlNext.setText(mItems.get(index + 1).getUrl());
- mGirlUniversityNext.setText(mItems.get(index + 1).getUniversity().getName());
- //photo of next
- /*Picasso.get().load(mItems.get(index + 1).getProfile_pic_url_instagram()).into(mGirlPicNext);
- bitmapNext = ((BitmapDrawable) mGirlPicNext.getDrawable()).getBitmap();*/
- try {
- byte[] urlbytes = ListGetter.getUrlBytes(mItems.get(index + 1).getProfile_pic_url_instagram());
- bitmapNext = BitmapFactory.decodeByteArray(urlbytes, 0, urlbytes.length);
- } catch (IOException e) {
- System.out.println(e);
- }
- mGirlPicNext.setImageBitmap(ImageHelper.getRoundedCornerBitmap(bitmapNext, 100));
- }
- crossfadePic();
- appear(mGirlPicNext, mGirlPic, mContainer);
- crossfadeName();
- appear(mGirlNameNext, mGirlName, mContainer);
- crossfadeUrl();
- appear(mGirlUrlNext, mGirlUrl, mContainer);
- crossfadeUniversity();
- appear(mGirlUniversityNext, mGirlUniversity, mContainer);
- }
- private void crossfadePic() {
- // Set the content view to 0% opacity but visible, so that it is visible
- // (but fully transparent) during the animation.
- /*contentView.setAlpha(0f);
- contentView.setVisibility(View.VISIBLE);*/
- // Animate the content view to 100% opacity, and clear any animation
- // listener set on the view.
- /*contentView.animate()
- .alpha(1f)
- .setDuration(shortAnimationDuration)
- .setListener(null);*/
- // Animate the loading view to 0% opacity. After the animation ends,
- // set its visibility to GONE as an optimization step (it won't
- // participate in layout passes, etc.)
- mGirlPic.startAnimation(animation);
- mGirlPic.animate()
- .alpha(0f)
- .setDuration(700)
- .setListener(new AnimatorListenerAdapter() {
- @Override
- public void onAnimationEnd(Animator animation) {
- mGirlPic.setVisibility(View.INVISIBLE);
- ImageView template = mGirlPic;
- mGirlPic = mGirlPicNext;
- mGirlPicNext = template;
- mGirlNameNext.setX(mGirlPic.getX());
- }
- });
- mGirlPicNext.animate()
- .alpha(1f)
- .setDuration(1)
- .setListener(new AnimatorListenerAdapter() {
- @Override
- public void onAnimationEnd(Animator animation) {
- }
- });
- mGirlPicNext.startAnimation(animationBack);
- }
- private void crossfadeName() {
- mGirlName.startAnimation(animation);
- mGirlName.animate()
- .alpha(0f)
- .setDuration(700)
- .setListener(new AnimatorListenerAdapter() {
- @Override
- public void onAnimationEnd(Animator animation) {
- mGirlName.setVisibility(View.INVISIBLE);
- TextView template = mGirlName;
- mGirlName = mGirlNameNext;
- mGirlNameNext = template;
- mGirlNameNext.setX(mGirlName.getX());
- }
- });
- mGirlNameNext.animate()
- .alpha(1f)
- .setDuration(1)
- .setListener(new AnimatorListenerAdapter() {
- @Override
- public void onAnimationEnd(Animator animation) {
- }
- });
- mGirlNameNext.startAnimation(animationBack);
- }
- private void crossfadeUrl() {
- mGirlUrl.startAnimation(animation);
- mGirlUrl.animate()
- .alpha(0f)
- .setDuration(700)
- .setListener(new AnimatorListenerAdapter() {
- @Override
- public void onAnimationEnd(Animator animation) {
- mGirlUrl.setVisibility(View.INVISIBLE);
- TextView template = mGirlUrl;
- mGirlUrl = mGirlUrlNext;
- mGirlUrlNext = template;
- mGirlUrlNext.setX(mGirlUrl.getX());
- }
- });
- mGirlUrlNext.animate()
- .alpha(1f)
- .setDuration(1)
- .setListener(new AnimatorListenerAdapter() {
- @Override
- public void onAnimationEnd(Animator animation) {
- }
- });
- mGirlUrlNext.startAnimation(animationBack);
- }
- private void crossfadeUniversity() {
- mGirlUniversity.setElevation(1);
- mGirlUniversity.startAnimation(animation);
- mGirlUniversity.animate()
- .alpha(0f)
- .setDuration(700)
- .setListener(new AnimatorListenerAdapter() {
- @Override
- public void onAnimationEnd(Animator animation) {
- mGirlUniversity.setVisibility(View.INVISIBLE);
- TextView template = mGirlUniversity;
- mGirlUniversity = mGirlUniversityNext;
- mGirlUniversityNext = template;
- mGirlUniversityNext.setX(mGirlUniversity.getX());
- }
- });
- mGirlUniversityNext.animate()
- .alpha(1f)
- .setDuration(1)
- .setListener(new AnimatorListenerAdapter() {
- @Override
- public void onAnimationEnd(Animator animation) {
- }
- });
- mGirlUniversityNext.startAnimation(animationBack);
- }
- private void appear(View view, View parent, View container) {
- ObjectAnimator widthAnimator = ObjectAnimator
- .ofFloat(view, "x", container.getRight(), parent.getLeft())
- .setDuration(700);
- view.setElevation(10);
- parent.setElevation(1);
- //Toast.makeText(getActivity(), parent.getRight() + " right", Toast.LENGTH_SHORT).show();
- view.setVisibility(View.VISIBLE);
- widthAnimator.start();
- }
- public void setmItems(ArrayList<Girl> mItems) {
- this.mItems = mItems;
- }
- //kek
- private String GetTime() {
- try {
- String t = mToken.getString(TOKEN, "");
- String url = LoginActivity.server + "get_current_time/" + t;
- String jsonString = ListGetter.getUrlString(url);
- Log.i(TAG, "Received JSON: " + jsonString);
- JSONObject jsonBody = new JSONObject(jsonString);
- String status = (String) jsonBody.get("status");
- switch (status) {
- case "Confirm the registration at first": {
- }
- case "ok": {
- //kek
- String s = jsonBody.getString("time");
- int x = (int) s.charAt(3);
- int y = (int) s.charAt(4);
- int z = (int) s.charAt(6);
- int k = (int) s.charAt(7);
- int time = 60 * (10 * x + y) + 10 * z + k;
- int OSTtime = 3600 - time;
- int min_left = OSTtime / 60;
- int sec_left = OSTtime % 60;
- return min_left + ":" + sec_left;
- }
- case "Token is invalid": {
- Log.i(TAG, "Послал неверный токен!!!" + "LOL");
- System.exit(120);
- }
- }
- } catch (java.io.IOException e) {
- System.out.println(e);
- Log.i(TAG, "Failed to send the request");
- } catch (JSONException jo) {
- Log.i(TAG, "Failed to receive JSONbody");
- }
- return "";
- }
- //kek
- public class TimeTask extends AsyncTask<Void, Void, Boolean> {
- @Override
- protected Boolean doInBackground(Void... params) {
- MainActivity.mainActivity.NoVoicesFragment.setTime(GetTime());
- return true;
- }
- @Override
- protected void onPostExecute(Boolean q) {
- MainActivity.mainActivity.setFragment(MainActivity.mainActivity.NoVoicesFragment);
- }
- }
- public int getIndex() {
- return index;
- }
- public void setIndex(int index) {
- this.index = index;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement