package com.haicaojie.android.ui.mine;
|
|
import android.content.Context;
|
import android.content.Intent;
|
import android.content.SharedPreferences;
|
import android.os.Build;
|
import android.os.Bundle;
|
import android.provider.Settings;
|
import android.support.v4.widget.SwipeRefreshLayout;
|
import android.view.View;
|
import android.view.Window;
|
import android.view.WindowManager;
|
import android.widget.AdapterView;
|
import android.widget.LinearLayout;
|
import android.widget.ListView;
|
import android.widget.ProgressBar;
|
import android.widget.TextView;
|
|
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.R;
|
import com.haicaojie.android.ShoppingApi;
|
import com.haicaojie.android.entity.AccountDetail;
|
import com.haicaojie.android.ui.BaseActivity;
|
import com.lcjian.library.content.ConnectivityChangeHelper;
|
import com.lcjian.library.util.NetUtils;
|
import com.lcjian.library.util.RefreshLayout;
|
import com.lcjian.library.util.SingleToast;
|
import com.umeng.analytics.MobclickAgent;
|
|
import org.apache.http.Header;
|
import org.json.JSONObject;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
|
/**
|
* Created by weikou2015 on 2017/2/23.
|
* 账户明细
|
*/
|
|
public class AccountDetailActivity extends BaseActivity implements View.OnClickListener {
|
private TextView tv_left, tv_no_data_hint;
|
private TextView tv_tille;
|
private RefreshLayout rl_red_packet;
|
private ListView lv_red_packet;
|
private RedPacketDetailAdapter adapter;
|
private ConnectivityChangeHelper mChangeHelper;
|
private LinearLayout ll_no_net, ll_no_data, ll_request_failture;
|
|
@Override
|
protected void onCreate(Bundle savedInstanceState) {
|
super.onCreate(savedInstanceState);
|
setContentView(R.layout.activity_my_red_packets);
|
/*
|
* 计算状态栏高度并设置
|
*/
|
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_left = (TextView) findViewById(R.id.tv_top_bar_left);
|
tv_tille = (TextView) findViewById(R.id.tv_top_bar_middle);
|
rl_red_packet = (RefreshLayout) findViewById(R.id.rl_red_packet);
|
lv_red_packet = (ListView) findViewById(R.id.lv_red_packet);
|
findViewById(R.id.tv_red_packet_total1).setAlpha(0.7f);
|
ll_no_net = (LinearLayout) findViewById(R.id.ll_no_net);
|
ll_no_data = (LinearLayout) findViewById(R.id.ll_no_data);
|
ll_request_failture = (LinearLayout) findViewById(R.id.ll_request_failture);
|
tv_no_data_hint = (TextView) findViewById(R.id.tv_no_data_hint);
|
tv_no_data_hint.setText("您的资金目前还没有收支记录,不如咱们先去买买买");
|
findViewById(R.id.iv_net_setting).setOnClickListener(this);
|
findViewById(R.id.tv_refresh).setOnClickListener(this);
|
|
mChangeHelper = new ConnectivityChangeHelper(this,
|
new ConnectivityChangeHelper.OnConnectivityChangeListener() {
|
|
@Override
|
public void onNetworkUnAvailable() {
|
}
|
|
@Override
|
public void onNetworkAvailable() {
|
requestState(0);
|
if (mList.size() == 0) {
|
setData();
|
}
|
}
|
|
});
|
|
// tv_left.setText("返回");
|
tv_tille.setText("账目明细");
|
tv_left.setOnClickListener(this);
|
View v = new View(this);
|
lv_red_packet.addHeaderView(v);
|
ProgressBar pb = new ProgressBar(this);
|
rl_red_packet.setFooter(pb);
|
rl_red_packet.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
|
@Override
|
public void onRefresh() {
|
page = 1;
|
setData();
|
}
|
});
|
rl_red_packet.setOnLoadListener(new RefreshLayout.OnLoadListener() {
|
@Override
|
public void onLoad() {
|
page++;
|
setData();
|
}
|
});
|
lv_red_packet.setOnItemClickListener(new AdapterView.OnItemClickListener() {
|
@Override
|
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
|
|
}
|
});
|
adapter = new RedPacketDetailAdapter(this, mList);
|
lv_red_packet.setAdapter(adapter);
|
setData();
|
}
|
|
@Override
|
protected void onResume() {
|
super.onResume();
|
mChangeHelper.registerReceiver();
|
MobclickAgent.onPageStart("自己明细");
|
}
|
|
@Override
|
protected void onPause() {
|
super.onPause();
|
mChangeHelper.unregisterReceiver();
|
MobclickAgent.onPageEnd("自己明细");
|
}
|
|
List<AccountDetail> mList = new ArrayList<>();
|
private int page = 1;
|
|
private void setData() {
|
SharedPreferences sp = getSharedPreferences("user", Context.MODE_PRIVATE);
|
ShoppingApi.findAccountDetailsListV2(this, sp.getString("uid", "0"), page + "", 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();
|
List<AccountDetail> list = gson.fromJson(jsonObject.optJSONObject("data").optJSONArray("list").toString(), new TypeToken<List<AccountDetail>>() {
|
}.getType());
|
if (page == 1) {
|
mList.clear();
|
}
|
mList.addAll(list);
|
adapter.notifyDataSetChanged();
|
|
if (Integer.parseInt(jsonObject.optJSONObject("data").optString("count")) > list.size()) {
|
rl_red_packet.isMore = true;
|
} else if (Integer.parseInt(jsonObject.optJSONObject("data").optString("count")) <= list.size()) {
|
rl_red_packet.isMore = false;
|
}
|
if (mList.size() == 0) {
|
rl_red_packet.setVisibility(View.GONE);
|
}
|
requestState(mList.size() == 0 ? 1 : 0);
|
} else {
|
if (mList.size() == 0)
|
requestState(2);
|
}
|
}
|
|
@Override
|
public void onFinish() {
|
super.onFinish();
|
rl_red_packet.setLoading(false);
|
rl_red_packet.setRefreshing(false);
|
}
|
|
@Override
|
public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) {
|
super.onFailure(statusCode, headers, responseString, throwable);
|
rl_red_packet.setLoading(false);
|
if (mList.size() == 0) {
|
if (NetUtils.getNetworkState(AccountDetailActivity.this).equalsIgnoreCase(NetUtils.NETWORK_NONE)) {
|
requestState(3);
|
} else {
|
requestState(2);
|
}
|
} else {
|
if (NetUtils.getNetworkState(AccountDetailActivity.this).equalsIgnoreCase(NetUtils.NETWORK_NONE)) {
|
SingleToast.showToast(AccountDetailActivity.this, "网络未连接,请检测网络设置");
|
} else {
|
SingleToast.showToast(AccountDetailActivity.this, "网络连接异常,请检测网络设置");
|
}
|
}
|
}
|
});
|
}
|
|
@Override
|
public void onClick(View v) {
|
switch (v.getId()) {
|
case R.id.tv_top_bar_left:
|
finish();
|
break;
|
case R.id.iv_net_setting:
|
startActivity(new Intent(Settings.ACTION_SETTINGS));
|
break;
|
case R.id.tv_refresh:
|
// requestState(0);
|
// setData();
|
startActivity(new Intent(Settings.ACTION_SETTINGS));
|
break;
|
}
|
}
|
|
/**
|
* 请求状态 0 数据正常展示;1 返回数据为空;2 网络请求失败;3 没有连接网络
|
*
|
* @param state
|
*/
|
private void requestState(int state) {
|
rl_red_packet.setVisibility(state == 0 ? View.VISIBLE : View.GONE);
|
ll_no_data.setVisibility(state == 1 ? View.VISIBLE : View.GONE);
|
ll_request_failture.setVisibility(state == 2 ? View.VISIBLE : View.GONE);
|
ll_no_net.setVisibility(state == 3 ? View.VISIBLE : View.GONE);
|
}
|
}
|