package com.mugua.mgvideo.ui.mine;
|
|
import java.util.ArrayList;
|
import java.util.Date;
|
import java.util.List;
|
|
import org.apache.http.Header;
|
import org.json.JSONObject;
|
|
import android.content.ContentValues;
|
import android.content.Context;
|
import android.content.SharedPreferences;
|
import android.database.Cursor;
|
import android.os.Bundle;
|
import androidx.loader.app.LoaderManager;
|
import androidx.loader.content.CursorLoader;
|
import androidx.loader.content.Loader;
|
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
|
import android.util.Log;
|
import android.view.Gravity;
|
import android.view.View;
|
import android.view.View.OnClickListener;
|
import android.view.ViewGroup;
|
import android.widget.AdapterView;
|
import android.widget.AdapterView.OnItemClickListener;
|
import android.widget.LinearLayout;
|
import android.widget.LinearLayout.LayoutParams;
|
import android.widget.ListView;
|
import android.widget.ProgressBar;
|
import android.widget.RadioGroup;
|
import android.widget.RadioGroup.OnCheckedChangeListener;
|
import android.widget.TextView;
|
import android.widget.Toast;
|
|
import com.google.gson.FieldNamingPolicy;
|
import com.google.gson.Gson;
|
import com.google.gson.GsonBuilder;
|
import com.google.gson.reflect.TypeToken;
|
import com.lcjian.library.util.RefreshLayout;
|
import com.lcjian.library.util.common.DateUtils;
|
import com.lcjian.library.util.common.StringUtils;
|
import com.mugua.mgvideo.R;
|
import com.umeng.analytics.MobclickAgent;
|
import com.yeshi.base.utils.http.BasicTextHttpResponseHandler;
|
import com.mugua.mgvideo.MGVideoAPI;
|
import com.mugua.mgvideo.db.MessageTable;
|
import com.mugua.mgvideo.entity.CommentReply;
|
import com.mugua.mgvideo.ui.BaseActivity;
|
|
import de.greenrobot.event.EventBus;
|
|
public class SystemMessageActivity extends BaseActivity implements
|
LoaderManager.LoaderCallbacks<Cursor>, OnClickListener,
|
OnCheckedChangeListener {
|
|
private TextView tv_top_bar_left;
|
private TextView tv_top_bar_middle;
|
|
RefreshLayout rl_comment_message_list;
|
|
private ListView lv_message_list;
|
|
private ListView lv_comment_message_list;
|
|
private RadioGroup rg_msg;
|
|
private View v1;
|
|
private View v2;
|
|
private View v_message_detail;
|
|
private TextView tv_empty;
|
|
private MessageAdapter mSysAdapter;
|
|
private CommentMessageAdapter mComAdapter;
|
|
private List<CommentReply> mList;
|
|
private int mComCurPage = 1;
|
|
@Override
|
protected void onCreate(Bundle arg0) {
|
super.onCreate(arg0);
|
setContentView(R.layout.system_message_activity);
|
|
tv_top_bar_left = (TextView) findViewById(R.id.tv_top_bar_left);
|
tv_top_bar_middle = (TextView) findViewById(R.id.tv_top_bar_middle);
|
tv_top_bar_left.setText("返回");
|
tv_top_bar_left.setOnClickListener(this);
|
tv_top_bar_middle.setText(R.string.mine_message);
|
|
lv_message_list = (ListView) findViewById(R.id.lv_message_list);
|
rl_comment_message_list = (RefreshLayout) findViewById(R.id.rl_comment_message);
|
lv_comment_message_list = (ListView) findViewById(R.id.lv_comment_message_list);
|
v1 = findViewById(R.id.v_1);
|
v2 = findViewById(R.id.v_2);
|
rg_msg = (RadioGroup) findViewById(R.id.rg_msg);
|
rg_msg.setOnCheckedChangeListener(this);
|
|
findViewById(R.id.fl_comment_info).setVisibility(View.VISIBLE);
|
findViewById(R.id.fl_system_info).setVisibility(View.GONE);
|
// 评论信息
|
mList = new ArrayList<CommentReply>();
|
mComAdapter = new CommentMessageAdapter(SystemMessageActivity.this,
|
mList);
|
lv_comment_message_list.addHeaderView(new View(this));
|
rl_comment_message_list.setFooter(new ProgressBar(this));
|
rl_comment_message_list.setRefreshing(true);
|
lv_comment_message_list.setAdapter(mComAdapter);
|
rl_comment_message_list.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
|
@Override
|
public void onRefresh() {
|
mComCurPage = 1;
|
getCommentMsg();
|
}
|
});
|
rl_comment_message_list.setOnLoadListener(new RefreshLayout.OnLoadListener() {
|
@Override
|
public void onLoad() {
|
mComCurPage++;
|
getCommentMsg();
|
}
|
});
|
|
v_message_detail = findViewById(R.id.v_message_detail);
|
tv_empty = (TextView) findViewById(R.id.tv_empty);
|
|
int screenWidth = getWindowManager().getDefaultDisplay().getWidth();
|
LinearLayout.LayoutParams params = new LayoutParams(screenWidth / 3, 10);
|
params.gravity = Gravity.CENTER_HORIZONTAL;
|
v1.setLayoutParams(params);
|
v2.setLayoutParams(params);
|
|
mSysAdapter = new MessageAdapter(this, null, true);//
|
getSupportLoaderManager().initLoader(0, null, this);
|
|
getCommentMsg();
|
}
|
|
@Override
|
public Loader<Cursor> onCreateLoader(int arg0, Bundle arg1) {
|
return new CursorLoader(this, MessageTable.CONTENT_URI, null, null,
|
null, MessageTable.UPDATE_TIME + " DESC");
|
}
|
|
@Override
|
public void onLoadFinished(Loader<Cursor> arg0, Cursor data) {
|
// Swap the new cursor in. (The framework will take care of closing the
|
// old cursor once we return.)
|
mSysAdapter.swapCursor(data);
|
if (data == null || data.getCount() == 0) {
|
tv_empty.setVisibility(View.VISIBLE);
|
} else {
|
tv_empty.setVisibility(View.GONE);
|
}
|
}
|
|
@Override
|
public void onLoaderReset(Loader<Cursor> arg0) {
|
// This is called when the last Cursor provided to onLoadFinished()
|
// above is about to be closed. We need to make sure we are no
|
// longer using it.
|
mSysAdapter.swapCursor(null);
|
tv_empty.setVisibility(View.VISIBLE);
|
}
|
|
@Override
|
public void onBackPressed() {
|
if (v_message_detail.getVisibility() == View.VISIBLE) {
|
lv_message_list.setVisibility(View.VISIBLE);
|
v_message_detail.setVisibility(View.GONE);
|
((ViewGroup) v_message_detail.getParent())
|
.setBackgroundColor(getResources().getColor(
|
android.R.color.transparent));
|
tv_top_bar_middle.setText(R.string.mine_message);
|
} else {
|
super.onBackPressed();
|
}
|
}
|
|
@Override
|
public void onClick(View v) {
|
switch (v.getId()) {
|
case R.id.tv_top_bar_left: {
|
onBackPressed();
|
}
|
break;
|
default:
|
break;
|
}
|
}
|
|
@Override
|
public void onCheckedChanged(RadioGroup group, int checkedId) {
|
switch (checkedId) {
|
case R.id.rb_comment_msg:
|
mComCurPage = 1;
|
findViewById(R.id.v_1).setVisibility(View.VISIBLE);
|
findViewById(R.id.v_2).setVisibility(View.GONE);
|
findViewById(R.id.fl_comment_info).setVisibility(View.VISIBLE);
|
findViewById(R.id.fl_system_info).setVisibility(View.GONE);
|
getCommentMsg();
|
break;
|
case R.id.rb_system_msg:
|
findViewById(R.id.v_1).setVisibility(View.GONE);
|
findViewById(R.id.v_2).setVisibility(View.VISIBLE);
|
findViewById(R.id.fl_comment_info).setVisibility(View.GONE);
|
findViewById(R.id.fl_system_info).setVisibility(View.VISIBLE);
|
getSystemMsg();
|
break;
|
|
default:
|
break;
|
}
|
}
|
|
/**
|
* 获取评论消息
|
*/
|
private void getCommentMsg() {
|
SharedPreferences preferences = getSharedPreferences("user",
|
Context.MODE_PRIVATE);
|
if (!StringUtils.isEmpty(preferences.getString("LoginUid", "")) ? false
|
: true) {
|
Toast.makeText(SystemMessageActivity.this, "登陆后才能查看评论消息哦!!",
|
Toast.LENGTH_SHORT).show();
|
rl_comment_message_list.setRefreshing(false);
|
rl_comment_message_list.setLoading(false);
|
return;
|
}
|
MGVideoAPI.getMyCommentList(SystemMessageActivity.this,
|
preferences.getString("LoginUid", ""), mComCurPage + "",
|
new BasicTextHttpResponseHandler() {
|
|
@Override
|
public void onSuccessPerfect(int statusCode,
|
Header[] headers, JSONObject jsonObject)
|
throws Exception {
|
if (jsonObject.optBoolean("IsPost")) {
|
Gson gson = new GsonBuilder().setFieldNamingPolicy(
|
FieldNamingPolicy.UPPER_CAMEL_CASE)
|
.create();
|
List<CommentReply> comments = gson.fromJson(
|
jsonObject.getJSONObject("Data")
|
.getJSONArray("data").toString(),
|
new TypeToken<List<CommentReply>>() {
|
}.getType());
|
|
if (mComCurPage == 1) {
|
mList.clear();
|
}
|
mList.addAll(comments);
|
mComAdapter.notifyDataSetChanged();
|
if ((comments == null || comments.size() == 0)
|
&& mComCurPage > 1) {
|
Toast.makeText(SystemMessageActivity.this,
|
"没有更多了!!", Toast.LENGTH_SHORT).show();
|
mComCurPage--;
|
}
|
}
|
}
|
|
@Override
|
public void onFailure(int statusCode, Header[] headers,
|
String responseString, Throwable throwable) {
|
super.onFailure(statusCode, headers, responseString,
|
throwable);
|
Log.i("result", "获取评论数据失败");
|
}
|
|
@Override
|
public void onFinish() {
|
super.onFinish();
|
rl_comment_message_list.setRefreshing(false);
|
rl_comment_message_list.setLoading(false);
|
}
|
});
|
}
|
|
/**
|
* 获取系统消息
|
*/
|
private void getSystemMsg() {
|
lv_message_list.setAdapter(mSysAdapter);
|
lv_message_list.setOnItemClickListener(new OnItemClickListener() {
|
|
@Override
|
public void onItemClick(AdapterView<?> parent, View view,
|
int position, long id) {
|
|
ContentValues values = new ContentValues();
|
values.put(MessageTable.MESSAGE_STATUS, 1);
|
getContentResolver().update(MessageTable.CONTENT_URI, values,
|
MessageTable._ID + " = ? ",
|
new String[]{String.valueOf(id)});
|
|
Cursor cursor = (Cursor) parent.getItemAtPosition(position);
|
((TextView) v_message_detail.findViewById(R.id.tv_date)).setText(DateUtils
|
.convertDateToStr(new Date(cursor.getLong(cursor
|
.getColumnIndex(MessageTable.CREATE_TIME)))));
|
((TextView) v_message_detail.findViewById(R.id.tv_time)).setText(DateUtils.convertDateToStr(
|
new Date(cursor.getLong(cursor
|
.getColumnIndex(MessageTable.CREATE_TIME))),
|
"HH:mm"));
|
((TextView) v_message_detail.findViewById(R.id.tv_text))
|
.setSingleLine(false);
|
((TextView) v_message_detail.findViewById(R.id.tv_text))
|
.setText(cursor.getString(cursor
|
.getColumnIndex(MessageTable.MESSAGE_CONTENT)));
|
lv_message_list.setVisibility(View.GONE);
|
v_message_detail.setVisibility(View.VISIBLE);
|
((ViewGroup) v_message_detail.getParent())
|
.setBackgroundColor(getResources().getColor(
|
android.R.color.white));
|
tv_top_bar_middle.setText(cursor.getString(cursor
|
.getColumnIndex(MessageTable.MESSAGE_TITLE)));
|
cursor.close();
|
|
}
|
});
|
}
|
|
@Override
|
public void onResume() {
|
super.onResume();
|
EventBus.getDefault().register(this);
|
}
|
|
@Override
|
public void onPause() {
|
super.onPause();
|
EventBus.getDefault().unregister(this);
|
}
|
|
@Override
|
protected void onDestroy() {
|
super.onDestroy();
|
}
|
|
// EventBus事件响应
|
public void onEventMainThread(Integer e) {
|
if (e == 1) {
|
getCommentMsg();
|
}
|
}
|
}
|