package com.haicaojie.android.ui.invite;
|
|
import android.content.DialogInterface;
|
import android.os.Build;
|
import android.os.Bundle;
|
import android.os.Handler;
|
import android.os.Message;
|
import android.support.v7.widget.LinearLayoutManager;
|
import android.support.v7.widget.RecyclerView;
|
import android.text.Html;
|
import android.util.Log;
|
import android.view.View;
|
import android.view.Window;
|
import android.view.WindowManager;
|
import android.widget.ImageView;
|
import android.widget.LinearLayout;
|
import android.widget.TextView;
|
|
import com.bumptech.glide.Glide;
|
import com.google.gson.Gson;
|
import com.google.gson.GsonBuilder;
|
import com.google.gson.reflect.TypeToken;
|
import com.haicaojie.android.BasicTextHttpResponseHandler;
|
import com.haicaojie.android.BuXinConstant;
|
import com.haicaojie.android.R;
|
import com.haicaojie.android.ShoppingApi;
|
import com.haicaojie.android.ui.BaseActivity;
|
import com.haicaojie.android.util.ScalableCardHelper;
|
import com.haicaojie.android.util.ShareFriendsDialog;
|
import com.lcjian.library.widget.SpaceItemDecoration;
|
|
import org.apache.http.Header;
|
import org.json.JSONObject;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
|
/**
|
* Created by weikou2015 on 2018/3/30.
|
*/
|
|
public class InviteFriendsActivity extends BaseActivity implements View.OnClickListener {
|
|
private TextView tv_nav_top_left, tv_nav_top_middle;
|
|
private TextView tv_invite_rule, tv_invite_promptly;
|
|
private RecyclerView rv_share_img;
|
|
AdapterInviteImg imgAdapter2;
|
|
private ImageView iv_share_img;
|
|
private List<String> mList = new ArrayList<>();
|
|
private int sPosition = 0;
|
|
@Override
|
protected void onCreate(Bundle savedInstanceState) {
|
super.onCreate(savedInstanceState);
|
setContentView(R.layout.activity_invite_friends);
|
/*
|
* 计算状态栏高度并设置
|
*/
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
|
Window window = getWindow();
|
window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS,
|
WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
|
int result = 0;
|
int resourceId = getResources().getIdentifier("status_bar_height",
|
"dimen", "android");
|
if (resourceId > 0) {
|
result = getResources().getDimensionPixelSize(resourceId);
|
}
|
//设置状态栏文字颜色及图标为深色
|
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
|
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,
|
result);
|
findViewById(R.id.v_status_bar).setLayoutParams(params);
|
} else {
|
findViewById(R.id.v_status_bar).setVisibility(View.GONE);
|
}
|
tv_invite_rule = (TextView) findViewById(R.id.tv_invite_rule);
|
tv_nav_top_left = (TextView) findViewById(R.id.tv_top_bar_left);
|
tv_nav_top_middle = (TextView) findViewById(R.id.tv_top_bar_middle);
|
tv_invite_promptly = (TextView) findViewById(R.id.tv_invite_promptly);
|
rv_share_img = (RecyclerView) findViewById(R.id.rv_share_img);
|
iv_share_img = (ImageView) findViewById(R.id.iv_share_img);
|
|
tv_nav_top_left.setOnClickListener(this);
|
tv_invite_promptly.setOnClickListener(this);
|
tv_nav_top_middle.setText("邀请好友");
|
|
rv_share_img.setOnScrollListener(new RecyclerView.OnScrollListener() {
|
@Override
|
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
|
super.onScrollStateChanged(recyclerView, newState);
|
RecyclerView.LayoutManager layoutManager = recyclerView.getLayoutManager();
|
//判断是当前layoutManager是否为LinearLayoutManager
|
// 只有LinearLayoutManager才有查找第一个和最后一个可见view位置的方法
|
if (layoutManager instanceof LinearLayoutManager) {
|
LinearLayoutManager linearManager = (LinearLayoutManager) layoutManager;
|
if (newState == 0) {
|
//获取第一个可见view的位置
|
int firstItemPosition = linearManager.findFirstVisibleItemPosition();
|
//获取最后一个可见view的位置
|
int lastItemPosition = linearManager.findLastVisibleItemPosition();
|
|
View firstView = linearManager.findViewByPosition(firstItemPosition);
|
View lastView = linearManager.findViewByPosition(lastItemPosition);
|
View centerView = linearManager.findViewByPosition((firstItemPosition + lastItemPosition) / 2);
|
if (firstView != null) {
|
AdapterInviteImg.Holder holder = (AdapterInviteImg.Holder) recyclerView.getChildViewHolder(firstView);
|
holder.v_cover.setVisibility(View.VISIBLE);
|
}
|
if (lastView != null) {
|
AdapterInviteImg.Holder holder = (AdapterInviteImg.Holder) recyclerView.getChildViewHolder(lastView);
|
holder.v_cover.setVisibility(View.VISIBLE);
|
}
|
if (centerView != null) {
|
AdapterInviteImg.Holder holder = (AdapterInviteImg.Holder) recyclerView.getChildViewHolder(centerView);
|
holder.v_cover.setVisibility(View.GONE);
|
Log.i("mResult", "centerView不为空");
|
}
|
sPosition = (firstItemPosition + lastItemPosition) / 2;
|
}
|
}
|
}
|
|
@Override
|
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
|
super.onScrolled(recyclerView, dx, dy);
|
|
|
}
|
});
|
iv_share_img.setVisibility(View.VISIBLE);
|
rv_share_img.setVisibility(View.GONE);
|
tv_invite_promptly.setEnabled(false);
|
tv_invite_promptly.setBackground(getResources().getDrawable(R.drawable.shape_goods_detail_like2));
|
Glide.with(InviteFriendsActivity.this).load("http://sdasdas").error(R.drawable.ic_invite_default)
|
.placeholder(R.drawable.ic_invite_default).into(iv_share_img);
|
inviteFriend();
|
}
|
|
|
private void inviteFriend() {
|
ShoppingApi.inviteFriend(InviteFriendsActivity.this, getSharedPreferences("user", MODE_PRIVATE).getString("uid", "323922"), new BasicTextHttpResponseHandler() {
|
@Override
|
public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception {
|
if (jsonObject.optString("code").equalsIgnoreCase("0")) {
|
Gson gson = new GsonBuilder().serializeNulls().create();
|
mList.clear();
|
mList = gson.fromJson(jsonObject.optJSONObject("data").optJSONArray("imgUrlList").toString(), new TypeToken<List<String>>() {
|
}.getType());
|
Log.i("mResult", jsonObject.toString());
|
|
iv_share_img.setVisibility(View.GONE);
|
rv_share_img.setVisibility(View.VISIBLE);
|
BuXinConstant.INVITE_IMG = mList.get(0);
|
rv_share_img.setLayoutManager(new LinearLayoutManager(InviteFriendsActivity.this, LinearLayoutManager.HORIZONTAL, false));
|
for (int i = 0; i < 18; i++) {
|
mList.addAll(mList);
|
}
|
rv_share_img.addItemDecoration(new SpaceItemDecoration(5));
|
Log.i("mResult", "mList的长度为" + mList.size());
|
|
imgAdapter2 = new AdapterInviteImg(InviteFriendsActivity.this, mList);
|
rv_share_img.setAdapter(imgAdapter2);
|
// imgAdapter2.notifyDataSetChanged();
|
ScalableCardHelper cardHelper = new ScalableCardHelper();
|
cardHelper.attachToRecyclerView(rv_share_img);
|
rv_share_img.getLayoutManager().scrollToPosition(mList.size() / 2);
|
tv_invite_rule.setText(Html.fromHtml(jsonObject.optJSONObject("data").optString("inviteRules")));
|
handler.sendEmptyMessage(1);
|
} else {
|
tv_invite_promptly.setEnabled(false);
|
tv_invite_promptly.setBackground(getResources().getDrawable(R.drawable.shape_goods_detail_like2));
|
}
|
}
|
|
@Override
|
public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) {
|
super.onFailure(statusCode, headers, responseString, throwable);
|
tv_invite_promptly.setEnabled(false);
|
tv_invite_promptly.setBackground(getResources().getDrawable(R.drawable.shape_goods_detail_like2));
|
}
|
});
|
}
|
|
Handler handler = new Handler() {
|
@Override
|
public void handleMessage(Message msg) {
|
super.handleMessage(msg);
|
rv_share_img.smoothScrollToPosition(mList.size() / 2 + 1);
|
tv_invite_promptly.setEnabled(true);
|
tv_invite_promptly.setBackground(getResources().getDrawable(R.drawable.shape_goods_detail_like1));
|
}
|
};
|
|
ShareFriendsDialog dialog = null;
|
|
@Override
|
public void onClick(View view) {
|
switch (view.getId()) {
|
case R.id.tv_top_bar_left:
|
finish();
|
break;
|
case R.id.tv_invite_promptly:
|
if (imgAdapter2 == null)
|
break;
|
ShareFriendsDialog.Builder builder = new ShareFriendsDialog.Builder(InviteFriendsActivity.this);
|
dialog = builder.setImgs(mList.get(sPosition))
|
.setNegativeButton("取消", new DialogInterface.OnClickListener() {
|
@Override
|
public void onClick(DialogInterface dialogInterface, int i) {
|
dialogInterface.dismiss();
|
}
|
}).create();
|
dialog.show();
|
break;
|
}
|
}
|
|
@Override
|
protected void onPause() {
|
super.onPause();
|
if (dialog != null) {
|
dialog.dismiss();
|
}
|
}
|
}
|