Commit 879a922c by sunhongmin

first commit

0 parents
Showing 1000 changed files with 4860 additions and 0 deletions

Too many changes to show.

To preserve performance only 1000 of 1000+ files are displayed.

*.iml
.gradle
/local.properties
/.idea/workspace.xml
/.idea/libraries
.DS_Store
/build
/captures
.externalNativeBuild
/emojicon/build
.idea/caches/
.idea/encodings.xml
.idea/gradle.xml
.idea/misc.xml
.idea/modules.xml
.idea/runConfigurations.xml
.idea/vcs.xml
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<resourceExtensions />
<wildcardResourcePatterns>
<entry name="!?*.java" />
<entry name="!?*.form" />
<entry name="!?*.class" />
<entry name="!?*.groovy" />
<entry name="!?*.scala" />
<entry name="!?*.flex" />
<entry name="!?*.kt" />
<entry name="!?*.clj" />
<entry name="!?*.aj" />
</wildcardResourcePatterns>
<annotationProcessing>
<profile default="true" name="Default" enabled="false">
<processorPath useClasspath="true" />
</profile>
</annotationProcessing>
</component>
</project>
\ No newline at end of file
<component name="CopyrightManager">
<settings default="" />
</component>
\ No newline at end of file
apply plugin: 'com.android.application'
apply plugin: 'com.mob.sdk'
apply plugin: 'bugly'
bugly {
appId = '854e85beee' // 注册时分配的App ID
appKey = 'fd62b5b0-4fe1-4bc9-8948-e1bfadb94bbf' // 注册时分配的App Key
}
android {
compileSdkVersion 26
buildToolsVersion "27.0.0"
defaultConfig {
manifestPlaceholders = [appLabel: "@string/app_name"]
applicationId "com.chudiangameplay.android"
minSdkVersion 16
targetSdkVersion 26
versionCode rootProject.ext.versionCode
versionName rootProject.ext.versionName
multiDexEnabled true
// ndk {
// //设置支持的SO库架构
// abiFilters 'x86', 'armeabi-v7a', 'arm64-v8a'
// }
// ndk {
// // 加了其他的文件夹(比如 armeabi-v7a,x86等)可能会出问题
// abiFilters "armeabi-v7a" //,"x86"
// }
ndk {
abiFilters "armeabi", "armeabi-v7a"
}
javaCompileOptions {
annotationProcessorOptions {
arguments = [moduleName: project.getName()]
}
}
}
signingConfigs {
release {
storeFile file('peiwan.jks')
storePassword '123456'
keyAlias 'peiwan'
keyPassword '123456'
}
debug {
storeFile file('peiwan.jks')
storePassword '123456'
keyAlias 'peiwan'
keyPassword '123456'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
repositories {
flatDir {
dirs 'libs'
dirs project(':hmspush').file('libs')
}
}
buildTypes {
release {
manifestPlaceholders = [
bugly_app_version: rootProject.ext.versionName,
EASEMOB_APPKEY : "1183180421228734#game-play"
]
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
}
debug {
manifestPlaceholders = [
bugly_app_version: rootProject.ext.versionName + "debug",
EASEMOB_APPKEY : "1183180421228734#game-test"
]
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
// signingConfig signingConfigs.release
}
}
productFlavors {
OFFICIAL {
manifestPlaceholders = [appLabel: "@string/app_name"]
}
OPPO {
manifestPlaceholders = [appLabel: "@string/app_name_oppo"]
}
HUAWEI {
manifestPlaceholders = [appLabel: "@string/app_name_huawei"]
}
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile project(':mylibrary')
// compile project(':imlib')
compile project(':imagecrop')
compile project(':emojicon')
compile project(':pullToRefresh')
compile project(':videoplayerlib')
compile project(':player:aliyunPlayer')
compile project(':netdiag')
compile files('libs/org.apache.http.legacy.jar')
//视频截帧
compile files('libs/OpenInstall_v2.2.2.jar')
compile files('libs/hyphenatechat_3.5.5.jar')
compile files('libs/mi_push_v3.6.12.jar')
compile files('libs/oppo_push_v1.0.1.jar')
// compile files('libs/vivo_push_v2.3.1.jar') //vivo证书申请不了
compile project(':hmspush')
compile 'com.github.wseemann:FFmpegMediaMetadataRetriever:1.0.14'
compile 'com.tencent.bugly:crashreport:3.0.0'
compile 'com.meizu.flyme.internet:push-internal:3.7.0@aar'
compile 'com.android.support:support-v4:26.+'
compile 'com.github.yyued:SVGAPlayer-Android:2.4.7'
compile files('libs/agora-rtm-sdk.jar')
}
MobSDK {
appKey "d580ad56b4b5"
appSecret "7fcae59a62342e7e2759e9e397c82bdd"
ShareSDK {
//平台配置信息
devInfo {
Wechat {
appId "wx051631e81ea04ba0"
appSecret "49c81a99b6b45ff167bf986b667b2bcd"
BypassApproval false
}
WechatMoments {
appId "wx051631e81ea04ba0"
appSecret "49c81a99b6b45ff167bf986b667b2bcd"
BypassApproval false
}
QQ {
appId "1108014974"
appKey "fykCvAND9bPOxzdj"
}
QZone {
appId "1108014974"
appKey "fykCvAND9bPOxzdj"
}
}
}
}
\ No newline at end of file
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
//
// Agora Engine SDK
//
// Created by Sting Feng in 2017-11.
// Copyright (c) 2017 Agora.io. All rights reserved.
//
#ifndef AGORA_BASE_H
#define AGORA_BASE_H
#include <stddef.h>
#include <stdio.h>
#include <stdarg.h>
#if defined(_WIN32)
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#define AGORA_CALL __cdecl
#if defined(AGORARTC_EXPORT)
#define AGORA_API extern "C" __declspec(dllexport)
#else
#define AGORA_API extern "C" __declspec(dllimport)
#endif
#elif defined(__APPLE__)
#define AGORA_API __attribute__((visibility("default"))) extern "C"
#define AGORA_CALL
#elif defined(__ANDROID__) || defined(__linux__)
#define AGORA_API extern "C" __attribute__((visibility("default")))
#define AGORA_CALL
#else
#define AGORA_API extern "C"
#define AGORA_CALL
#endif
namespace agora {
namespace util {
template<class T>
class AutoPtr {
typedef T value_type;
typedef T* pointer_type;
public:
AutoPtr(pointer_type p=0)
:ptr_(p)
{}
~AutoPtr() {
if (ptr_)
ptr_->release();
}
operator bool() const { return ptr_ != (pointer_type)0; }
value_type& operator*() const {
return *get();
}
pointer_type operator->() const {
return get();
}
pointer_type get() const {
return ptr_;
}
pointer_type release() {
pointer_type tmp = ptr_;
ptr_ = 0;
return tmp;
}
void reset(pointer_type ptr = 0) {
if (ptr != ptr_ && ptr_)
ptr_->release();
ptr_ = ptr;
}
template<class C1, class C2>
bool queryInterface(C1* c, C2 iid) {
pointer_type p = NULL;
if (c && !c->queryInterface(iid, (void**)&p))
{
reset(p);
}
return p != NULL;
}
private:
AutoPtr(const AutoPtr&);
AutoPtr& operator=(const AutoPtr&);
private:
pointer_type ptr_;
};
class IString {
public:
virtual bool empty() const = 0;
virtual const char* c_str() = 0;
virtual const char* data() = 0;
virtual size_t length() = 0;
virtual void release() = 0;
};
typedef AutoPtr<IString> AString;
}//namespace util
enum INTERFACE_ID_TYPE
{
AGORA_IID_AUDIO_DEVICE_MANAGER = 1,
AGORA_IID_VIDEO_DEVICE_MANAGER = 2,
AGORA_IID_RTC_ENGINE_PARAMETER = 3,
AGORA_IID_MEDIA_ENGINE = 4,
AGORA_IID_SIGNALING_ENGINE = 8,
};
enum WARN_CODE_TYPE
{
WARN_INVALID_VIEW = 8,
WARN_INIT_VIDEO = 16,
WARN_PENDING = 20,
WARN_NO_AVAILABLE_CHANNEL = 103,
WARN_LOOKUP_CHANNEL_TIMEOUT = 104,
WARN_LOOKUP_CHANNEL_REJECTED = 105,
WARN_OPEN_CHANNEL_TIMEOUT = 106,
WARN_OPEN_CHANNEL_REJECTED = 107,
// sdk: 100~1000
WARN_SWITCH_LIVE_VIDEO_TIMEOUT = 111,
WARN_SET_CLIENT_ROLE_TIMEOUT = 118,
WARN_OPEN_CHANNEL_INVALID_TICKET = 121,
WARN_OPEN_CHANNEL_TRY_NEXT_VOS = 122,
WARN_AUDIO_MIXING_OPEN_ERROR = 701,
WARN_ADM_RUNTIME_PLAYOUT_WARNING = 1014,
WARN_ADM_RUNTIME_RECORDING_WARNING = 1016,
WARN_ADM_RECORD_AUDIO_SILENCE = 1019,
WARN_ADM_PLAYOUT_MALFUNCTION = 1020,
WARN_ADM_RECORD_MALFUNCTION = 1021,
WARN_ADM_IOS_CATEGORY_NOT_PLAYANDRECORD = 1029,
WARN_ADM_IOS_SAMPLERATE_CHANGE = 1030,
WARN_ADM_RECORD_AUDIO_LOWLEVEL = 1031,
WARN_ADM_PLAYOUT_AUDIO_LOWLEVEL = 1032,
WARN_ADM_WINDOWS_NO_DATA_READY_EVENT = 1040,
WARN_APM_HOWLING = 1051,
WARN_ADM_GLITCH_STATE = 1052,
WARN_ADM_IMPROPER_SETTINGS = 1053,
WARN_ADM_WIN_CORE_NO_RECORDING_DEVICE = 1322,
WARN_ADM_WIN_CORE_NO_PLAYOUT_DEVICE = 1323,
WARN_ADM_WIN_CORE_IMPROPER_CAPTURE_RELEASE = 1324,
};
enum ERROR_CODE_TYPE
{
ERR_OK = 0,
//1~1000
ERR_FAILED = 1,
ERR_INVALID_ARGUMENT = 2,
ERR_NOT_READY = 3,
ERR_NOT_SUPPORTED = 4,
ERR_REFUSED = 5,
ERR_BUFFER_TOO_SMALL = 6,
ERR_NOT_INITIALIZED = 7,
ERR_NO_PERMISSION = 9,
ERR_TIMEDOUT = 10,
ERR_CANCELED = 11,
ERR_TOO_OFTEN = 12,
ERR_BIND_SOCKET = 13,
ERR_NET_DOWN = 14,
ERR_NET_NOBUFS = 15,
ERR_JOIN_CHANNEL_REJECTED = 17,
ERR_LEAVE_CHANNEL_REJECTED = 18,
ERR_ALREADY_IN_USE = 19,
ERR_ABORTED = 20,
ERR_INIT_NET_ENGINE = 21,
ERR_RESOURCE_LIMITED = 22,
ERR_INVALID_APP_ID = 101,
ERR_INVALID_CHANNEL_NAME = 102,
ERR_TOKEN_EXPIRED = 109,
ERR_INVALID_TOKEN = 110,
ERR_CONNECTION_INTERRUPTED = 111, // only used in web sdk
ERR_CONNECTION_LOST = 112, // only used in web sdk
ERR_NOT_IN_CHANNEL = 113,
ERR_SIZE_TOO_LARGE = 114,
ERR_BITRATE_LIMIT = 115,
ERR_TOO_MANY_DATA_STREAMS = 116,
ERR_STREAM_MESSAGE_TIMEOUT = 117,
ERR_SET_CLIENT_ROLE_NOT_AUTHORIZED = 119,
ERR_DECRYPTION_FAILED = 120,
ERR_CLIENT_IS_BANNED_BY_SERVER = 123,
ERR_WATERMARK_PARAM = 124,
ERR_WATERMARK_PATH = 125,
ERR_WATERMARK_PNG = 126,
ERR_WATERMARKR_INFO = 127,
ERR_WATERMARK_ARGB = 128,
ERR_WATERMARK_READ = 129,
ERR_ENCRYPTED_STREAM_NOT_ALLOWED_PUBLISH = 130,
//signaling: 400~600
ERR_LOGOUT_OTHER = 400, //
ERR_LOGOUT_USER = 401, // logout by user
ERR_LOGOUT_NET = 402, // network failure
ERR_LOGOUT_KICKED = 403, // login in other device
ERR_LOGOUT_PACKET = 404, //
ERR_LOGOUT_TOKEN_EXPIRED = 405, // token expired
ERR_LOGOUT_OLDVERSION = 406, //
ERR_LOGOUT_TOKEN_WRONG = 407,
ERR_LOGOUT_ALREADY_LOGOUT = 408,
ERR_LOGIN_OTHER = 420,
ERR_LOGIN_NET = 421,
ERR_LOGIN_FAILED = 422,
ERR_LOGIN_CANCELED = 423,
ERR_LOGIN_TOKEN_EXPIRED = 424,
ERR_LOGIN_OLD_VERSION = 425,
ERR_LOGIN_TOKEN_WRONG = 426,
ERR_LOGIN_TOKEN_KICKED = 427,
ERR_LOGIN_ALREADY_LOGIN = 428,
ERR_JOIN_CHANNEL_OTHER = 440,
ERR_SEND_MESSAGE_OTHER = 440,
ERR_SEND_MESSAGE_TIMEOUT = 441,
ERR_QUERY_USERNUM_OTHER = 450,
ERR_QUERY_USERNUM_TIMEOUT = 451,
ERR_QUERY_USERNUM_BYUSER = 452,
ERR_LEAVE_CHANNEL_OTHER = 460,
ERR_LEAVE_CHANNEL_KICKED = 461,
ERR_LEAVE_CHANNEL_BYUSER = 462,
ERR_LEAVE_CHANNEL_LOGOUT = 463,
ERR_LEAVE_CHANNEL_DISCONNECTED = 464,
ERR_INVITE_OTHER = 470,
ERR_INVITE_REINVITE = 471,
ERR_INVITE_NET = 472,
ERR_INVITE_PEER_OFFLINE = 473,
ERR_INVITE_TIMEOUT = 474,
ERR_INVITE_CANT_RECV = 475,
//1001~2000
ERR_LOAD_MEDIA_ENGINE = 1001,
ERR_START_CALL = 1002,
ERR_START_CAMERA = 1003,
ERR_START_VIDEO_RENDER = 1004,
ERR_ADM_GENERAL_ERROR = 1005,
ERR_ADM_JAVA_RESOURCE = 1006,
ERR_ADM_SAMPLE_RATE = 1007,
ERR_ADM_INIT_PLAYOUT = 1008,
ERR_ADM_START_PLAYOUT = 1009,
ERR_ADM_STOP_PLAYOUT = 1010,
ERR_ADM_INIT_RECORDING = 1011,
ERR_ADM_START_RECORDING = 1012,
ERR_ADM_STOP_RECORDING = 1013,
ERR_ADM_RUNTIME_PLAYOUT_ERROR = 1015,
ERR_ADM_RUNTIME_RECORDING_ERROR = 1017,
ERR_ADM_RECORD_AUDIO_FAILED = 1018,
ERR_ADM_INIT_LOOPBACK = 1022,
ERR_ADM_START_LOOPBACK = 1023,
ERR_ADM_NO_PERMISSION = 1027,
ERR_ADM_RECORD_AUDIO_IS_ACTIVE = 1033,
ERR_ADM_ANDROID_JNI_JAVA_RESOURCE = 1101,
ERR_ADM_ANDROID_JNI_NO_RECORD_FREQUENCY = 1108,
ERR_ADM_ANDROID_JNI_NO_PLAYBACK_FREQUENCY = 1109,
ERR_ADM_ANDROID_JNI_JAVA_START_RECORD = 1111,
ERR_ADM_ANDROID_JNI_JAVA_START_PLAYBACK = 1112,
ERR_ADM_ANDROID_JNI_JAVA_RECORD_ERROR = 1115,
ERR_ADM_ANDROID_OPENSL_CREATE_ENGINE = 1151,
ERR_ADM_ANDROID_OPENSL_CREATE_AUDIO_RECORDER = 1153,
ERR_ADM_ANDROID_OPENSL_START_RECORDER_THREAD = 1156,
ERR_ADM_ANDROID_OPENSL_CREATE_AUDIO_PLAYER = 1157,
ERR_ADM_ANDROID_OPENSL_START_PLAYER_THREAD = 1160,
ERR_ADM_IOS_INPUT_NOT_AVAILABLE = 1201,
ERR_ADM_IOS_ACTIVATE_SESSION_FAIL = 1206,
ERR_ADM_IOS_VPIO_INIT_FAIL = 1210,
ERR_ADM_IOS_VPIO_REINIT_FAIL = 1213,
ERR_ADM_IOS_VPIO_RESTART_FAIL = 1214,
ERR_ADM_IOS_SET_RENDER_CALLBACK_FAIL = 1219,
ERR_ADM_IOS_SESSION_SAMPLERATR_ZERO = 1221,
ERR_ADM_WIN_CORE_INIT = 1301,
ERR_ADM_WIN_CORE_INIT_RECORDING = 1303,
ERR_ADM_WIN_CORE_INIT_PLAYOUT = 1306,
ERR_ADM_WIN_CORE_INIT_PLAYOUT_NULL = 1307,
ERR_ADM_WIN_CORE_START_RECORDING = 1309,
ERR_ADM_WIN_CORE_CREATE_REC_THREAD = 1311,
ERR_ADM_WIN_CORE_CAPTURE_NOT_STARTUP = 1314,
ERR_ADM_WIN_CORE_CREATE_RENDER_THREAD = 1319,
ERR_ADM_WIN_CORE_RENDER_NOT_STARTUP = 1320,
ERR_ADM_WIN_CORE_NO_RECORDING_DEVICE = 1322,
ERR_ADM_WIN_CORE_NO_PLAYOUT_DEVICE = 1323,
ERR_ADM_WIN_WAVE_INIT = 1351,
ERR_ADM_WIN_WAVE_INIT_RECORDING = 1353,
ERR_ADM_WIN_WAVE_INIT_MICROPHONE = 1354,
ERR_ADM_WIN_WAVE_INIT_PLAYOUT = 1355,
ERR_ADM_WIN_WAVE_INIT_SPEAKER = 1356,
ERR_ADM_WIN_WAVE_START_RECORDING = 1357,
ERR_ADM_WIN_WAVE_START_PLAYOUT = 1358,
ERR_ADM_NO_RECORDING_DEVICE = 1359,
ERR_ADM_NO_PLAYOUT_DEVICE = 1360,
// VDM error code starts from 1500
ERR_VDM_CAMERA_NOT_AUTHORIZED = 1501,
// VCM error code starts from 1600
ERR_VCM_UNKNOWN_ERROR = 1600,
ERR_VCM_ENCODER_INIT_ERROR = 1601,
ERR_VCM_ENCODER_ENCODE_ERROR = 1602,
ERR_VCM_ENCODER_SET_ERROR = 1603,
};
enum LOG_FILTER_TYPE
{
LOG_FILTER_OFF = 0,
LOG_FILTER_DEBUG = 0x080f,
LOG_FILTER_INFO = 0x000f,
LOG_FILTER_WARN = 0x000e,
LOG_FILTER_ERROR = 0x000c,
LOG_FILTER_CRITICAL = 0x0008,
LOG_FILTER_MASK = 0x80f,
};
} // namespace agora
#endif
#ifndef AGORA_MEDIA_ENGINE_H
#define AGORA_MEDIA_ENGINE_H
#if defined _WIN32 || defined __CYGWIN__
typedef __int64 int64_t;
typedef unsigned __int64 uint64_t;
#else
#include <stdint.h>
#endif
namespace agora
{
namespace media
{
enum MEDIA_SOURCE_TYPE {
AUDIO_PLAYOUT_SOURCE = 0,
AUDIO_RECORDING_SOURCE = 1,
};
class IAudioFrameObserver
{
public:
enum AUDIO_FRAME_TYPE {
FRAME_TYPE_PCM16 = 0, //PCM 16bit little endian
};
struct AudioFrame {
AUDIO_FRAME_TYPE type;
int samples; //number of samples in this frame
int bytesPerSample; //number of bytes per sample: 2 for PCM16
int channels; //number of channels (data are interleaved if stereo)
int samplesPerSec; //sampling rate
void* buffer; //data buffer
int64_t renderTimeMs;
};
public:
virtual bool onRecordAudioFrame(AudioFrame& audioFrame) = 0;
virtual bool onPlaybackAudioFrame(AudioFrame& audioFrame) = 0;
virtual bool onMixedAudioFrame(AudioFrame& audioFrame) = 0;
virtual bool onPlaybackAudioFrameBeforeMixing(unsigned int uid, AudioFrame& audioFrame) = 0;
};
class IVideoFrameObserver
{
public:
enum VIDEO_FRAME_TYPE {
FRAME_TYPE_YUV420 = 0, //YUV 420 format
};
struct VideoFrame {
VIDEO_FRAME_TYPE type;
int width; //width of video frame
int height; //height of video frame
int yStride; //stride of Y data buffer
int uStride; //stride of U data buffer
int vStride; //stride of V data buffer
void* yBuffer; //Y data buffer
void* uBuffer; //U data buffer
void* vBuffer; //V data buffer
int rotation; // rotation of this frame (0, 90, 180, 270)
int64_t renderTimeMs;
};
public:
virtual bool onCaptureVideoFrame(VideoFrame& videoFrame) = 0;
virtual bool onRenderVideoFrame(unsigned int uid, VideoFrame& videoFrame) = 0;
};
class IVideoFrame
{
public:
enum PLANE_TYPE {
Y_PLANE = 0,
U_PLANE = 1,
V_PLANE = 2,
NUM_OF_PLANES = 3
};
enum VIDEO_TYPE {
VIDEO_TYPE_UNKNOWN = 0,
VIDEO_TYPE_I420 = 1,
VIDEO_TYPE_IYUV = 2,
VIDEO_TYPE_RGB24 = 3,
VIDEO_TYPE_ABGR = 4,
VIDEO_TYPE_ARGB = 5,
VIDEO_TYPE_ARGB4444 = 6,
VIDEO_TYPE_RGB565 = 7,
VIDEO_TYPE_ARGB1555 = 8,
VIDEO_TYPE_YUY2 = 9,
VIDEO_TYPE_YV12 = 10,
VIDEO_TYPE_UYVY = 11,
VIDEO_TYPE_MJPG = 12,
VIDEO_TYPE_NV21 = 13,
VIDEO_TYPE_NV12 = 14,
VIDEO_TYPE_BGRA = 15,
VIDEO_TYPE_RGBA = 16,
};
virtual void release() = 0;
virtual const unsigned char* buffer(PLANE_TYPE type) const = 0;
// Copy frame: If required size is bigger than allocated one, new buffers of
// adequate size will be allocated.
// Return value: 0 on success ,-1 on error.
virtual int copyFrame(IVideoFrame** dest_frame) const = 0;
// Convert frame
// Input:
// - src_frame : Reference to a source frame.
// - dst_video_type : Type of output video.
// - dst_sample_size : Required only for the parsing of MJPG.
// - dst_frame : Pointer to a destination frame.
// Return value: 0 if OK, < 0 otherwise.
// It is assumed that source and destination have equal height.
virtual int convertFrame(VIDEO_TYPE dst_video_type, int dst_sample_size, unsigned char* dst_frame) const = 0;
// Get allocated size per plane.
virtual int allocated_size(PLANE_TYPE type) const = 0;
// Get allocated stride per plane.
virtual int stride(PLANE_TYPE type) const = 0;
// Get frame width.
virtual int width() const = 0;
// Get frame height.
virtual int height() const = 0;
// Get frame timestamp (90kHz).
virtual unsigned int timestamp() const = 0;
// Get render time in milliseconds.
virtual int64_t render_time_ms() const = 0;
// Return true if underlying plane buffers are of zero size, false if not.
virtual bool IsZeroSize() const = 0;
};
class IExternalVideoRenderCallback
{
public:
virtual void onViewSizeChanged(int width, int height) = 0;
virtual void onViewDestroyed() = 0;
};
struct ExternalVideoRenerContext
{
IExternalVideoRenderCallback* renderCallback;
void* view;
int renderMode;
int zOrder;
float left;
float top;
float right;
float bottom;
};
class IExternalVideoRender
{
public:
virtual void release() = 0;
virtual int initialize() = 0;
virtual int deliverFrame(const IVideoFrame& videoFrame, int rotation, bool mirrored) = 0;
};
class IExternalVideoRenderFactory
{
public:
virtual IExternalVideoRender* createRenderInstance(const ExternalVideoRenerContext& context) = 0;
};
class IMediaEngine
{
public:
virtual void release() = 0;
virtual int registerAudioFrameObserver(IAudioFrameObserver* observer) = 0;
virtual int registerVideoFrameObserver(IVideoFrameObserver* observer) = 0;
virtual int registerVideoRenderFactory(IExternalVideoRenderFactory* factory) = 0;
virtual int pushAudioFrame(MEDIA_SOURCE_TYPE type, IAudioFrameObserver::AudioFrame *frame, bool wrap = false){ return -1; }
};
} //media
} //agora
#endif //AGORA_MEDIA_ENGINE_H
//
// Agora SDK
//
// Created by Sting Feng in 2017-11.
// Copyright (c) 2017 Agora.io. All rights reserved.
//
#ifndef AGORA_SERVICE_H
#define AGORA_SERVICE_H
#include "AgoraBase.h"
namespace agora {
namespace rtc {
class IRtcEngine;
}
namespace signaling {
class ISignalingEngine;
}
namespace base {
struct AgoraServiceContext
{
};
class IAgoraService
{
public:
virtual void release() = 0;
/**
* initialize the engine
* @param [in] context
* the RTC engine context
* @return return 0 if success or an error code
*/
virtual int initialize(const AgoraServiceContext& context) = 0;
/**
* get the version information of the SDK
* @param [in, out] build
* the build number
* @return return the version number string in char format
*/
virtual const char* getVersion(int* build) = 0;
virtual rtc::IRtcEngine* createRtcEngine() = 0;
virtual signaling::ISignalingEngine* createSignalingEngine() = 0;
};
} //namespace base
} // namespace agora
/**
* to get the version number of the SDK
* @param [in, out] build
* the build number of Agora SDK
* @return returns the string of the version of the SDK
*/
AGORA_API const char* AGORA_CALL getAgoraSdkVersion(int* build);
/**
* create the RTC engine object and return the pointer
* @param [in] err
* the error code
* @return returns the description of the error code
*/
AGORA_API const char* AGORA_CALL getAgoraSdkErrorDescription(int err);
/**
* create the Agora Service object and return the pointer
* @return returns pointer of the Agora Service object
*/
AGORA_API agora::base::IAgoraService* AGORA_CALL createAgoraService();
AGORA_API int AGORA_CALL setAgoraSdkExternalSymbolLoader(void* (*func)(const char* symname));
#endif
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
# Add project specific ProGuard rules here.
# By default, the flags in this file are appended to flags specified
# in D:\ADT\sdk1/tools/proguard/proguard-android.txt
# You can edit the include path and order by changing the proguardFiles
# directive in build.gradle.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html
# Add any project specific keep options here:
# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *;
#}
# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable
# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile
-dontwarn com.tencent.bugly.**
-keep public class com.tencent.bugly.**{*;}
-keep class io.agora.**{*;}
-keep class com.squareup.wire.** { *; }
-keep class com.opensource.svgaplayer.proto.** { *; }
This diff could not be displayed because it is too large.
package com.chudiangameplay.android;
import android.content.Context;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.os.Build;
import android.os.Environment;
import android.os.Looper;
import android.util.Log;
import android.widget.Toast;
import java.io.File;
import java.io.FileOutputStream;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.io.Writer;
import java.lang.Thread.UncaughtExceptionHandler;
import java.lang.reflect.Field;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
/**
* UncaughtException处理类,当程序发生Uncaught异常的时候,有该类来接管程序,并记录发送错误报告.
*
* @author user
*/
public class CrashHandler implements UncaughtExceptionHandler {
public static final String TAG = "CrashHandler";
// CrashHandler 实例
private static CrashHandler INSTANCE = new CrashHandler();
// 程序的 Context 对象
private Context mContext;
// 系统默认的 UncaughtException 处理类
private UncaughtExceptionHandler mDefaultHandler;
// 用来存储设备信息和异常信息
private Map<String, String> infos = new HashMap<String, String>();
// 用于格式化日期,作为日志文件名的一部分
private DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss");
/**
* 保证只有一个 CrashHandler 实例
*/
private CrashHandler() {
}
/**
* 获取 CrashHandler 实例 ,单例模式
*/
public static CrashHandler getInstance() {
return INSTANCE;
}
/**
* 初始化
*
* @param context
*/
public void init(Context context) {
mContext = context;
// 获取系统默认的 UncaughtException 处理器
mDefaultHandler = Thread.getDefaultUncaughtExceptionHandler();
// 设置该 CrashHandler 为程序的默认处理器
Thread.setDefaultUncaughtExceptionHandler(this);
}
/**
* 当 UncaughtException 发生时会转入该函数来处理
*/
@Override
public void uncaughtException(Thread thread, Throwable ex) {
if (!handleException(ex) && mDefaultHandler != null) {
// 如果用户没有处理则让系统默认的异常处理器来处理
mDefaultHandler.uncaughtException(thread, ex);
} else {
ex.printStackTrace();
Log.e(TAG, "error : "+ ex.getMessage());
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
}
// 退出程序
android.os.Process.killProcess(android.os.Process.myPid());
// System.exit(1);
}
}
/**
* 自定义错误处理,收集错误信息,发送错误报告等操作均在此完成
*
* @param ex
* @return true:如果处理了该异常信息;否则返回 false
*/
private boolean handleException(final Throwable ex) {
if (ex == null) {
return false;
}
// 使用 Toast 来显示异常信息
new Thread() {
@Override
public void run() {
Looper.prepare();
ex.printStackTrace();
Toast.makeText(mContext, "很抱歉,程序出现异常,即将退出。", Toast.LENGTH_LONG).show();
// CommToast.showToast(HaiDouApplication.applicationContext, "很抱歉,程序出现异常,即将退出。");
Looper.loop();
}
}.start();
// 收集设备参数信息
collectDeviceInfo(mContext);
// 保存日志文件
saveCrashInfo2File(ex);
return true;
}
/**
* 收集设备参数信息
*
* @param ctx
*/
public void collectDeviceInfo(Context ctx) {
try {
PackageManager pm = ctx.getPackageManager();
PackageInfo pi = pm.getPackageInfo(ctx.getPackageName(), PackageManager.GET_ACTIVITIES);
if (pi != null) {
String versionName = pi.versionName == null ? "null" : pi.versionName;
String versionCode = pi.versionCode + "";
infos.put("versionName", versionName);
infos.put("versionCode", versionCode);
}
} catch (NameNotFoundException e) {
Log.e(TAG, "an error occured when collect package info", e);
}
Field[] fields = Build.class.getDeclaredFields();
for (Field field : fields) {
try {
field.setAccessible(true);
infos.put(field.getName(), field.get(null).toString());
Log.d(TAG, field.getName() + " : " + field.get(null));
} catch (Exception e) {
Log.e(TAG, "an error occured when collect crash info", e);
}
}
}
/**
* 保存错误信息到文件中
* *
*
* @param ex
* @return 返回文件名称, 便于将文件传送到服务器
*/
private String saveCrashInfo2File(Throwable ex) {
StringBuffer sb = new StringBuffer();
for (Map.Entry<String, String> entry : infos.entrySet()) {
String key = entry.getKey();
String value = entry.getValue();
sb.append(key + "=" + value + "\n");
}
Writer writer = new StringWriter();
PrintWriter printWriter = new PrintWriter(writer);
ex.printStackTrace(printWriter);
Throwable cause = ex.getCause();
while (cause != null) {
cause.printStackTrace(printWriter);
cause = cause.getCause();
}
printWriter.close();
String result = writer.toString();
sb.append(result);
try {
long timestamp = System.currentTimeMillis();
String time = formatter.format(new Date());
String fileName = "crash-" + time + "_" + timestamp + ".log";
String path = getDiskCacheRootDir() + "/crash";
File dir = new File(path);
if (!dir.exists()) {
dir.mkdirs();
}
FileOutputStream fos = new FileOutputStream(path + fileName);
fos.write(sb.toString().getBytes());
fos.close();
return fileName;
} catch (Exception e) {
Log.e(TAG, "an error occured while writing file...", e);
}
return null;
}
/**
* 获取app的根目录
*
* @return 文件缓存根路径
*/
public static String getDiskCacheRootDir() {
File diskRootFile;
if (existsSdcard()) {
diskRootFile = MyApplication.context.getExternalCacheDir();
} else {
diskRootFile = MyApplication.context.getCacheDir();
}
String cachePath = "";
if (diskRootFile != null) {
cachePath = diskRootFile.getPath();
} else {
throw new IllegalArgumentException("disk is invalid");
}
return cachePath;
}
/**
* 判断外置sdcard是否可以正常使用
*
* @return
*/
public static Boolean existsSdcard() {
return Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState()) || !Environment.isExternalStorageRemovable();
}
}
package com.chudiangameplay.android.adapter;
import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.chudiangameplay.android.R;
import com.chudiangameplay.android.interface_.CommCallBack;
import java.util.ArrayList;
import java.util.List;
/**
* Created by Administrator on 2018/8/22.
*/
public class A_ModelAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
Context mContext;
List<Object> list = new ArrayList<>();
CommCallBack callBack;
public A_ModelAdapter(Context mContext, CommCallBack callBack) {
this.mContext = mContext;
this.callBack = callBack;
}
public void setData(List<Object> list) {
this.list = list;
notifyDataSetChanged();
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
LayoutInflater mInflater = LayoutInflater.from(mContext);
ViewGroup viewGroup = (ViewGroup) mInflater.inflate(R.layout.item_chatroom_msglist, null, false);
ContentViewHolder holder = new ContentViewHolder(viewGroup);
return holder;
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
ContentViewHolder viewHolder = (ContentViewHolder) holder;
final Object info = list.get(position);
}
@Override
public int getItemCount() {
return list == null ? 0 : list.size();
}
class ContentViewHolder extends RecyclerView.ViewHolder {
TextView tv_msg;
public ContentViewHolder(View itemView) {
super(itemView);
tv_msg = itemView.findViewById(R.id.tv_msg);
}
}
}
package com.chudiangameplay.android.adapter;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import com.chudiangameplay.android.R;
import com.chudiangameplay.android.bean.ContactInfo;
import com.chudiangameplay.android.interface_.CommCallBack;
import com.chudiangameplay.android.util.GlideUtil;
import java.util.ArrayList;
import java.util.List;
/**
* Created by Administrator on 2018/8/22.
*/
public class A_ModelBaseAdapter extends BaseAdapter {
Context mContext;
List<ContactInfo> list = new ArrayList<>();
CommCallBack callBack;
public A_ModelBaseAdapter(Context mContext, CommCallBack callBack) {
this.mContext = mContext;
this.callBack = callBack;
}
public void setData(List<ContactInfo> list) {
this.list = list;
notifyDataSetChanged();
}
@Override
public int getCount() {
return list == null ? 0 : list.size();
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
final ViewHoder hoder;
if (convertView == null) {
convertView = View.inflate(mContext, R.layout.item_contact, null);
hoder = new ViewHoder();
hoder.iv_head = (ImageView) convertView.findViewById(R.id.iv_head);
hoder.tv_nickname = (TextView) convertView.findViewById(R.id.tv_nickname);
convertView.setTag(hoder);
} else {
hoder = (ViewHoder) convertView.getTag();
}
ContactInfo info = list.get(position);
hoder.tv_nickname.setText(info.nickname);
GlideUtil.displayImageCompress(mContext, info.headPortraitsUrl, hoder.iv_head, R.drawable.ico_im_default_head);
return convertView;
}
public class ViewHoder {
ImageView iv_head;
TextView tv_nickname;
}
}
package com.chudiangameplay.android.adapter;
import android.content.Context;
import android.graphics.Color;
import android.support.v7.widget.RecyclerView;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import com.chudiangameplay.android.R;
import com.chudiangameplay.android.bean.GiftInfo;
import com.chudiangameplay.android.interface_.CommCallBack;
import com.chudiangameplay.android.manager.UserManager;
import com.chudiangameplay.android.ui.activity.UserDetailActivity;
import com.chudiangameplay.android.util.GlideUtil;
import java.util.ArrayList;
import java.util.List;
/**
* 礼物面板三级页面,每页8个礼物
* Created by Administrator on 2018/9/14.
*/
public class BagGiftGridListAdapter_Room extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
Context mContext;
List<GiftInfo> list = new ArrayList<>();
CommCallBack callBack;
private static final int TYPE_GIFT = 761;
private static final int TYPE_LOCK = 392;
public BagGiftGridListAdapter_Room(Context mContext, CommCallBack callBack) {
this.mContext = mContext;
this.callBack = callBack;
}
public void setData(List<GiftInfo> list) {
this.list.clear();
this.list.addAll(list);
notifyDataSetChanged();
}
GiftInfo selectedGift;
public void setSelect(GiftInfo info) {
this.selectedGift = info;
notifyDataSetChanged();
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
LayoutInflater mInflater = LayoutInflater.from(mContext);
if (viewType == TYPE_LOCK) {
ViewGroup viewGroup = (ViewGroup) mInflater.inflate(R.layout.item_giftview_list_room_lock, null, false);
return new LockViewHolder(viewGroup);
} else {
ViewGroup viewGroup = (ViewGroup) mInflater.inflate(R.layout.item_giftview_list_room_bag, null, false);
return new ContentViewHolder(viewGroup);
}
}
@Override
public int getItemViewType(int position) {
GiftInfo info = list.get(position);
if (info.nobleCode > 0 && info.nobleCode > UserManager.getUserNobleCode()) {
return TYPE_LOCK;
} else {
return TYPE_GIFT;
}
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
if (holder instanceof ContentViewHolder) {
setViewholder(holder, position);
} else if (holder instanceof LockViewHolder) {
setLockViewholder(holder, position);
}
}
@Override
public int getItemCount() {
return list == null ? 0 : list.size();
}
class ContentViewHolder extends RecyclerView.ViewHolder {
ImageView iv_img;
TextView tv_name, tv_price, tv_desc, tv_num;
View view_bg;
public ContentViewHolder(View itemView) {
super(itemView);
iv_img = (ImageView) itemView.findViewById(R.id.iv_img);
tv_name = (TextView) itemView.findViewById(R.id.tv_name);
tv_price = (TextView) itemView.findViewById(R.id.tv_price);
tv_desc = itemView.findViewById(R.id.tv_desc);
view_bg = itemView.findViewById(R.id.view_bg);
tv_num = itemView.findViewById(R.id.tv_num);
}
}
private void setViewholder(RecyclerView.ViewHolder holder, int position) {
ContentViewHolder contentViewHolder = (ContentViewHolder) holder;
final GiftInfo info = list.get(position);
contentViewHolder.tv_name.setText(info.name);
contentViewHolder.tv_price.setText("*" + info.amount);
GlideUtil.displayImage(mContext, info.objectUrl, contentViewHolder.iv_img, -1);
if (selectedGift != null && selectedGift.id.equals(info.id)) //选中
{
contentViewHolder.view_bg.setVisibility(View.VISIBLE);
GlideUtil.displayImage(mContext, info.previewUrl, contentViewHolder.iv_img, -1);
} else {
contentViewHolder.view_bg.setVisibility(View.GONE);
GlideUtil.displayImage(mContext, info.objectUrl, contentViewHolder.iv_img, -1);
}
//根据传入Context的对象 判单是否是用户礼物弹框
if (mContext instanceof UserDetailActivity) {
contentViewHolder.tv_name.setTextColor(mContext.getResources().getColor(R.color.text_333333));
contentViewHolder.tv_num.setTextColor(mContext.getResources().getColor(R.color.text_999999));
} else {
contentViewHolder.tv_name.setTextColor(mContext.getResources().getColor(R.color.white));
contentViewHolder.tv_num.setTextColor(mContext.getResources().getColor(R.color.white_half));
}
if (TextUtils.isEmpty(info.remark)) {
contentViewHolder.tv_desc.setVisibility(View.GONE);
} else {
contentViewHolder.tv_desc.setVisibility(View.VISIBLE);
contentViewHolder.tv_desc.setText(info.remark);
}
contentViewHolder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (callBack != null) {
callBack.onResult(info);
}
}
});
}
class LockViewHolder extends RecyclerView.ViewHolder {
ImageView iv_img;
TextView tv_name, tv_price, tv_desc;
public LockViewHolder(View itemView) {
super(itemView);
iv_img = (ImageView) itemView.findViewById(R.id.iv_img);
tv_name = (TextView) itemView.findViewById(R.id.tv_name);
tv_price = (TextView) itemView.findViewById(R.id.tv_price);
tv_desc = itemView.findViewById(R.id.tv_desc);
}
}
private void setLockViewholder(RecyclerView.ViewHolder holder, int position) {
LockViewHolder contentViewHolder = (LockViewHolder) holder;
final GiftInfo info = list.get(position);
contentViewHolder.tv_name.setText(info.name);
contentViewHolder.tv_price.setText("*" + info.amount);
GlideUtil.displayImage(mContext, info.objectUrl, contentViewHolder.iv_img, -1);
if (TextUtils.isEmpty(info.remark)) {
contentViewHolder.tv_desc.setVisibility(View.GONE);
} else {
contentViewHolder.tv_desc.setVisibility(View.VISIBLE);
contentViewHolder.tv_desc.setText(info.remark);
}
//根据传入Context的对象 判单是否是用户礼物弹框
if (mContext instanceof UserDetailActivity) {
contentViewHolder.tv_name.setTextColor(Color.parseColor("#333333"));
} else {
contentViewHolder.tv_name.setTextColor(Color.parseColor("#ffffff"));
}
contentViewHolder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (callBack != null) {
callBack.onResult(info);
}
}
});
}
}
package com.chudiangameplay.android.adapter;
import android.content.Context;
import android.support.v4.view.PagerAdapter;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.view.ViewGroup;
import com.chudiangameplay.android.bean.GiftInfo;
import com.chudiangameplay.android.interface_.CommCallBack;
import com.chudiangameplay.android.manager.UserManager;
import java.util.ArrayList;
import java.util.List;
/**
* 礼物面板二级Pager,每页一个recyclerView
* Created by Administrator on 2018/9/14.
*/
public class BagGiftView_PagerAdapter_Room extends PagerAdapter {
Context mContext;
List<GiftInfo> list;
List<BagGiftGridListAdapter_Room> adapterList = new ArrayList<>();
int pageSize = 0;
public GiftInfo selectedGift;
public BagGiftView_PagerAdapter_Room(Context mContext) {
this.mContext = mContext;
}
public void setData(List<GiftInfo> list) {
if (list == null || list.size() == 0) {
return;
}
pageSize = (int) Math.ceil(list.size() / 8f); //计算页数
this.list = list;
selectedGift = list.get(0);
notifyDataSetChanged();
}
CommCallBack callBack = new CommCallBack() {
@Override
public void onResult(Object obj) {
selectedGift = (GiftInfo) obj;
for (int i = 0; i < adapterList.size(); i++) {
adapterList.get(i).setSelect(selectedGift);
}
}
};
public void changePage(int position) {
if (list == null || list.size() == 0) {
return;
}
GiftInfo select = list.get(position * 8);
if (select.nobleCode > 0 && select.nobleCode > UserManager.getUserNobleCode()) {
selectedGift = null;
} else {
selectedGift = select;
}
for (int i = 0; i < adapterList.size(); i++) {
adapterList.get(i).setSelect(selectedGift);
}
}
public void unSelectGift() {
selectedGift = null;
for (int i = 0; i < adapterList.size(); i++) {
adapterList.get(i).setSelect(selectedGift);
}
}
@Override
public int getCount() {
return pageSize;
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
RecyclerView recyclerView = new RecyclerView(mContext);
recyclerView.setLayoutManager(new GridLayoutManager(mContext, 4));
BagGiftGridListAdapter_Room adapter = new BagGiftGridListAdapter_Room(mContext, callBack);
//计算每页礼物列表
List<GiftInfo> giftInfoList = new ArrayList<>();
for (int i = position * 8; i < list.size(); i++) {
if (giftInfoList.size() < 8) {
giftInfoList.add(list.get(i));
}
}
adapter.setData(giftInfoList);
adapter.setSelect(selectedGift);
adapterList.add(adapter);
recyclerView.setAdapter(adapter);
container.addView(recyclerView);
//最后要返回的是控件本身
return recyclerView;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View) object);
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == object;
}
}
package com.chudiangameplay.android.adapter;
import android.content.Context;
import android.support.v4.view.PagerAdapter;
import android.view.View;
import android.view.ViewGroup;
import com.chudiangameplay.android.R;
import com.chudiangameplay.android.interface_.CommCallBack;
import com.chudiangameplay.android.tool.Log;
import com.chudiangameplay.android.util.GlideUtil;
import java.util.ArrayList;
import java.util.List;
import uk.co.senab.photoview.PhotoView;
import uk.co.senab.photoview.PhotoViewAttacher;
public class BigImageCommPageAdapter extends PagerAdapter {
private List<String> imgs = new ArrayList<>();
private Context context;
public PhotoViewClickListener listener;
CommCallBack callBack;
public BigImageCommPageAdapter(Context context, List<String> imgs,CommCallBack callBack) {
this.context = context;
this.imgs.addAll(imgs);
}
public void setPhotoViewClickListener(PhotoViewClickListener listener) {
this.listener = listener;
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
PhotoView photoView = new PhotoView(context);
String url = imgs.get(position);
Log.i("url:" + url);
GlideUtil.displayImage(context, url, photoView, R.drawable.ico_default_img_fang);
// photoView.setOnPhotoTapListener(new PhotoViewAttacher.OnPhotoTapListener() {
// @Override
// public void onPhotoTap(View view, float x, float y) {
// if (listener != null) listener.OnPhotoTapListener(view, x, y);
// }
// });
photoView.setOnViewTapListener(new PhotoViewAttacher.OnViewTapListener() {
@Override
public void onViewTap(View view, float x, float y) {
if (listener != null) listener.OnPhotoTapListener(view, x, y);
}
});
container.addView(photoView);
return photoView;
}
@Override
public int getCount() {
return imgs.size();
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == object;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View) object);
}
@Override
public int getItemPosition(Object object) {
return POSITION_NONE;
}
public interface PhotoViewClickListener {
void OnPhotoTapListener(View view, float v, float v1);
}
}
package com.chudiangameplay.android.adapter;
import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import com.chudiangameplay.android.R;
import com.chudiangameplay.android.bean.ContactInfo;
import com.chudiangameplay.android.interface_.CommCallBack;
import com.chudiangameplay.android.util.GlideUtil;
import java.util.ArrayList;
import java.util.List;
/**
* Created by Administrator on 2018/8/22.
*/
public class BlackListAdapter extends BaseAdapter {
Context mContext;
List<ContactInfo> list = new ArrayList<>();
CommCallBack callBack;
public BlackListAdapter(Context mContext, CommCallBack callBack) {
this.mContext = mContext;
this.callBack = callBack;
}
public void setData(List<ContactInfo> list) {
this.list = list;
notifyDataSetChanged();
}
@Override
public int getCount() {
return list == null ? 0 : list.size();
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
final ViewHoder hoder;
if (convertView == null) {
convertView = View.inflate(mContext, R.layout.item_contact, null);
hoder = new ViewHoder();
hoder.iv_head = (ImageView) convertView.findViewById(R.id.iv_head);
hoder.tv_nickname = (TextView) convertView.findViewById(R.id.tv_nickname);
convertView.setTag(hoder);
} else {
hoder = (ViewHoder) convertView.getTag();
}
ContactInfo info = list.get(position);
hoder.tv_nickname.setText(info.nickname);
GlideUtil.displayImageCompress(mContext, info.headPortraitsUrl, hoder.iv_head, R.drawable.ico_im_default_head);
return convertView;
}
public class ViewHoder {
ImageView iv_head;
TextView tv_nickname;
}
}
package com.chudiangameplay.android.adapter;
import android.content.Context;
import android.graphics.Color;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.chudiangameplay.android.R;
import com.chudiangameplay.android.interface_.CommCallBack;
import java.util.ArrayList;
import java.util.List;
/**
* Created by Administrator on 2018/8/22.
*/
public class Chongzhi_MoneyListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
Context mContext;
List<String> list = new ArrayList<>();
CommCallBack callBack;
public int currentSelect = -1;
public Chongzhi_MoneyListAdapter(Context mContext, CommCallBack callBack) {
this.mContext = mContext;
this.callBack = callBack;
}
public void setData(List<String> list) {
this.list = list;
notifyDataSetChanged();
}
public void setSelect(int index) {
currentSelect = index;
notifyDataSetChanged();
if (index >= 0) {
if (callBack != null) {
callBack.onResult(index);
}
}
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
LayoutInflater mInflater = LayoutInflater.from(mContext);
ViewGroup viewGroup = (ViewGroup) mInflater.inflate(R.layout.item_chongzhi_moneylist, null, false);
ContentViewHolder holder = new ContentViewHolder(viewGroup);
return holder;
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, final int position) {
ContentViewHolder contentViewHolder = (ContentViewHolder) holder;
final String money = list.get(position);
contentViewHolder.tv_text.setText(money + "元");
if (currentSelect == position) {
contentViewHolder.tv_text.setBackgroundResource(R.drawable.shape_circle_maincolor);
contentViewHolder.tv_text.setTextColor(Color.parseColor("#ffffff"));
} else {
contentViewHolder.tv_text.setBackgroundResource(R.drawable.shape_circle_stroke_cccccc);
contentViewHolder.tv_text.setTextColor(Color.parseColor("#999999"));
}
contentViewHolder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
currentSelect = position;
if (callBack != null) {
callBack.onResult(position);
}
notifyDataSetChanged();
}
});
}
@Override
public int getItemCount() {
return list == null ? 0 : list.size();
}
class ContentViewHolder extends RecyclerView.ViewHolder {
TextView tv_text;
public ContentViewHolder(View itemView) {
super(itemView);
tv_text = (TextView) itemView.findViewById(R.id.tv_text);
}
}
}
package com.chudiangameplay.android.adapter;
import android.content.Context;
import android.graphics.Color;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.chudiangameplay.android.R;
import com.chudiangameplay.android.interface_.CommCallBack;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* Created by Administrator on 2018/8/22.
*/
public class Chongzhi_ZuanshiListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
Context mContext;
List<Integer> list;
CommCallBack callBack;
public int currentSelect = -1;
public Chongzhi_ZuanshiListAdapter(Context mContext, CommCallBack callBack) {
this.mContext = mContext;
this.callBack = callBack;
}
public void setData(List<Integer> list) {
this.list = list;
notifyDataSetChanged();
}
public void setSelect(int index) {
currentSelect = index;
notifyDataSetChanged();
if (index >= 0) {
if (callBack != null) {
Integer money = list.get(index);
callBack.onResult(money * 10);
}
}
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
LayoutInflater mInflater = LayoutInflater.from(mContext);
ViewGroup viewGroup = (ViewGroup) mInflater.inflate(R.layout.item_chongzhi_zuanshilist, null, false);
ContentViewHolder holder = new ContentViewHolder(viewGroup);
return holder;
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, final int position) {
ContentViewHolder contentViewHolder = (ContentViewHolder) holder;
final Integer money = list.get(position);
contentViewHolder.tv_zuanshishu.setText(money * 10 + "");
contentViewHolder.tv_money.setText("/¥" + money + "");
if (currentSelect == position) {
contentViewHolder.ll_container.setBackgroundResource(R.drawable.shape_circle_maincolor);
contentViewHolder.tv_zuanshishu.setTextColor(Color.parseColor("#ffffff"));
contentViewHolder.tv_money.setTextColor(Color.parseColor("#ffffff"));
} else {
contentViewHolder.ll_container.setBackgroundResource(R.drawable.shape_circle_stroke_cccccc);
contentViewHolder.tv_zuanshishu.setTextColor(Color.parseColor("#333333"));
contentViewHolder.tv_money.setTextColor(Color.parseColor("#999999"));
}
contentViewHolder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
currentSelect = position;
if (callBack != null) {
callBack.onResult(money * 10);
}
notifyDataSetChanged();
}
});
}
@Override
public int getItemCount() {
return list == null ? 0 : list.size();
}
class ContentViewHolder extends RecyclerView.ViewHolder {
TextView tv_zuanshishu, tv_money;
LinearLayout ll_container;
public ContentViewHolder(View itemView) {
super(itemView);
tv_zuanshishu = (TextView) itemView.findViewById(R.id.tv_zuanshishu);
tv_money = (TextView) itemView.findViewById(R.id.tv_money);
ll_container = (LinearLayout) itemView.findViewById(R.id.ll_container);
}
}
}
package com.chudiangameplay.android.adapter;
import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import com.chudiangameplay.android.R;
import com.chudiangameplay.android.bean.CommObjectInfo;
import com.chudiangameplay.android.interface_.CommCallBack;
import com.chudiangameplay.android.tool.CommToast;
import java.util.ArrayList;
import java.util.List;
/**
* Created by Administrator on 2018/8/22.
*/
public class CommSelectListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
Context mContext;
List<CommObjectInfo> list = new ArrayList<>();
CommCallBack callBack;
int maxLength;
public CommSelectListAdapter(Context mContext, int maxLength, CommCallBack callBack) {
this.mContext = mContext;
this.callBack = callBack;
this.maxLength = maxLength;
}
public void setData(List<CommObjectInfo> list) {
this.list = list;
notifyDataSetChanged();
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
LayoutInflater mInflater = LayoutInflater.from(mContext);
ViewGroup viewGroup = (ViewGroup) mInflater.inflate(R.layout.item_comm_selectview, null, false);
ContentViewHolder holder = new ContentViewHolder(viewGroup);
return holder;
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, final int position) {
ContentViewHolder contentViewHolder = (ContentViewHolder) holder;
final CommObjectInfo info = list.get(position);
contentViewHolder.tv_title.setText(info.name);
if (info.isSelect) {
contentViewHolder.iv_select.setImageResource(R.drawable.ico_commselected);
} else {
contentViewHolder.iv_select.setImageResource(R.drawable.ico_commselect);
}
contentViewHolder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (maxLength == 1) {
//单选
for (int i = 0; i < list.size(); i++) {
list.get(i).isSelect = false;
}
list.get(position).isSelect = true;
} else {
//多选
int count = 0;
for (int i = 0; i < list.size(); i++) {
if (list.get(i).isSelect) {
count++;
}
}
if (count >= maxLength && !info.isSelect) {
CommToast.showToast(mContext, "最多只能选择" + maxLength + "个");
return;
}
info.isSelect = !info.isSelect;
}
notifyDataSetChanged();
if (callBack != null) {
callBack.onResult(null);
}
}
});
}
@Override
public int getItemCount() {
return list == null ? 0 : list.size();
}
class ContentViewHolder extends RecyclerView.ViewHolder {
TextView tv_title;
ImageView iv_select;
public ContentViewHolder(View itemView) {
super(itemView);
tv_title = (TextView) itemView.findViewById(R.id.tv_title);
iv_select = (ImageView) itemView.findViewById(R.id.iv_select);
}
}
}
package com.chudiangameplay.android.adapter;
import android.content.Context;
import android.graphics.Color;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.chudiangameplay.android.R;
import com.chudiangameplay.android.bean.RoomCheckCreateBean;
import com.chudiangameplay.android.interface_.CommCallBack;
import java.util.List;
/**
* Created by Administrator on 2018/8/22.
*/
public class CreateRoomCategoryAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
Context mContext;
List<RoomCheckCreateBean.RoomCategoryItem> list;
CommCallBack callBack;
float width = 0;
int select = -1;
public CreateRoomCategoryAdapter(Context mContext, CommCallBack callBack) {
this.mContext = mContext;
this.callBack = callBack;
}
public void setData(List<RoomCheckCreateBean.RoomCategoryItem> list) {
this.list = list;
notifyDataSetChanged();
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
LayoutInflater mInflater = LayoutInflater.from(mContext);
ViewGroup viewGroup = (ViewGroup) mInflater.inflate(R.layout.item_qiangdan_xuqiulist, null, false);
ContentViewHolder holder = new ContentViewHolder(viewGroup);
return holder;
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, final int position) {
ContentViewHolder viewHolder = (ContentViewHolder) holder;
final RoomCheckCreateBean.RoomCategoryItem info = list.get(position);
if (select == position) {
viewHolder.tv_name.setTextColor(mContext.getResources().getColor(R.color.mainColor));
viewHolder.tv_name.setBackgroundResource(R.drawable.shape_circle_stroke1px_maincolor);
} else {
viewHolder.tv_name.setTextColor(Color.parseColor("#999999"));
viewHolder.tv_name.setBackgroundResource(R.drawable.shape_circle_stroke_cccccc);
}
viewHolder.tv_name.setText(info.name);
viewHolder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
select = position;
if (callBack != null) {
callBack.onResult(info);
}
notifyDataSetChanged();
}
});
}
@Override
public int getItemCount() {
return list == null ? 0 : list.size();
}
class ContentViewHolder extends RecyclerView.ViewHolder {
TextView tv_name;
public ContentViewHolder(View itemView) {
super(itemView);
tv_name = itemView.findViewById(R.id.tv_name);
}
}
}
package com.chudiangameplay.android.adapter;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.os.AsyncTask;
import android.support.v4.view.PagerAdapter;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import com.chudiangameplay.android.R;
import com.chudiangameplay.android.bean.DongTai_NewsInfo;
import com.chudiangameplay.android.ui.activity.BigImage_CommActitivty;
import com.chudiangameplay.android.ui.view.RoundImageView;
import com.chudiangameplay.android.util.AnimUtil;
import com.chudiangameplay.android.util.BitmapUtil;
import com.chudiangameplay.android.util.FastBlur;
import com.chudiangameplay.android.util.GlideUtil;
import com.chudiangameplay.android.util.Util;
import java.util.ArrayList;
import java.util.List;
/**
* Created by Administrator on 2018/9/14.
*/
public class DongTai2_ImgPagerAdapter extends PagerAdapter {
Context mContext;
List<DongTai_NewsInfo.FilesInfo> list;
int width = 0;
List<View> mViews = new ArrayList<>();
public DongTai2_ImgPagerAdapter(Context mContext) {
this.mContext = mContext;
width = (int) (mContext.getResources().getDisplayMetrics().widthPixels - Util.dip2px(mContext, 16 + 16) * 0.7d);
for (int i = 0; i < 4; i++) {
View view = View.inflate(mContext, R.layout.item_jineng_imglist, null);
mViews.add(view);
}
}
public void setData(List<DongTai_NewsInfo.FilesInfo> list) {
this.list = list;
notifyDataSetChanged();
}
@Override
public int getItemPosition(Object object) {
return POSITION_NONE;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
int i = position % 4;
View view = mViews.get(i);
ImageView imageView = view.findViewById(R.id.iv_img);
if (imageView != null) {
BitmapUtil.releaseImageViewResouce(imageView);
}
container.removeView(view);
}
@Override
public int getCount() {
return list == null ? 0 : list.size();
}
@Override
public Object instantiateItem(ViewGroup container, final int position) {
String imgUrl = list.get(position).url;
int i = position % 4;
View view = mViews.get(i);
final RoundImageView iv_jineng_bg = view.findViewById(R.id.iv_jineng_bg);
final RoundImageView iv_jineng = view.findViewById(R.id.iv_jineng);
GlideUtil.displayImgWithSize(mContext, imgUrl, iv_jineng, R.drawable.ico_default_img_fang, width, width);
// DrawableRequestBuilder<Object> builder = GlideUtil.getMode(mContext, imgUrl, -1);
// builder.override(width, width).diskCacheStrategy(DiskCacheStrategy.RESULT);
// builder.dontAnimate();
// builder.into(new GlideDrawableImageViewTarget(iv_jineng) {
// @Override
// protected void setResource(GlideDrawable resource) {
// super.setResource(resource);
// //图片加载完成的回调中,启动过渡动画
// ((AppCompatActivity) mContext).supportStartPostponedEnterTransition();
// }
// });
view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
List<String> str = new ArrayList<>();
for (int i = 0; i < list.size(); i++) {
str.add(list.get(i).url);
}
Intent intent = new Intent(mContext, BigImage_CommActitivty.class);
intent.putStringArrayListExtra("imgs", (ArrayList<String>) str);
intent.putExtra("currentIndex", position);
mContext.startActivity(intent);
}
});
container.addView(view);
//最后要返回的是控件本身
return view;
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == object;
}
private class BitmapWorkerTask extends AsyncTask<Bitmap, Void, Bitmap> {
private Bitmap bitmapTask;
ImageView iv_jineng_bg;
public BitmapWorkerTask(Bitmap glideDrawable, ImageView iv_jineng_bg) {
bitmapTask = glideDrawable;
this.iv_jineng_bg = iv_jineng_bg;
}
@Override
protected Bitmap doInBackground(Bitmap... params) {
return FastBlur.doBlur(bitmapTask, 40, false);
}
@Override
protected void onPostExecute(Bitmap bitmap) {
iv_jineng_bg.setImageBitmap(bitmap);
AnimUtil.fadeIn(iv_jineng_bg);
}
}
}
package com.chudiangameplay.android.adapter;
import android.content.Context;
import android.content.Intent;
import android.support.v7.widget.RecyclerView;
import android.text.Html;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import com.chudiangameplay.android.R;
import com.chudiangameplay.android.bean.DongTai_PingLunInfo;
import com.chudiangameplay.android.interface_.CommCallBack;
import com.chudiangameplay.android.module_im.util.IM_DateUtil;
import com.chudiangameplay.android.ui.activity.UserDetailActivity;
import com.chudiangameplay.android.util.GlideUtil;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* Created by Administrator on 2018/8/22.
*/
public class DongTai2_PingLunListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
Context mContext;
List<DongTai_PingLunInfo> list = new ArrayList<>();
CommCallBack callBack;
public DongTai2_PingLunListAdapter(Context mContext, CommCallBack callBack) {
this.mContext = mContext;
this.callBack = callBack;
}
public void setData(List<DongTai_PingLunInfo> list) {
this.list = list;
notifyDataSetChanged();
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
LayoutInflater mInflater = LayoutInflater.from(mContext);
ViewGroup viewGroup = (ViewGroup) mInflater.inflate(R.layout.item_dongtai2_pinglunlist, null, false);
ContentViewHolder holder = new ContentViewHolder(viewGroup);
return holder;
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
ContentViewHolder viewHolder = (ContentViewHolder) holder;
final DongTai_PingLunInfo info = list.get(position);
viewHolder.tv_nickname.setText(info.fromUserNickname);
viewHolder.tv_content.setText(info.content);
GlideUtil.displayImage(mContext, info.fromUserHeadUrl, viewHolder.iv_head, R.drawable.ico_im_default_head);
//时间
try {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = sdf.parse(info.createTime);
viewHolder.tv_time.setText(IM_DateUtil.getTimestampString_UserDetailPingLun(date));
} catch (Exception e) {
}
if (info.toCommentDel) //已删除
{
String str = "<font color='#999999'>抱歉,该评论已删除</strong>";
viewHolder.tv_huifu.setText(Html.fromHtml(str));
viewHolder.tv_huifu.setVisibility(View.VISIBLE);
} else if (!TextUtils.isEmpty(info.toContent)) {
//有回复
String str = "<strong>" + info.toUserNickname + ": </strong>" + info.toContent;
viewHolder.tv_huifu.setText(Html.fromHtml(str));
viewHolder.tv_huifu.setVisibility(View.VISIBLE);
} else {
viewHolder.tv_huifu.setVisibility(View.GONE);
}
viewHolder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (callBack != null) {
callBack.onResult(info);
}
}
});
viewHolder.iv_head.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(mContext, UserDetailActivity.class);
intent.putExtra("uid", info.fromUserId);
mContext.startActivity(intent);
}
});
}
@Override
public int getItemCount() {
return list == null ? 0 : list.size();
}
class ContentViewHolder extends RecyclerView.ViewHolder {
TextView tv_nickname, tv_time, tv_content, tv_huifu;
ImageView iv_head;
public ContentViewHolder(View itemView) {
super(itemView);
tv_nickname = itemView.findViewById(R.id.tv_nickname);
iv_head = itemView.findViewById(R.id.iv_head);
tv_time = itemView.findViewById(R.id.tv_time);
tv_content = itemView.findViewById(R.id.tv_content);
tv_huifu = itemView.findViewById(R.id.tv_huifu);
}
}
}
package com.chudiangameplay.android.adapter;
import android.content.Context;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import com.chudiangameplay.android.R;
import com.chudiangameplay.android.bean.UploadFileInfo;
import com.chudiangameplay.android.interface_.CommCallBack;
import com.chudiangameplay.android.util.GlideUtil;
import com.chudiangameplay.android.util.Util;
import java.util.ArrayList;
import java.util.List;
public class DongTai_AddNews_ImageAdapter extends BaseAdapter {
Context context;
List<UploadFileInfo> list = new ArrayList<>();
CommCallBack callBack;
int imgWidth = 0;
boolean isVideo = false;
int maxSize = 9;
public DongTai_AddNews_ImageAdapter(Context context, CommCallBack callBack) {
super();
this.context = context;
this.callBack = callBack;
imgWidth = (context.getResources().getDisplayMetrics().widthPixels - Util.dip2px(context, 16 + 16 + 6 + 6)) / 3;
}
public void setData(List<UploadFileInfo> list, boolean isVideo) {
this.list = list;
this.isVideo = isVideo;
notifyDataSetChanged();
}
public void setMaxSize(int maxSize) {
this.maxSize = maxSize;
}
@Override
public int getCount() {
if (isVideo) {
if (list == null || list.size() == 0) {
return 0;
} else {
return list.size();
}
} else {
if (list == null || list.size() == 0) {
return 0;
} else if (list.size() < maxSize) {
return list.size() + 1;
} else {
return maxSize;
}
}
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
final ViewHoder hoder;
if (convertView == null) {
convertView = View.inflate(context, R.layout.item_dongtai_addnew_img, null);
hoder = new ViewHoder();
hoder.img = (ImageView) convertView.findViewById(R.id.img);
hoder.iv_delete = (ImageView) convertView.findViewById(R.id.iv_delete);
hoder.rl_container = (RelativeLayout) convertView.findViewById(R.id.rl_container);
hoder.rl_video = (RelativeLayout) convertView.findViewById(R.id.rl_video);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(imgWidth, imgWidth);
hoder.rl_container.setLayoutParams(params);
convertView.setTag(hoder);
} else {
hoder = (ViewHoder) convertView.getTag();
}
if (list.size() < maxSize && position == list.size() && !isVideo)//加号
{
hoder.iv_delete.setVisibility(View.GONE);
GlideUtil.displayImage(context, R.drawable.ico_dongtai_addnews_addimg, hoder.img, R.drawable.img_imgselect_default);
convertView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (callBack != null) {
callBack.onResult("add");
}
}
});
} else {
hoder.iv_delete.setVisibility(View.VISIBLE);
UploadFileInfo file = list.get(position);
if (isVideo) {
hoder.rl_video.setVisibility(View.VISIBLE);
GlideUtil.displayImage(context, file.snapUrl, hoder.img, R.drawable.ico_default_img_fang);
} else {
hoder.rl_video.setVisibility(View.GONE);
GlideUtil.displayImage(context, file.url, hoder.img, R.drawable.ico_default_img_fang);
}
//删除按钮
hoder.iv_delete.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
list.remove(position);
if (callBack != null) {
callBack.onResult("delete");
}
}
});
}
return convertView;
}
public class ViewHoder {
ImageView img, iv_delete;
RelativeLayout rl_container, rl_video;
}
}
package com.chudiangameplay.android.adapter;
import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.chudiangameplay.android.R;
import com.chudiangameplay.android.interface_.CommCallBack;
import com.chudiangameplay.android.responce.GetDongTai_DaShangListResponce.DaShangInfo;
import com.chudiangameplay.android.util.GlideUtil;
import java.util.ArrayList;
import java.util.List;
import static android.view.View.VISIBLE;
/**
* Created by Administrator on 2018/8/22.
*/
public class DongTai_DaShangAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
Context mContext;
List<DaShangInfo> list = new ArrayList<>();
CommCallBack callBack;
public DongTai_DaShangAdapter(Context mContext, CommCallBack callBack) {
this.mContext = mContext;
this.callBack = callBack;
}
public void setData(List<DaShangInfo> list) {
this.list.clear();
this.list.addAll(list);
notifyDataSetChanged();
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
LayoutInflater mInflater = LayoutInflater.from(mContext);
ViewGroup viewGroup = (ViewGroup) mInflater.inflate(R.layout.item_dongtai_dashanglist, null, false);
ContentViewHolder holder = new ContentViewHolder(viewGroup);
return holder;
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
ContentViewHolder contentViewHolder = (ContentViewHolder) holder;
final DaShangInfo info = list.get(position);
GlideUtil.displayImageCompress(mContext, info.fromUserHeadUrl, contentViewHolder.iv_head, R.drawable.ico_im_default_head);
contentViewHolder.tv_nickname.setText(info.fromUserNickname);
contentViewHolder.tv_time.setText(info.createTime);
if (TextUtils.isEmpty(info.fromUserGender) || TextUtils.isEmpty(info.age)) {
contentViewHolder.ll_sex.setVisibility(View.GONE);
} else {
contentViewHolder.ll_sex.setVisibility(VISIBLE);
if ("0".equals(info.fromUserGender)) //性别(0:保密;1:男;2:女)
{
} else if ("1".equals(info.fromUserGender)) { //男
contentViewHolder.iv_sex.setImageResource(R.drawable.ico_sex_nan);
contentViewHolder.ll_sex.setBackgroundResource(R.drawable.shape_round3dp_76a6ff);
} else if ("2".equals(info.fromUserGender)) {
contentViewHolder.iv_sex.setImageResource(R.drawable.ico_sex_nv);
contentViewHolder.ll_sex.setBackgroundResource(R.drawable.shape_round3dp_ff76b6);
}
contentViewHolder.tv_age.setText(TextUtils.isEmpty(info.age) ? "0" : info.age);
}
GlideUtil.displayImage(mContext, info.giftUrl, contentViewHolder.iv_gift, -1);
}
@Override
public int getItemCount() {
return list == null ? 0 : list.size();
}
class ContentViewHolder extends RecyclerView.ViewHolder {
ImageView iv_head, iv_sex,iv_gift;
TextView tv_nickname, tv_time, tv_age;
LinearLayout ll_sex;
public ContentViewHolder(View itemView) {
super(itemView);
iv_head = (ImageView) itemView.findViewById(R.id.iv_head);
tv_nickname = (TextView) itemView.findViewById(R.id.tv_nickname);
tv_time = (TextView) itemView.findViewById(R.id.tv_time);
ll_sex = (LinearLayout) itemView.findViewById(R.id.ll_sex);
iv_sex = (ImageView) itemView.findViewById(R.id.iv_sex);
tv_age = (TextView) itemView.findViewById(R.id.tv_age);
iv_gift= (ImageView) itemView.findViewById(R.id.iv_gift);
}
}
}
package com.chudiangameplay.android.adapter;
import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.chudiangameplay.android.R;
import com.chudiangameplay.android.bean.DongTai_PingLunInfo;
import com.chudiangameplay.android.interface_.CommCallBack;
import com.chudiangameplay.android.responce.GetDongTai_DianzanListResponce.DianzanInfo;
import com.chudiangameplay.android.util.GlideUtil;
import java.util.ArrayList;
import java.util.List;
import static android.view.View.VISIBLE;
/**
* Created by Administrator on 2018/8/22.
*/
public class DongTai_DianZanAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
Context mContext;
List<DianzanInfo> list = new ArrayList<>();
CommCallBack callBack;
public DongTai_DianZanAdapter(Context mContext, CommCallBack callBack) {
this.mContext = mContext;
this.callBack = callBack;
}
public void setData(List<DianzanInfo> list) {
this.list.clear();
this.list.addAll(list);
notifyDataSetChanged();
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
LayoutInflater mInflater = LayoutInflater.from(mContext);
ViewGroup viewGroup = (ViewGroup) mInflater.inflate(R.layout.item_dongtai_dianzanlist, null, false);
ContentViewHolder holder = new ContentViewHolder(viewGroup);
return holder;
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
ContentViewHolder contentViewHolder = (ContentViewHolder) holder;
final DianzanInfo info = list.get(position);
GlideUtil.displayImageCompress(mContext, info.fromUserHeadUrl, contentViewHolder.iv_head, R.drawable.ico_im_default_head);
contentViewHolder.tv_nickname.setText(info.fromUserNickname);
contentViewHolder.tv_time.setText(info.createTime);
if (TextUtils.isEmpty(info.fromUserGender) || TextUtils.isEmpty(info.age)) {
contentViewHolder.ll_sex.setVisibility(View.GONE);
} else {
contentViewHolder.ll_sex.setVisibility(VISIBLE);
if ("0".equals(info.fromUserGender)) //性别(0:保密;1:男;2:女)
{
} else if ("1".equals(info.fromUserGender)) { //男
contentViewHolder.iv_sex.setImageResource(R.drawable.ico_sex_nan);
contentViewHolder.ll_sex.setBackgroundResource(R.drawable.shape_round3dp_76a6ff);
} else if ("2".equals(info.fromUserGender)) {
contentViewHolder.iv_sex.setImageResource(R.drawable.ico_sex_nv);
contentViewHolder.ll_sex.setBackgroundResource(R.drawable.shape_round3dp_ff76b6);
}
contentViewHolder.tv_age.setText(TextUtils.isEmpty(info.age) ? "0" : info.age);
}
}
@Override
public int getItemCount() {
return list == null ? 0 : list.size();
}
class ContentViewHolder extends RecyclerView.ViewHolder {
ImageView iv_head, iv_sex;
TextView tv_nickname, tv_time, tv_age;
LinearLayout ll_sex;
public ContentViewHolder(View itemView) {
super(itemView);
iv_head = (ImageView) itemView.findViewById(R.id.iv_head);
tv_nickname = (TextView) itemView.findViewById(R.id.tv_nickname);
tv_time = (TextView) itemView.findViewById(R.id.tv_time);
ll_sex = (LinearLayout) itemView.findViewById(R.id.ll_sex);
iv_sex = (ImageView) itemView.findViewById(R.id.iv_sex);
tv_age = (TextView) itemView.findViewById(R.id.tv_age);
}
}
}
package com.chudiangameplay.android.adapter;
import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import com.chudiangameplay.android.R;
import com.chudiangameplay.android.interface_.CommCallBack;
import java.util.ArrayList;
import java.util.List;
/**
* Created by Administrator on 2018/8/22.
*/
public class DongTai_GuanLianJiNengDialogAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
Context mContext;
List<String> list = new ArrayList<>();
CommCallBack callBack;
int currentSelect = -1;
public DongTai_GuanLianJiNengDialogAdapter(Context mContext, CommCallBack callBack) {
this.mContext = mContext;
this.callBack = callBack;
}
public void setData(List<String> list, int currentSelect) {
this.list = list;
this.currentSelect=currentSelect;
notifyDataSetChanged();
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
LayoutInflater mInflater = LayoutInflater.from(mContext);
ViewGroup viewGroup = (ViewGroup) mInflater.inflate(R.layout.item_dongtai_guanlianjineng_dialog, null, false);
ContentViewHolder holder = new ContentViewHolder(viewGroup);
return holder;
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, final int position) {
ContentViewHolder contentViewHolder = (ContentViewHolder) holder;
final String info = list.get(position);
contentViewHolder.tv_title.setText(info);
if (currentSelect == position) {
contentViewHolder.iv_select.setImageResource(R.drawable.ico_commselected);
} else {
contentViewHolder.iv_select.setImageResource(R.drawable.ico_commselect);
}
contentViewHolder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (callBack != null) {
callBack.onResult(position);
}
}
});
}
@Override
public int getItemCount() {
return list == null ? 0 : list.size();
}
class ContentViewHolder extends RecyclerView.ViewHolder {
TextView tv_title;
ImageView iv_select;
public ContentViewHolder(View itemView) {
super(itemView);
tv_title = (TextView) itemView.findViewById(R.id.tv_title);
iv_select = (ImageView) itemView.findViewById(R.id.iv_select);
}
}
}
package com.chudiangameplay.android.adapter;
import android.content.Context;
import android.graphics.Color;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.chudiangameplay.android.R;
import com.chudiangameplay.android.bean.DongTai_NewsInfo.FilesInfo;
import com.chudiangameplay.android.tool.Log;
import com.chudiangameplay.android.ui.view.MyGridView;
import com.chudiangameplay.android.util.GlideUtil;
import com.chudiangameplay.android.util.Util;
import java.util.List;
public class DongTai_NewsImgListAdapter extends BaseAdapter {
MyGridView gridView;
List<FilesInfo> list;
Context context;
int screenWidth = 0;
int widthImg2 = 0; //两张图的宽度
int widthImg3 = 0; //三张图的宽度
public DongTai_NewsImgListAdapter(List<FilesInfo> list, Context context, MyGridView gridView) {
super();
this.list = list;
this.context = context;
this.gridView = gridView;
screenWidth = context.getResources().getDisplayMetrics().widthPixels - Util.dip2px(context, 32);
widthImg3 = (screenWidth - Util.dip2px(context, 4 * 2)) / 3;
widthImg2 = (screenWidth - Util.dip2px(context, 4)) / 2;
}
@Override
public int getCount() {
return list == null ? 0 : list.size();
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
convertView = new ImageView(context);
ImageView imageView = (ImageView) convertView;
FilesInfo info = list.get(position);
if (list.size() == 1) {
int width = Integer.parseInt(info.width);
int height = Integer.parseInt(info.height);
RelativeLayout.LayoutParams params;
if (width > 800 || height > 800) {
if (width > height) {
height = (int) (height * 800f / width);
width = 800;
} else {
width = (int) (width * 800f / height);
height = 800;
}
}
params = new RelativeLayout.LayoutParams(width, height);
LinearLayout.LayoutParams params1 = new LinearLayout.LayoutParams(width, ViewGroup.LayoutParams.WRAP_CONTENT);
params1.setMargins(0, Util.dip2px(context, 14), 0, 0);
gridView.setLayoutParams(params1);
convertView.setLayoutParams(params);
} else if (list.size() == 2 || list.size() == 4) {
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(widthImg2, widthImg2);
convertView.setLayoutParams(params);
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
LinearLayout.LayoutParams params1 = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
params1.setMargins(0, Util.dip2px(context, 14), 0, 0);
gridView.setLayoutParams(params1);
} else {
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(widthImg3, widthImg3);
convertView.setLayoutParams(params);
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
LinearLayout.LayoutParams params1 = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
params1.setMargins(0, Util.dip2px(context, 14), 0, 0);
gridView.setLayoutParams(params1);
}
imageView.setBackgroundColor(Color.parseColor(getColor(position)));
GlideUtil.displayImage(context, info.url, imageView, -1);
return convertView;
}
String[] colors = {"#CAC0BA", "#D5DBD3", "#F0D4D8", "#E7D5E6", "#DCCCB3", "#D3DBE3"};
private String getColor(int index) {
if (index > 5) {
index = index - 6;
}
return colors[index];
}
}
package com.chudiangameplay.android.adapter;
import android.content.Context;
import android.content.Intent;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
import com.chudiangameplay.android.R;
import com.chudiangameplay.android.bean.DongTai_NewsInfo;
import com.chudiangameplay.android.interface_.CommCallBack;
import com.chudiangameplay.android.manager.UserManager;
import com.chudiangameplay.android.tool.Log;
import com.chudiangameplay.android.ui.activity.DongTaiDetailActivity;
import com.chudiangameplay.android.ui.activity.DongTai_AddNewsActivity;
import com.chudiangameplay.android.ui.view.DongTai_NewsInfoView;
import com.chudiangameplay.android.ui.view.DongTai_NewsInfoView_New;
import java.util.ArrayList;
import java.util.List;
/**
* Created by Administrator on 2018/7/16.
*/
public class DongTai_NewsListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
public DongTai_NewsListAdapter(Context context, CommCallBack callBack) {
super();
this.mContext = context;
this.callBack = callBack;
}
Context mContext;
public List<DongTai_NewsInfo> list = new ArrayList<>();
CommCallBack callBack;
public void setData(boolean isPullDown, List<DongTai_NewsInfo> list) {
if(isPullDown) //下拉
{
this.list.addAll(0,list);
}else {
this.list.addAll(list);
}
notifyDataSetChanged();
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
LayoutInflater mInflater = LayoutInflater.from(mContext);
ViewGroup viewGroup = (ViewGroup) mInflater.inflate(R.layout.item_dongtai_newslist, null, false);
ContentViewHolder holder = new ContentViewHolder(viewGroup);
return holder;
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
ContentViewHolder contentViewHolder = (ContentViewHolder) holder;
final DongTai_NewsInfo info = list.get(position);
contentViewHolder.dongtai_info_view.setData(info);
contentViewHolder.dongtai_info_view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (UserManager.isLogin(mContext)) {
Intent intent = new Intent(mContext, DongTaiDetailActivity.class);
intent.putExtra("id", info.id);
mContext.startActivity(intent);
} else {
UserManager.showLogin(mContext);
}
}
});
}
@Override
public int getItemCount() {
return list == null ? 0 : list.size();
}
class ContentViewHolder extends RecyclerView.ViewHolder {
DongTai_NewsInfoView_New dongtai_info_view;
public ContentViewHolder(View itemView) {
super(itemView);
dongtai_info_view = itemView.findViewById(R.id.dongtai_info_view);
dongtai_info_view.setIsDetail(false);
}
}
}
package com.chudiangameplay.android.adapter;
import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.chudiangameplay.android.R;
import com.chudiangameplay.android.bean.DongTai_PingLunInfo;
import com.chudiangameplay.android.interface_.CommCallBack;
import com.chudiangameplay.android.ui.view.MyGridView;
import com.chudiangameplay.android.util.GlideUtil;
import java.util.ArrayList;
import java.util.List;
import static android.view.View.VISIBLE;
/**
* Created by Administrator on 2018/8/22.
*/
public class DongTai_PingLunAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
Context mContext;
List<DongTai_PingLunInfo> list = new ArrayList<>();
CommCallBack callBack;
public DongTai_PingLunAdapter(Context mContext, CommCallBack callBack) {
this.mContext = mContext;
this.callBack = callBack;
}
public void setData(List<DongTai_PingLunInfo> list) {
this.list.clear();
this.list.addAll(list);
notifyDataSetChanged();
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
LayoutInflater mInflater = LayoutInflater.from(mContext);
ViewGroup viewGroup = (ViewGroup) mInflater.inflate(R.layout.item_dongtai_pinglunlist, null, false);
ContentViewHolder holder = new ContentViewHolder(viewGroup);
return holder;
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
ContentViewHolder contentViewHolder = (ContentViewHolder) holder;
final DongTai_PingLunInfo info = list.get(position);
GlideUtil.displayImage(mContext, info.fromUserHeadUrl, contentViewHolder.iv_head, R.drawable.ico_im_default_head, 100);
contentViewHolder.tv_nickname.setText(info.fromUserNickname);
contentViewHolder.tv_time.setText(info.createTime);
contentViewHolder.tv_content.setText(info.content);
if (TextUtils.isEmpty(info.memberEmblem)) {
contentViewHolder.iv_vip.setVisibility(View.GONE);
} else {
contentViewHolder.iv_vip.setVisibility(VISIBLE);
GlideUtil.displayImage(mContext, info.memberEmblem, contentViewHolder.iv_vip, R.drawable.ico_im_default_head);
}
if (TextUtils.isEmpty(info.fromUserGender) || TextUtils.isEmpty(info.age)) {
contentViewHolder.ll_sex.setVisibility(View.GONE);
} else {
contentViewHolder.ll_sex.setVisibility(VISIBLE);
if ("0".equals(info.fromUserGender)) //性别(0:保密;1:男;2:女)
{
} else if ("1".equals(info.fromUserGender)) { //男
contentViewHolder.iv_sex.setImageResource(R.drawable.ico_sex_nan);
contentViewHolder.ll_sex.setBackgroundResource(R.drawable.shape_round3dp_76a6ff);
} else if ("2".equals(info.fromUserGender)) {
contentViewHolder.iv_sex.setImageResource(R.drawable.ico_sex_nv);
contentViewHolder.ll_sex.setBackgroundResource(R.drawable.shape_round3dp_ff76b6);
}
contentViewHolder.tv_age.setText(TextUtils.isEmpty(info.age) ? "0" : info.age);
}
}
@Override
public int getItemCount() {
return list == null ? 0 : list.size();
}
class ContentViewHolder extends RecyclerView.ViewHolder {
ImageView iv_head,iv_vip;
TextView tv_nickname, tv_time, tv_content;
LinearLayout ll_sex;
ImageView iv_sex;
TextView tv_age;
public ContentViewHolder(View itemView) {
super(itemView);
iv_head = (ImageView) itemView.findViewById(R.id.iv_head);
tv_nickname = (TextView) itemView.findViewById(R.id.tv_nickname);
tv_time = (TextView) itemView.findViewById(R.id.tv_time);
tv_content = (TextView) itemView.findViewById(R.id.tv_content);
iv_vip= itemView.findViewById(R.id.iv_vip);
ll_sex = (LinearLayout) itemView.findViewById(R.id.ll_sex);
iv_sex = (ImageView) itemView.findViewById(R.id.iv_sex);
tv_age = (TextView) itemView.findViewById(R.id.tv_age);
}
}
}
package com.chudiangameplay.android.adapter;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentStatePagerAdapter;
import java.util.ArrayList;
import java.util.List;
/**
* Created by zt on 2015/12/21.
* viewpager填充器
*/
public class FragmentViewPagerAdapter extends FragmentStatePagerAdapter {
List<Fragment> fragmentsList = new ArrayList<>();
public FragmentViewPagerAdapter(FragmentManager fm, List<Fragment> fragmentsList) {
super(fm);
if (fragmentsList != null) {
this.fragmentsList = fragmentsList;
}
}
@Override
public int getCount() {
return fragmentsList.size();
}
@Override
public Fragment getItem(int i) {
return fragmentsList.get(i);
}
public int getItemPosition(Object object) {
return POSITION_NONE;
}
}
package com.chudiangameplay.android.adapter;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.app.FragmentStatePagerAdapter;
import java.util.List;
/**
* Created by zt on 2015/12/21.
* viewpager填充器
*/
public class FragmentViewPagerAdapter2 extends FragmentPagerAdapter {
List<Fragment> fragmentsList;
public FragmentViewPagerAdapter2(FragmentManager fm, List<Fragment> fragmentsList) {
super(fm);
this.fragmentsList = fragmentsList;
}
@Override
public int getCount() {
return fragmentsList.size();
}
@Override
public Fragment getItem(int i) {
return fragmentsList.get(i);
}
public int getItemPosition(Object object) {
return POSITION_NONE;
}
}
package com.chudiangameplay.android.adapter;
import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import com.chudiangameplay.android.R;
import com.chudiangameplay.android.bean.GiftInfo;
import com.chudiangameplay.android.interface_.CommCallBack;
import com.chudiangameplay.android.util.GlideUtil;
import java.util.ArrayList;
import java.util.List;
/**
* Created by Administrator on 2018/9/14.
*/
public class GiftGridListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
Context mContext;
List<GiftInfo> list = new ArrayList<>();
CommCallBack callBack;
boolean showDesc = true;
public GiftGridListAdapter(Context mContext, CommCallBack callBack) {
this.mContext = mContext;
this.callBack = callBack;
}
public void setData(List<GiftInfo> list) {
this.list.clear();
this.list.addAll(list);
notifyDataSetChanged();
}
public void setShowDesc(boolean showDesc) {
this.showDesc = showDesc;
}
String giftId = "";
public void setSelectId(String giftId) {
this.giftId = giftId;
notifyDataSetChanged();
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
LayoutInflater mInflater = LayoutInflater.from(mContext);
ViewGroup viewGroup = (ViewGroup) mInflater.inflate(R.layout.item_giftview_list_room, null, false);
ContentViewHolder holder = new ContentViewHolder(viewGroup);
return holder;
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
ContentViewHolder contentViewHolder = (ContentViewHolder) holder;
contentViewHolder.tv_name.setTextColor(mContext.getResources().getColor(R.color.text_333333));
contentViewHolder.tv_name.setTextColor(mContext.getResources().getColor(R.color.text_999999));
final GiftInfo info = list.get(position);
contentViewHolder.tv_name.setText(info.name);
contentViewHolder.tv_price.setText(info.price);
GlideUtil.displayImage(mContext, info.objectUrl, contentViewHolder.iv_img, -1);
if (!TextUtils.isEmpty(giftId) && giftId.equals(info.id)) //选中
{
contentViewHolder.view_bg.setVisibility(View.VISIBLE);
} else {
contentViewHolder.view_bg.setVisibility(View.GONE);
}
if (showDesc) {
if (TextUtils.isEmpty(info.remark)) {
contentViewHolder.tv_desc.setVisibility(View.GONE);
} else {
contentViewHolder.tv_desc.setVisibility(View.VISIBLE);
contentViewHolder.tv_desc.setText(info.remark);
}
} else {
contentViewHolder.tv_desc.setVisibility(View.GONE);
}
contentViewHolder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (callBack != null) {
callBack.onResult(info);
}
}
});
}
@Override
public int getItemCount() {
return list == null ? 0 : list.size();
}
class ContentViewHolder extends RecyclerView.ViewHolder {
ImageView iv_img;
TextView tv_name, tv_price, tv_desc;
View view_bg;
public ContentViewHolder(View itemView) {
super(itemView);
iv_img = (ImageView) itemView.findViewById(R.id.iv_img);
tv_name = (TextView) itemView.findViewById(R.id.tv_name);
tv_price = (TextView) itemView.findViewById(R.id.tv_price);
tv_desc = itemView.findViewById(R.id.tv_desc);
view_bg = itemView.findViewById(R.id.view_bg);
}
}
}
package com.chudiangameplay.android.adapter;
import android.content.Context;
import android.graphics.Color;
import android.support.v4.content.ContextCompat;
import android.support.v7.widget.RecyclerView;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import com.chudiangameplay.android.R;
import com.chudiangameplay.android.bean.GiftInfo;
import com.chudiangameplay.android.interface_.CommCallBack;
import com.chudiangameplay.android.manager.UserManager;
import com.chudiangameplay.android.tool.CommToast;
import com.chudiangameplay.android.ui.activity.UserDetailActivity;
import com.chudiangameplay.android.util.GlideUtil;
import java.util.ArrayList;
import java.util.List;
/**
* 礼物面板三级页面,每页8个礼物
* Created by Administrator on 2018/9/14.
*/
public class GiftGridListAdapter_Room extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
Context mContext;
List<GiftInfo> list = new ArrayList<>();
CommCallBack callBack;
private static final int TYPE_GIFT = 761;
private static final int TYPE_LOCK = 392;
public GiftGridListAdapter_Room(Context mContext, CommCallBack callBack) {
this.mContext = mContext;
this.callBack = callBack;
}
public void setData(List<GiftInfo> list) {
this.list.clear();
this.list.addAll(list);
notifyDataSetChanged();
}
GiftInfo selectedGift;
public void setSelect(GiftInfo info) {
this.selectedGift = info;
notifyDataSetChanged();
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
LayoutInflater mInflater = LayoutInflater.from(mContext);
if (viewType == TYPE_LOCK) {
ViewGroup viewGroup = (ViewGroup) mInflater.inflate(R.layout.item_giftview_list_room_lock, null, false);
return new LockViewHolder(viewGroup);
} else {
ViewGroup viewGroup = (ViewGroup) mInflater.inflate(R.layout.item_giftview_list_room, null, false);
return new ContentViewHolder(viewGroup);
}
}
@Override
public int getItemViewType(int position) {
GiftInfo info = list.get(position);
if (info.nobleCode > 0 && info.nobleCode > UserManager.getUserNobleCode()) {
return TYPE_LOCK;
} else {
return TYPE_GIFT;
}
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
if (holder instanceof ContentViewHolder) {
setViewholder(holder, position);
} else if (holder instanceof LockViewHolder) {
setLockViewholder(holder, position);
}
}
@Override
public int getItemCount() {
return list == null ? 0 : list.size();
}
class ContentViewHolder extends RecyclerView.ViewHolder {
ImageView iv_img;
TextView tv_name, tv_price, tv_desc;
View view_bg;
public ContentViewHolder(View itemView) {
super(itemView);
iv_img = (ImageView) itemView.findViewById(R.id.iv_img);
tv_name = (TextView) itemView.findViewById(R.id.tv_name);
tv_price = (TextView) itemView.findViewById(R.id.tv_price);
tv_desc = itemView.findViewById(R.id.tv_desc);
view_bg = itemView.findViewById(R.id.view_bg);
}
}
private void setViewholder(RecyclerView.ViewHolder holder, int position) {
ContentViewHolder contentViewHolder = (ContentViewHolder) holder;
final GiftInfo info = list.get(position);
contentViewHolder.tv_name.setText(info.name);
contentViewHolder.tv_price.setText(info.price);
GlideUtil.displayImage(mContext, info.objectUrl, contentViewHolder.iv_img, -1);
if (selectedGift != null && selectedGift.id.equals(info.id)) //选中
{
contentViewHolder.view_bg.setVisibility(View.VISIBLE);
GlideUtil.displayImage(mContext, info.previewUrl, contentViewHolder.iv_img, -1);
} else {
contentViewHolder.view_bg.setVisibility(View.GONE);
GlideUtil.displayImage(mContext, info.objectUrl, contentViewHolder.iv_img, -1);
}
//根据传入Context的对象 判单是否是用户礼物弹框
if (mContext instanceof UserDetailActivity) {
contentViewHolder.tv_name.setTextColor(Color.parseColor("#333333"));
} else {
contentViewHolder.tv_name.setTextColor(Color.parseColor("#ffffff"));
}
if (TextUtils.isEmpty(info.remark)) {
contentViewHolder.tv_desc.setVisibility(View.GONE);
} else {
contentViewHolder.tv_desc.setVisibility(View.VISIBLE);
contentViewHolder.tv_desc.setText(info.remark);
}
contentViewHolder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (callBack != null) {
callBack.onResult(info);
}
}
});
}
class LockViewHolder extends RecyclerView.ViewHolder {
ImageView iv_img;
TextView tv_name, tv_price, tv_desc;
public LockViewHolder(View itemView) {
super(itemView);
iv_img = (ImageView) itemView.findViewById(R.id.iv_img);
tv_name = (TextView) itemView.findViewById(R.id.tv_name);
tv_price = (TextView) itemView.findViewById(R.id.tv_price);
tv_desc = itemView.findViewById(R.id.tv_desc);
}
}
private void setLockViewholder(RecyclerView.ViewHolder holder, int position) {
LockViewHolder contentViewHolder = (LockViewHolder) holder;
final GiftInfo info = list.get(position);
contentViewHolder.tv_name.setText(info.name);
contentViewHolder.tv_price.setText(info.nobleName);
GlideUtil.displayImage(mContext, info.objectUrl, contentViewHolder.iv_img, -1);
//根据传入Context的对象 判单是否是用户礼物弹框
if (mContext instanceof UserDetailActivity) {
contentViewHolder.tv_name.setTextColor(Color.parseColor("#333333"));
} else {
contentViewHolder.tv_name.setTextColor(Color.parseColor("#ffffff"));
}
if (TextUtils.isEmpty(info.remark)) {
contentViewHolder.tv_desc.setVisibility(View.GONE);
} else {
contentViewHolder.tv_desc.setVisibility(View.VISIBLE);
contentViewHolder.tv_desc.setText(info.remark);
}
contentViewHolder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// if (callBack != null) {
// callBack.onResult(info);
// }
CommToast.showToast(mContext, "礼物还未解锁");
}
});
}
}
package com.chudiangameplay.android.adapter;
import android.content.Context;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.chudiangameplay.android.R;
import com.chudiangameplay.android.bean.GiftInfo;
import com.chudiangameplay.android.interface_.CommCallBack;
import com.chudiangameplay.android.ui.view.ChildViewPager;
import java.util.ArrayList;
import java.util.List;
/**
* 礼物面板一级Pager,包含4个ViewPager
* Created by 0 on 2019/8/16.
*/
public class GiftParentPagerAdapter extends PagerAdapter {
List<List<GiftInfo>> data;
List<GiftView_PagerAdapter_Room> adapters;
List<ViewPager> viewPagers;
Context mContext;
CommCallBack callBack;
public GiftParentPagerAdapter(Context mContext) {
this.mContext = mContext;
}
public void setData(List<List<GiftInfo>> data, CommCallBack callBack) {
this.data = data;
this.callBack = callBack;
adapters = new ArrayList<>();
viewPagers = new ArrayList<>();
notifyDataSetChanged();
}
@Override
public int getCount() {
return data == null ? 0 : data.size();
}
public int getDataSize(int position) {
return data == null ? 0 : data.get(position).size();
}
public int getPagerPage(int position) {
if (viewPagers != null && viewPagers.size() > position) {
return viewPagers.get(position).getCurrentItem();
}
return 0;
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
List<GiftInfo> list = data.get(position);
ViewPager viewpager = (ViewPager) LayoutInflater.from(mContext).inflate(R.layout.view_pager, null);
final GiftView_PagerAdapter_Room adapter = new GiftView_PagerAdapter_Room(mContext);
viewpager.setAdapter(adapter);
viewpager.setOffscreenPageLimit(list.size());
viewpager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
if (callBack != null) {
callBack.onResult(position);
}
adapter.changePage(position);
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
adapter.setData(list);
container.addView(viewpager);
adapters.add(adapter);
viewPagers.add(viewpager);
return viewpager;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View) object);
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == object;
}
}
package com.chudiangameplay.android.adapter;
import android.content.Context;
import android.support.v4.view.PagerAdapter;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.view.ViewGroup;
import com.chudiangameplay.android.bean.GiftInfo;
import com.chudiangameplay.android.interface_.CommCallBack;
import java.util.ArrayList;
import java.util.List;
/**
* Created by Administrator on 2018/9/14.
*/
public class GiftView_PagerAdapter extends PagerAdapter {
Context mContext;
List<GiftInfo> list;
List<GiftGridListAdapter> adapterList = new ArrayList<>();
int pageSize = 0;
public GiftInfo info;
public String giftId;
boolean showDesc = true;
public GiftView_PagerAdapter(Context mContext) {
this.mContext = mContext;
}
public void setShowDesc(boolean showDesc) {
this.showDesc = showDesc;
}
public void setData(List<GiftInfo> list) {
pageSize = (int) Math.ceil(list.size() / 8f); //计算页数
this.list = list;
notifyDataSetChanged();
}
public void setSelect(String giftId) {
this.giftId = giftId;
for (int i = 0; i < adapterList.size(); i++) {
adapterList.get(i).setSelectId(giftId);
}
for (int i = 0; i < list.size(); i++) {
if (list.get(i).id.equals(giftId)) {
info = list.get(i);
break;
}
}
}
CommCallBack callBack = new CommCallBack() {
@Override
public void onResult(Object obj) {
info = (GiftInfo) obj;
for (int i = 0; i < adapterList.size(); i++) {
adapterList.get(i).setSelectId(info.id);
}
}
};
@Override
public int getCount() {
return pageSize;
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
RecyclerView recyclerView = new RecyclerView(mContext);
recyclerView.setLayoutManager(new GridLayoutManager(mContext, 4));
GiftGridListAdapter adapter = new GiftGridListAdapter(mContext, callBack);
//计算每页礼物列表
List<GiftInfo> giftInfoList = new ArrayList<>();
for (int i = position * 8; i < list.size(); i++) {
if (giftInfoList.size() < 8) {
giftInfoList.add(list.get(i));
}
}
adapter.setData(giftInfoList);
adapter.setSelectId(giftId);
adapter.setShowDesc(showDesc);
adapterList.add(adapter);
recyclerView.setAdapter(adapter);
container.addView(recyclerView);
//最后要返回的是控件本身
return recyclerView;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View) object);
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == object;
}
}
package com.chudiangameplay.android.adapter;
import android.content.Context;
import android.support.v4.view.PagerAdapter;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.view.ViewGroup;
import com.chudiangameplay.android.bean.GiftInfo;
import com.chudiangameplay.android.interface_.CommCallBack;
import com.chudiangameplay.android.manager.UserManager;
import java.util.ArrayList;
import java.util.List;
/**
* 礼物面板二级Pager,每页一个recyclerView
* Created by Administrator on 2018/9/14.
*/
public class GiftView_PagerAdapter_Room extends PagerAdapter {
Context mContext;
List<GiftInfo> list;
List<GiftGridListAdapter_Room> adapterList = new ArrayList<>();
int pageSize = 0;
public GiftInfo selectedGift;
public GiftView_PagerAdapter_Room(Context mContext) {
this.mContext = mContext;
}
public void setData(List<GiftInfo> list) {
if (list == null || list.size() == 0) {
return;
}
pageSize = (int) Math.ceil(list.size() / 8f); //计算页数
this.list = list;
selectedGift = list.get(0);
notifyDataSetChanged();
}
CommCallBack callBack = new CommCallBack() {
@Override
public void onResult(Object obj) {
selectedGift = (GiftInfo) obj;
for (int i = 0; i < adapterList.size(); i++) {
adapterList.get(i).setSelect(selectedGift);
}
}
};
public void changePage(int position) {
if (list == null || list.size() == 0) {
return;
}
GiftInfo select = list.get(position * 8);
if (select.nobleCode > 0 && select.nobleCode > UserManager.getUserNobleCode()) {
selectedGift = null;
} else {
selectedGift = select;
}
for (int i = 0; i < adapterList.size(); i++) {
adapterList.get(i).setSelect(selectedGift);
}
}
public void unSelectGift() {
selectedGift = null;
for (int i = 0; i < adapterList.size(); i++) {
adapterList.get(i).setSelect(selectedGift);
}
}
@Override
public int getCount() {
return pageSize;
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
RecyclerView recyclerView = new RecyclerView(mContext);
recyclerView.setLayoutManager(new GridLayoutManager(mContext, 4));
GiftGridListAdapter_Room adapter = new GiftGridListAdapter_Room(mContext, callBack);
//计算每页礼物列表
List<GiftInfo> giftInfoList = new ArrayList<>();
for (int i = position * 8; i < list.size(); i++) {
if (giftInfoList.size() < 8) {
giftInfoList.add(list.get(i));
}
}
adapter.setData(giftInfoList);
adapter.setSelect(selectedGift);
adapterList.add(adapter);
recyclerView.setAdapter(adapter);
container.addView(recyclerView);
//最后要返回的是控件本身
return recyclerView;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View) object);
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == object;
}
}
package com.chudiangameplay.android.adapter;
import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.chudiangameplay.android.R;
import com.chudiangameplay.android.bean.GuanFang_DefaultTagInfo;
import com.chudiangameplay.android.interface_.CommCallBack;
import com.chudiangameplay.android.util.GlideUtil;
import com.chudiangameplay.android.util.Util;
import java.util.ArrayList;
import java.util.List;
/**
* Created by Administrator on 2018/8/22.
*/
public class GuanFangRenZheng_ImgAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
Context mContext;
List<GuanFang_DefaultTagInfo> list = new ArrayList<>();
CommCallBack callBack;
int width = 0;
public GuanFangRenZheng_ImgAdapter(Context mContext, CommCallBack callBack) {
this.mContext = mContext;
this.callBack = callBack;
width = (mContext.getResources().getDisplayMetrics().widthPixels - Util.dip2px(mContext, 16 + 16 + 8 + 8)) / 3;
}
public void setData(List<GuanFang_DefaultTagInfo> list) {
this.list = list;
notifyDataSetChanged();
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
LayoutInflater mInflater = LayoutInflater.from(mContext);
ViewGroup viewGroup = (ViewGroup) mInflater.inflate(R.layout.item_guangfangrenzheng_imglist, null, false);
ContentViewHolder holder = new ContentViewHolder(viewGroup);
return holder;
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
ContentViewHolder viewHolder = (ContentViewHolder) holder;
final GuanFang_DefaultTagInfo info = list.get(position);
viewHolder.tv_name.setText(info.name);
if (info.fileInfo != null) {
viewHolder.iv_img.setVisibility(View.VISIBLE);
GlideUtil.displayImage(mContext, info.fileInfo.url, viewHolder.iv_img, -1);
} else {
viewHolder.iv_img.setVisibility(View.GONE);
}
viewHolder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
callBack.onResult(info);
}
});
}
@Override
public int getItemCount() {
return list == null ? 0 : list.size();
}
class ContentViewHolder extends RecyclerView.ViewHolder {
TextView tv_name;
ImageView iv_img;
RelativeLayout rl_container;
public ContentViewHolder(View itemView) {
super(itemView);
tv_name = itemView.findViewById(R.id.tv_name);
iv_img = itemView.findViewById(R.id.iv_img);
rl_container = itemView.findViewById(R.id.rl_container);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(width, width);
params.setMargins(0, 0, 0, Util.dip2px(mContext, 8));
rl_container.setLayoutParams(params);
}
}
}
package com.chudiangameplay.android.adapter;
import android.content.Context;
import android.graphics.Color;
import android.support.v7.widget.RecyclerView;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.chudiangameplay.android.R;
import com.chudiangameplay.android.bean.CategoryInfo;
import com.chudiangameplay.android.interface_.CommCallBack;
import java.util.ArrayList;
import java.util.List;
/**
* Created by Administrator on 2018/8/22.
*/
public class HomeGuangChangShaiXuanDialog_CatelogAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
Context mContext;
List<CategoryInfo> list = new ArrayList<>();
CommCallBack callBack;
public HomeGuangChangShaiXuanDialog_CatelogAdapter(Context mContext, CommCallBack callBack) {
this.mContext = mContext;
this.callBack = callBack;
}
public void setData(List<CategoryInfo> list) {
this.list = list;
notifyDataSetChanged();
}
public void setSelect(String select) {
if (TextUtils.isEmpty(select)) {
for (int i = 0; i < list.size(); i++) {
list.get(i).isSelect = "全部".equals(list.get(i).name);
}
} else {
String arr[] = select.split(",");
for (int k = 0; k < list.size(); k++) {
list.get(k).isSelect = false;
for (int i = 0; i < arr.length; i++) {
if (!TextUtils.isEmpty(arr[i]) && arr[i].equals(list.get(k).id)) {
list.get(k).isSelect = true;
}
}
}
}
notifyDataSetChanged();
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
LayoutInflater mInflater = LayoutInflater.from(mContext);
ViewGroup viewGroup = (ViewGroup) mInflater.inflate(R.layout.item_homeguangchang_shaixuan_tag, null, false);
ContentViewHolder holder = new ContentViewHolder(viewGroup);
return holder;
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
ContentViewHolder viewHolder = (ContentViewHolder) holder;
final CategoryInfo info = list.get(position);
viewHolder.tv_text.setText(info.name);
if (info.isSelect) {
viewHolder.tv_text.setBackgroundResource(R.drawable.shape_circle_maincolor);
viewHolder.tv_text.setTextColor(Color.parseColor("#ffffff"));
} else {
viewHolder.tv_text.setBackgroundResource(R.drawable.shape_circle_stroke_cccccc);
viewHolder.tv_text.setTextColor(Color.parseColor("#999999"));
}
viewHolder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if ("全部".equals(info.name)) //点了全部
{
for (int i = 0; i < list.size(); i++) {
if ("全部".equals(list.get(i).name)) {
list.get(i).isSelect = true;
} else {
list.get(i).isSelect = false;
}
}
} else {
for (int i = 0; i < list.size(); i++) {
if ("全部".equals(list.get(i).name)) {
list.get(i).isSelect = false;
}
}
info.isSelect = !info.isSelect;
}
if (callBack != null) {
callBack.onResult(info);
}
notifyDataSetChanged();
}
});
}
@Override
public int getItemCount() {
return list == null ? 0 : list.size();
}
class ContentViewHolder extends RecyclerView.ViewHolder {
TextView tv_text;
public ContentViewHolder(View itemView) {
super(itemView);
tv_text = itemView.findViewById(R.id.tv_text);
}
}
}
package com.chudiangameplay.android.adapter;
import android.content.Context;
import android.graphics.Color;
import android.support.v7.widget.RecyclerView;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.chudiangameplay.android.R;
import com.chudiangameplay.android.interface_.CommCallBack;
import com.chudiangameplay.android.responce.GetShaiXuanResponce;
import java.util.ArrayList;
import java.util.List;
/**
* Created by Administrator on 2018/8/22.
*/
public class HomeGuangChangShaiXuanDialog_TagAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
Context mContext;
List<GetShaiXuanResponce.TagInfo> list = new ArrayList<>();
CommCallBack callBack;
public HomeGuangChangShaiXuanDialog_TagAdapter(Context mContext, CommCallBack callBack) {
this.mContext = mContext;
this.callBack = callBack;
}
public void setData(List<GetShaiXuanResponce.TagInfo> list) {
this.list = list;
notifyDataSetChanged();
}
public void setSelect(String select) {
if (TextUtils.isEmpty(select)) {
for (int i = 0; i < list.size(); i++) {
list.get(i).selected = "全部".equals(list.get(i).name);
}
} else {
String arr[] = select.split(",");
for (int k = 0; k < list.size(); k++) {
list.get(k).selected = false;
for (int i = 0; i < arr.length; i++) {
if (!TextUtils.isEmpty(arr[i]) && arr[i].equals(list.get(k).name)) {
list.get(k).selected = true;
}
}
}
}
notifyDataSetChanged();
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
LayoutInflater mInflater = LayoutInflater.from(mContext);
ViewGroup viewGroup = (ViewGroup) mInflater.inflate(R.layout.item_homeguangchang_shaixuan_tag, null, false);
ContentViewHolder holder = new ContentViewHolder(viewGroup);
return holder;
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
ContentViewHolder viewHolder = (ContentViewHolder) holder;
final GetShaiXuanResponce.TagInfo info = list.get(position);
viewHolder.tv_text.setText(info.name);
if (info.selected) {
viewHolder.tv_text.setBackgroundResource(R.drawable.shape_circle_maincolor);
viewHolder.tv_text.setTextColor(Color.parseColor("#ffffff"));
} else {
viewHolder.tv_text.setBackgroundResource(R.drawable.shape_circle_stroke_cccccc);
viewHolder.tv_text.setTextColor(Color.parseColor("#999999"));
}
viewHolder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if ("全部".equals(info.name)) //点了全部
{
for (int i = 0; i < list.size(); i++) {
if ("全部".equals(list.get(i).name)) {
list.get(i).selected = true;
} else {
list.get(i).selected = false;
}
}
} else {
for (int i = 0; i < list.size(); i++) {
if ("全部".equals(list.get(i).name)) {
list.get(i).selected = false;
}
}
info.selected = !info.selected;
}
if (callBack != null) {
callBack.onResult(info);
}
notifyDataSetChanged();
}
});
}
@Override
public int getItemCount() {
return list == null ? 0 : list.size();
}
class ContentViewHolder extends RecyclerView.ViewHolder {
TextView tv_text;
public ContentViewHolder(View itemView) {
super(itemView);
tv_text = itemView.findViewById(R.id.tv_text);
}
}
}
package com.chudiangameplay.android.adapter;
import android.content.Context;
import android.support.v4.view.PagerAdapter;
import android.text.TextUtils;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import com.chudiangameplay.android.R;
import com.chudiangameplay.android.bean.Room_RoomInfo;
import com.chudiangameplay.android.interface_.CommCallBack;
import com.chudiangameplay.android.manager.ChatRoomManager;
import com.chudiangameplay.android.util.GlideUtil;
import java.util.ArrayList;
import java.util.List;
public class HomeMain_RoomListPageAdapter extends PagerAdapter {
private List<Room_RoomInfo> list = new ArrayList<>();
private Context context;
CommCallBack callBack;
public HomeMain_RoomListPageAdapter(Context context, CommCallBack callBack) {
this.context = context;
}
public void setData(List<Room_RoomInfo> list) {
this.list = list;
notifyDataSetChanged();
}
@Override
public Object instantiateItem(final ViewGroup container, int position) {
final Room_RoomInfo info = list.get(position);
View view = View.inflate(context, R.layout.item_homemain_roomlist, null);
ImageView iv_img = view.findViewById(R.id.iv_img);
ImageView iv_renqi = view.findViewById(R.id.iv_renqi);
TextView tv_name = view.findViewById(R.id.tv_name);
TextView tv_people = view.findViewById(R.id.tv_people);
TextView tv_roomnum = view.findViewById(R.id.tv_roomnum);
tv_name.setText(info.name);
tv_people.setText(info.people);
GlideUtil.displayImage(context, info.icon, iv_img, R.drawable.ico_default_img_fang);
GlideUtil.displayImage(context, R.drawable.ico_roomlist_people_num_red, iv_renqi, R.drawable.ico_default_img_fang);
if (!TextUtils.isEmpty(info.currentCompereName)) {
tv_roomnum.setText("[主持] " + info.currentCompereName);
} else {
tv_roomnum.setText("暂无主持");
}
view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ChatRoomManager.getInstance().joinCharRoom(context, info.roomNo);
}
});
container.addView(view);
return view;
}
@Override
public int getCount() {
return list.size();
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == object;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View) object);
}
@Override
public int getItemPosition(Object object) {
return POSITION_NONE;
}
}
package com.chudiangameplay.android.adapter;
import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
import android.support.v7.widget.RecyclerView;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import com.chudiangameplay.android.R;
import com.chudiangameplay.android.bean.UserInfo;
import com.chudiangameplay.android.interface_.CommCallBack;
import com.chudiangameplay.android.module_im.ui.activity.IMChartDetailAcitivty;
import com.chudiangameplay.android.responce.GetMyPlayerResponce;
import com.chudiangameplay.android.ui.activity.UserDetailActivity;
import com.chudiangameplay.android.util.GlideUtil;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
/**
* Created by Administrator on 2018/8/22.
*/
public class HomeMyPlayerListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
Context mContext;
List<GetMyPlayerResponce.MyPlayerInfo> list = new ArrayList<>();
CommCallBack callBack;
public HomeMyPlayerListAdapter(Context mContext, CommCallBack callBack) {
this.mContext = mContext;
this.callBack = callBack;
}
public void setData(List<GetMyPlayerResponce.MyPlayerInfo> list) {
this.list = list;
notifyDataSetChanged();
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
LayoutInflater mInflater = LayoutInflater.from(mContext);
ViewGroup viewGroup = (ViewGroup) mInflater.inflate(R.layout.item_homemain_myplayer, null, false);
ContentViewHolder holder = new ContentViewHolder(viewGroup);
return holder;
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
ContentViewHolder viewHolder = (ContentViewHolder) holder;
final GetMyPlayerResponce.MyPlayerInfo info = list.get(position);
GlideUtil.displayImage(mContext, info.headPortraitsUrl, viewHolder.iv_head, R.drawable.ico_im_default_head);
viewHolder.tv_name.setText(info.nickname);
viewHolder.tv_order.setText("下单" + info.count + "次");
if (TextUtils.isEmpty(info.emblemSimpleUrl)){
viewHolder.iv_badge.setVisibility(View.GONE);
}else{
viewHolder.iv_badge.setVisibility(View.VISIBLE);
GlideUtil.displayImage(mContext,info.emblemSimpleUrl,viewHolder.iv_badge,-1);
}
//在线时间
try {
String time = "";
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
long activeTime = sdf1.parse(info.userActiveTime).getTime(); //最后在线时间
long timeMillis = (System.currentTimeMillis() - activeTime) / 1000;
if (timeMillis < 60 * 10) //10分钟内
{
time = "在线";
} else if (timeMillis < 60 * 60) // 一小时内
{
time = (int) timeMillis / 60 + "分钟前";
} else if (timeMillis < 60 * 60 * 24) // 一天内
{
time = (int) timeMillis / (60 * 60) + "小时前";
} else {
time = (int) timeMillis / (60 * 60 * 24) + "天前";
}
viewHolder.tv_online.setText(time);
if ("在线".equals(time)) {
viewHolder.tv_online.setTextColor(Color.parseColor("#1BB934"));
} else {
viewHolder.tv_online.setTextColor(Color.parseColor("#999999"));
}
} catch (Exception e) {
viewHolder.tv_online.setText("");
}
//点击IM
viewHolder.tv_im.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(mContext, IMChartDetailAcitivty.class);
intent.putExtra("toChatUsername", info.imId);
mContext.startActivity(intent);
}
});
viewHolder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(mContext, UserDetailActivity.class);
intent.putExtra("uid", info.userId);
mContext.startActivity(intent);
}
});
}
@Override
public int getItemCount() {
return list == null ? 0 : list.size();
}
class ContentViewHolder extends RecyclerView.ViewHolder {
TextView tv_name, tv_order, tv_online, tv_im;
ImageView iv_head,iv_badge;
public ContentViewHolder(View itemView) {
super(itemView);
tv_name = itemView.findViewById(R.id.tv_name);
iv_head = itemView.findViewById(R.id.iv_head);
tv_order = itemView.findViewById(R.id.tv_order);
tv_online = itemView.findViewById(R.id.tv_online);
tv_im = itemView.findViewById(R.id.tv_im);
iv_badge = itemView.findViewById(R.id.iv_badge);
}
}
}
package com.chudiangameplay.android.adapter;
import android.content.Context;
import android.content.Intent;
import android.support.v7.widget.RecyclerView;
import android.text.Html;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.chudiangameplay.android.R;
import com.chudiangameplay.android.bean.ContactInfo;
import com.chudiangameplay.android.interface_.CommCallBack;
import com.chudiangameplay.android.ui.activity.UserDetailActivity;
import com.chudiangameplay.android.util.GlideUtil;
import java.util.List;
/**
* Created by Administrator on 2018/8/22.
*/
public class HomeSearchListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
Context mContext;
List<ContactInfo> list;
CommCallBack callBack;
String keyWords;
public HomeSearchListAdapter(Context mContext, CommCallBack callBack) {
this.mContext = mContext;
this.callBack = callBack;
}
public void setData(List<ContactInfo> list, String keyWords) {
this.list = list;
this.keyWords = keyWords;
notifyDataSetChanged();
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
LayoutInflater mInflater = LayoutInflater.from(mContext);
ViewGroup viewGroup = (ViewGroup) mInflater.inflate(R.layout.item_contact, null, false);
ContentViewHolder holder = new ContentViewHolder(viewGroup);
return holder;
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
ContentViewHolder contentViewHolder = (ContentViewHolder) holder;
final ContactInfo contactInfo = list.get(position);
GlideUtil.displayImage(mContext, contactInfo.headPortraitsUrl, contentViewHolder.iv_head, R.drawable.ico_im_default_head, 100);
contentViewHolder.tv_user_id.setText(contactInfo.userCode);
if (!TextUtils.isEmpty(contactInfo.userCode)) {
contentViewHolder.ll_id.setVisibility(View.VISIBLE);
} else {
contentViewHolder.ll_id.setVisibility(View.GONE);
}
try {
String str = "";
if (TextUtils.isEmpty(keyWords)) {
str = contactInfo.nickname;
} else {
String tempName = contactInfo.nickname;
while (tempName.contains(keyWords)) {
int index = tempName.indexOf(keyWords);
str += tempName.substring(0, index); //关键字前的文字
str += "<font color='#FC203F'>" + keyWords + "</font>"; //关键字
tempName = tempName.substring(index + keyWords.length(), tempName.length());
}
str += tempName;
}
if (TextUtils.isEmpty(str)) {
contentViewHolder.tv_nickname.setText(contactInfo.nickname);
} else {
contentViewHolder.tv_nickname.setText(Html.fromHtml(str));
}
} catch (Exception e) {
contentViewHolder.tv_nickname.setText("");
}
contentViewHolder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(mContext, UserDetailActivity.class);
intent.putExtra("uid", contactInfo.id);
mContext.startActivity(intent);
}
});
}
@Override
public int getItemCount() {
return list == null ? 0 : list.size();
}
class ContentViewHolder extends RecyclerView.ViewHolder {
ImageView iv_head;
TextView tv_nickname, tv_guanzhu, tv_sendmsg, tv_user_id;
LinearLayout ll_id;
public ContentViewHolder(View itemView) {
super(itemView);
iv_head = (ImageView) itemView.findViewById(R.id.iv_head);
tv_nickname = (TextView) itemView.findViewById(R.id.tv_nickname);
tv_guanzhu = (TextView) itemView.findViewById(R.id.tv_guanzhu);
tv_sendmsg = (TextView) itemView.findViewById(R.id.tv_sendmsg);
tv_user_id = itemView.findViewById(R.id.tv_user_id);
ll_id = itemView.findViewById(R.id.ll_id);
}
}
}
package com.chudiangameplay.android.adapter;
import android.content.Context;
import android.content.Intent;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import com.chudiangameplay.android.R;
import com.chudiangameplay.android.interface_.CommCallBack;
import com.chudiangameplay.android.responce.Home_GetListResponce;
import com.chudiangameplay.android.ui.activity.GoodListActivity;
import com.chudiangameplay.android.util.GlideUtil;
import java.util.ArrayList;
import java.util.List;
/**
* Created by Administrator on 2018/8/22.
*/
public class Home_FirstListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
Context mContext;
List<Home_GetListResponce.FirstListInfo> list = new ArrayList<>();
CommCallBack callBack;
public Home_FirstListAdapter(Context mContext, CommCallBack callBack) {
this.mContext = mContext;
this.callBack = callBack;
}
public void setData(List<Home_GetListResponce.FirstListInfo> list) {
this.list = list;
notifyDataSetChanged();
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
LayoutInflater mInflater = LayoutInflater.from(mContext);
ViewGroup viewGroup = (ViewGroup) mInflater.inflate(R.layout.item_home_firstlist, null, false);
ContentViewHolder holder = new ContentViewHolder(viewGroup);
return holder;
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
ContentViewHolder viewHolder = (ContentViewHolder) holder;
final Home_GetListResponce.FirstListInfo info = list.get(position);
viewHolder.tv_name.setText(info.name);
viewHolder.tv_text.setText(info.exampleAbout);
GlideUtil.displayImage(mContext, info.indexIcon, viewHolder.iv_bg, -1, 7);
viewHolder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(mContext, GoodListActivity.class);
intent.putExtra("parent_categoryId", info.id);
mContext.startActivity(intent);
}
});
}
@Override
public int getItemCount() {
return list == null ? 0 : list.size();
}
class ContentViewHolder extends RecyclerView.ViewHolder {
TextView tv_name, tv_text;
ImageView iv_bg;
public ContentViewHolder(View itemView) {
super(itemView);
tv_name = (TextView) itemView.findViewById(R.id.tv_name);
tv_text = (TextView) itemView.findViewById(R.id.tv_text);
iv_bg = (ImageView) itemView.findViewById(R.id.iv_bg);
}
}
}
package com.chudiangameplay.android.adapter;
import android.content.Context;
import android.text.TextUtils;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import com.chudiangameplay.android.R;
import com.chudiangameplay.android.interface_.CommCallBack;
import com.chudiangameplay.android.module_im.bean.UserAttributeInfo;
import com.chudiangameplay.android.module_im.chatrow.EaseChatRowText;
import com.chudiangameplay.android.module_im.chatrow.EaseChatRowText_Gift;
import com.chudiangameplay.android.module_im.chatrow.EaseChatRowText_System;
import com.chudiangameplay.android.module_im.chatrow.EaseChatRowText_Xiaomishu;
import com.chudiangameplay.android.module_im.constant.IMConstants;
import com.chudiangameplay.android.module_im.manager.IM_Manager;
import com.chudiangameplay.android.module_im.util.IMUtil;
import com.chudiangameplay.android.module_im.util.IM_DateUtil;
import com.chudiangameplay.android.tool.Log;
import com.chudiangameplay.android.ui.view.RoundImageView;
import com.chudiangameplay.android.util.GlideUtil;
import com.google.gson.Gson;
import com.hyphenate.chat.EMConversation;
import com.hyphenate.chat.EMMessage;
import com.hyphenate.chat.EMTextMessageBody;
import com.rockerhieu.emojicon.EmojiconTextView;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* Created by Administrator on 2016/10/25.
*/
public class Home_IM_Conversation_SwipeListAdapter extends BaseAdapter {
Context mContext;
List<EMConversation> list = new ArrayList<>();
CommCallBack callBack;
public Home_IM_Conversation_SwipeListAdapter(Context mContext, CommCallBack callBack) {
this.mContext = mContext;
this.callBack = callBack;
}
public void setData(List<EMConversation> list) {
this.list.clear();
this.list.addAll(list);
notifyDataSetChanged();
}
@Override
public int getCount() {
return list == null ? 0 : list.size();
}
@Override
public Object getItem(int position) {
return list.get(position);
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
final ViewHoder hoder;
if (convertView == null) {
convertView = View.inflate(mContext, R.layout.item_homeim_conversation_list, null);
hoder = new ViewHoder();
hoder.tv_name = (TextView) convertView.findViewById(R.id.tv_name);
hoder.last_msg = (EmojiconTextView) convertView.findViewById(R.id.last_msg);
hoder.tv_time = (TextView) convertView.findViewById(R.id.tv_time);
hoder.iv_head = (RoundImageView) convertView.findViewById(R.id.iv_head);
hoder.tv_unreadnum = (TextView) convertView.findViewById(R.id.tv_unreadnum);
hoder.tv_unread_system = (TextView) convertView.findViewById(R.id.tv_unread_system);
hoder.iv_faild = (ImageView) convertView.findViewById(R.id.iv_faild);
hoder.iv_loading = (ImageView) convertView.findViewById(R.id.iv_loading);
hoder.iv_vip = (ImageView) convertView.findViewById(R.id.iv_vip);
hoder.iv_notnotice = (ImageView) convertView.findViewById(R.id.iv_notnotice);
hoder.iv_badge = convertView.findViewById(R.id.iv_badge);
GlideUtil.displayImage(mContext, R.drawable.ico_im_loading, hoder.iv_loading, -1);
convertView.setTag(hoder);
} else {
hoder = (ViewHoder) convertView.getTag();
}
final EMConversation conversation = list.get(position);
String username = conversation.conversationId();
//最后一条消息
EMMessage emMessage = conversation.getLastMessage();
//时间
if (emMessage != null) {
hoder.tv_time.setText(IM_DateUtil.getTimestampString(new Date(conversation.getLastMessage().getMsgTime())));
} else {
hoder.tv_time.setText("");
}
//头像 昵称
try {
UserAttributeInfo userAttributeInfo = null;
if (IMUtil.isSystemInfo(username)) {
userAttributeInfo = IMUtil.getSystemAttributeInfo(username);
} else {
userAttributeInfo = new Gson().fromJson(conversation.getExtField(), UserAttributeInfo.class);
}
hoder.tv_name.setText(userAttributeInfo.nickname);
if (TextUtils.isEmpty(userAttributeInfo.emblemSimpleUrl)) {
hoder.iv_badge.setVisibility(View.GONE);
} else {
hoder.iv_badge.setVisibility(View.VISIBLE);
GlideUtil.displayImage(mContext, userAttributeInfo.emblemSimpleUrl, hoder.iv_badge, -1);
}
if (TextUtils.isEmpty(userAttributeInfo.levelUrl)) {
hoder.iv_vip.setVisibility(View.GONE);
} else {
hoder.iv_vip.setVisibility(View.VISIBLE);
GlideUtil.displayImage(mContext, userAttributeInfo.levelUrl, hoder.iv_vip, -1);
}
if (userAttributeInfo.isSystem) {
hoder.iv_head.setImageResource(userAttributeInfo.systemHeadurl);
} else {
GlideUtil.displayImageCompress(mContext, userAttributeInfo.headurl, hoder.iv_head, R.drawable.ico_im_default_head);
}
} catch (Exception e) {
hoder.tv_name.setText(username);
hoder.iv_head.setImageResource(R.drawable.ico_im_default_head);
}
if (emMessage != null) {
String text = "";
if (emMessage.getType() == EMMessage.Type.TXT) {
text = ((EMTextMessageBody) emMessage.getBody()).getMessage();
Object pwsData = emMessage.ext().get("pwsData");
//小秘书推荐消息
if (pwsData != null) {
try {
JSONObject jsonObject = new JSONObject((String) pwsData);
if (jsonObject.has("type")) {
String type = jsonObject.getString("type");
if ("rmd".equals(type)) { //客服陪玩师 推荐消息
} else if ("gift".equals(type)) { //发礼物消息
text = "[礼物]";
} else if ("sys".equals(type)) {
} else {
}
}
} catch (JSONException e) {
e.printStackTrace();
}
}
} else if (emMessage.getType() == EMMessage.Type.IMAGE) {
text = "[图片]";
} else if (emMessage.getType() == EMMessage.Type.VOICE) {
text = "[语音]";
}
if (!IMUtil.isSystemInfo(conversation.conversationId()) || conversation.conversationId().equalsIgnoreCase(IMConstants.ConversationId_XiaoMiShu)
|| username.equalsIgnoreCase(IMConstants.ConversationId_QiangDan) || username.equalsIgnoreCase(IMConstants.ConversationId_PaiDanZhongXin)
) //系统消息
{
hoder.last_msg.setText(text);
} else {
//系统消息
hoder.last_msg.setText(emMessage.ext().get("subhead") + "");
}
} else {
hoder.last_msg.setText("");
}
//抢单消息免打扰图标
if (username.equalsIgnoreCase(IMConstants.ConversationId_QiangDan) && !IM_Manager.getQiangDan_Setting(mContext).robOrderMsgDnd) {
hoder.iv_notnotice.setVisibility(View.VISIBLE);
} else if (username.equalsIgnoreCase(IMConstants.ConversationId_PaiDanZhongXin) && IM_Manager.getQiangDan_Setting(mContext).assignOrderMsgDnd) //派单消息免打扰图标
{
hoder.iv_notnotice.setVisibility(View.VISIBLE);
} else {
hoder.iv_notnotice.setVisibility(View.GONE);
}
//消息数
int unreadMsgCount = conversation.getUnreadMsgCount();
hoder.tv_unread_system.setVisibility(View.GONE);
hoder.tv_unreadnum.setVisibility(View.GONE);
if (unreadMsgCount > 0) {
if (username.equalsIgnoreCase(IMConstants.ConversationId_QiangDan) || username.equalsIgnoreCase(IMConstants.ConversationId_PaiDanZhongXin)) {
hoder.tv_unread_system.setVisibility(View.VISIBLE);
} else {
hoder.tv_unreadnum.setVisibility(View.VISIBLE);
}
}
hoder.tv_unreadnum.setText(unreadMsgCount <= 99 ? unreadMsgCount + "" : "...");
hoder.iv_faild.setVisibility(View.GONE);
hoder.iv_loading.setVisibility(View.GONE);
if (emMessage != null) {
if (emMessage.status() == EMMessage.Status.INPROGRESS) {
hoder.iv_loading.setVisibility(View.VISIBLE);
} else if (emMessage.status() == EMMessage.Status.FAIL) {
hoder.iv_faild.setVisibility(View.VISIBLE);
}
}
convertView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (callBack != null) {
callBack.onResult(conversation);
}
}
});
return convertView;
}
public class ViewHoder {
TextView tv_name, tv_time, tv_unreadnum, tv_unread_system;
ImageView iv_faild, iv_loading, iv_vip, iv_notnotice, iv_badge;
RoundImageView iv_head;
EmojiconTextView last_msg;
}
}
package com.chudiangameplay.android.adapter;
import android.content.Context;
import android.content.Intent;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.chudiangameplay.android.R;
import com.chudiangameplay.android.bean.ProductInfo;
import com.chudiangameplay.android.interface_.CommCallBack;
import com.chudiangameplay.android.ui.activity.UserDetailActivity;
import com.chudiangameplay.android.ui.view.RoundImageView;
import com.chudiangameplay.android.util.GlideUtil;
import com.chudiangameplay.android.util.Util;
import java.util.ArrayList;
import java.util.List;
/**
* Created by Administrator on 2018/8/22.
*/
public class Home_Main_ChildListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
Context mContext;
List<ProductInfo> list = new ArrayList<>();
CommCallBack callBack;
public Home_Main_ChildListAdapter(Context mContext, CommCallBack callBack) {
this.mContext = mContext;
this.callBack = callBack;
}
public void setData(List<ProductInfo> list) {
this.list = list;
notifyDataSetChanged();
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
LayoutInflater mInflater = LayoutInflater.from(mContext);
ViewGroup viewGroup = (ViewGroup) mInflater.inflate(R.layout.item_home_main_childlist, null, false);
ContentViewHolder holder = new ContentViewHolder(viewGroup);
return holder;
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
ContentViewHolder viewHolder = (ContentViewHolder) holder;
final ProductInfo info = list.get(position);
GlideUtil.displayImageCompress(mContext, info.mainPhoto, viewHolder.iv_img, R.drawable.ico_default_img_fang);
viewHolder.tv_name.setText(info.nickName);
viewHolder.tv_price.setText("" + Util.numDecimalFormat(info.price)+"币");
viewHolder.tv_unit.setText("/" + info.unit);
if (info.onLine) {
viewHolder.tv_zhibo.setVisibility(View.VISIBLE);
} else {
viewHolder.tv_zhibo.setVisibility(View.GONE);
}
viewHolder.tv_ordernum.setText(info.techOrderCount + " 次接单");
viewHolder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(mContext, UserDetailActivity.class);
intent.putExtra("productId", info.id);
intent.putExtra("uid", info.userInfo.userId);
mContext.startActivity(intent);
}
});
if (position == 0) //
{
viewHolder.view_blank.setVisibility(View.VISIBLE);
} else {
viewHolder.view_blank.setVisibility(View.GONE);
}
}
@Override
public int getItemCount() {
return list == null ? 0 : list.size();
}
class ContentViewHolder extends RecyclerView.ViewHolder {
TextView tv_name, tv_price, tv_unit, tv_zhibo, tv_ordernum;
RoundImageView iv_img;
View view_blank;
public ContentViewHolder(View itemView) {
super(itemView);
tv_name = (TextView) itemView.findViewById(R.id.tv_name);
iv_img = (RoundImageView) itemView.findViewById(R.id.iv_img);
tv_price = (TextView) itemView.findViewById(R.id.tv_price);
tv_unit = (TextView) itemView.findViewById(R.id.tv_unit);
tv_zhibo = (TextView) itemView.findViewById(R.id.tv_zhibo);
tv_ordernum = (TextView) itemView.findViewById(R.id.tv_ordernum);
view_blank = itemView.findViewById(R.id.view_blank);
}
}
}
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!