Commit df774258ceebab6502cfb6c4d706da85dc2f2b77

Authored by 韩亚云
1 parent 505390d5

添加分享功能

Showing 65 changed files with 4687 additions and 3 deletions

Too many changes to show.

To preserve performance only 65 of 365 files are displayed.

app/build.gradle
... ... @@ -77,7 +77,7 @@ dependencies {
77 77 implementation project(':moudle_pedometer')
78 78 implementation "com.cnlive.libs:base:$rootProject.libBase"
79 79 implementation "com.qmuiteam:qmui:$rootProject.qmui"
80   - implementation "com.cnlive:app_arch:$rootProject.appArch"
  80 + implementation "com.cnlive.libs:arch:$rootProject.appArch"
81 81  
82 82 //ARouter
83 83 implementation "com.alibaba:arouter-api:$rootProject.arouterApiVersion"
... ...
app_user/.gitignore 0 → 100644
  1 +/build
... ...
app_user/build.gradle 0 → 100644
  1 +apply plugin: 'com.android.library'
  2 +
  3 +android {
  4 + compileSdkVersion rootProject.ext.compileSdkVersion
  5 + buildToolsVersion rootProject.ext.buildToolsVersion
  6 +
  7 + defaultConfig {
  8 + minSdkVersion rootProject.ext.minSdkVersion
  9 + targetSdkVersion rootProject.ext.targetSdkVersion
  10 + versionCode rootProject.ext.versionCode
  11 + versionName rootProject.ext.versionName
  12 + }
  13 +
  14 + buildTypes {
  15 + debug{
  16 + resValue("string", "ACCOUNT_LABEL", "网家家 内测")
  17 + resValue("string", "ACCOUNT_TYPE", "com.cnlive.strike.debug.AccountType")
  18 + resValue("string", "ACCOUNT_PROVIDE", "com.cnlive.strike.debug.AccountProvide")
  19 + }
  20 + release {
  21 + resValue("string", "ACCOUNT_LABEL", "网家家")
  22 + resValue("string", "ACCOUNT_TYPE", "com.cnlive.strike.AccountType")
  23 + resValue("string", "ACCOUNT_PROVIDE", "com.cnlive.strike.AccountProvide")
  24 + }
  25 + }
  26 +
  27 + compileOptions {
  28 + sourceCompatibility JavaVersion.VERSION_1_8
  29 + targetCompatibility JavaVersion.VERSION_1_8
  30 + }
  31 +
  32 +}
  33 +
  34 +dependencies {
  35 + implementation fileTree(dir: 'libs', include: ['*.jar'])
  36 + implementation "com.android.support:appcompat-v7:$rootProject.appcompatV7"
  37 + //视讯云SDK
  38 + implementation "com.cnlive:lib_cnutil:$rootProject.libCnUtil"
  39 +
  40 + implementation "com.cnlive.libs:base:$rootProject.libBase"
  41 + implementation project(':lib_network')
  42 +}
... ...
app_user/proguard-rules.pro 0 → 100644
  1 +# Add project specific ProGuard rules here.
  2 +# You can control the set of applied configuration files using the
  3 +# proguardFiles setting in build.gradle.
  4 +#
  5 +# For more details, see
  6 +# http://developer.android.com/guide/developing/tools/proguard.html
  7 +
  8 +# If your project uses WebView with JS, uncomment the following
  9 +# and specify the fully qualified class name to the JavaScript interface
  10 +# class:
  11 +#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
  12 +# public *;
  13 +#}
  14 +
  15 +# Uncomment this to preserve the line number information for
  16 +# debugging stack traces.
  17 +#-keepattributes SourceFile,LineNumberTable
  18 +
  19 +# If you keep the line number information, uncomment this to
  20 +# hide the original source file name.
  21 +#-renamesourcefileattribute SourceFile
... ...
app_user/src/debug/res/mipmap-hdpi/icon_account.png 0 → 100644

4.41 KB

app_user/src/debug/res/mipmap-ldpi/icon_account.png 0 → 100644

2.17 KB

app_user/src/debug/res/mipmap-xhdpi/icon_account.png 0 → 100644

5.93 KB

app_user/src/debug/res/mipmap-xxhdpi/icon_account.png 0 → 100644

9.25 KB

app_user/src/debug/res/mipmap-xxxhdpi/icon_account.png 0 → 100644

13.2 KB

app_user/src/main/AndroidManifest.xml 0 → 100644
  1 +<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  2 + xmlns:tools="http://schemas.android.com/tools"
  3 + package="com.cnlive.strike.user.auth">
  4 +
  5 + <!--账户自动更新 App保活相关-->
  6 + <uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS" />
  7 + <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
  8 + <uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />
  9 + <uses-permission android:name="android.permission.ACTION_LIGHT_DEVICE_IDLE_MODE_CHANGED" />
  10 + <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
  11 + <!--账户权限相关-->
  12 + <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
  13 + <uses-permission android:name="android.permission.GET_ACCOUNTS" />
  14 + <uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" />
  15 + <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL" />
  16 + <uses-permission
  17 + android:name="android.permission.ACCOUNT_MANAGER"
  18 + tools:ignore="ProtectedPermissions" />
  19 +
  20 + <application>
  21 + <activity android:name=".AccountAuthenticatorActivity"/>
  22 +
  23 + <service
  24 + android:name=".UserAccountService"
  25 + tools:ignore="ExportedService">
  26 + <intent-filter>
  27 + <action android:name="android.accounts.AccountAuthenticator" />
  28 + </intent-filter>
  29 +
  30 + <meta-data
  31 + android:name="android.accounts.AccountAuthenticator"
  32 + android:resource="@xml/authenticator" />
  33 + </service>
  34 +
  35 + <service
  36 + android:name=".UserSyncService"
  37 + android:exported="true">
  38 + <intent-filter>
  39 + <action android:name="android.content.SyncAdapter" />
  40 + </intent-filter>
  41 +
  42 + <meta-data
  43 + android:name="android.content.SyncAdapter"
  44 + android:resource="@xml/account_sync_adapter" />
  45 + </service>
  46 +
  47 + <provider
  48 + android:name=".UserAccountProvider"
  49 + android:authorities="@string/ACCOUNT_PROVIDE"
  50 + android:exported="false"
  51 + android:syncable="true" />
  52 + </application>
  53 +</manifest>
... ...
app_user/src/main/java/com/cnlive/strike/user/UserUtilAction.java 0 → 100644
  1 +package com.cnlive.strike.user;
  2 +
  3 +import android.content.Context;
  4 +import android.os.Environment;
  5 +import android.text.TextUtils;
  6 +
  7 +import com.cnlive.libs.base.application.AppConfig;
  8 +import com.cnlive.libs.base.logic.Logic;
  9 +import com.cnlive.libs.base.logic.callback.DataCallback;
  10 +import com.cnlive.libs.data.network.Subscriber;
  11 +import com.cnlive.strike.data.network.api.ApiRequest;
  12 +import com.cnlive.strike.data.network.api.ApiServiceOpen;
  13 +import com.cnlive.strike.data.network.api.ApiSubscriber;
  14 +import com.cnlive.strike.data.network.model.BaseInfo;
  15 +import com.cnlive.strike.data.network.model.FaceData;
  16 +import com.cnlive.strike.data.network.model.TokenData;
  17 +import com.cnlive.strike.data.network.model.UserData;
  18 +
  19 +import java.io.File;
  20 +import java.util.ArrayList;
  21 +import java.util.HashMap;
  22 +import java.util.List;
  23 +import java.util.Map;
  24 +
  25 +import io.reactivex.Flowable;
  26 +import io.reactivex.android.schedulers.AndroidSchedulers;
  27 +import io.reactivex.disposables.Disposable;
  28 +import io.reactivex.schedulers.Schedulers;
  29 +import okhttp3.MediaType;
  30 +import okhttp3.MultipartBody;
  31 +import okhttp3.RequestBody;
  32 +import top.zibin.luban.Luban;
  33 +
  34 +import static com.cnlive.libs.base.logic.Config.SUCCESS;
  35 +
  36 +
  37 +/**
  38 + * Created by Lynn on 2018/10/15.
  39 + */
  40 +
  41 +public class UserUtilAction {
  42 + public static int TOKEN_ERROR_CODE = -900001;
  43 + public static String TOKEN_ERROR_MSG = "用户token为空";
  44 +
  45 + /**
  46 + * 快捷登录前发送手机验证码
  47 + *
  48 + * @param context
  49 + * @param mobile 手机号
  50 + * @return
  51 + */
  52 + public static Logic.Action<Object, BaseInfo> sendMsgBefQuickLoginAction(final Context context, final String mobile, String countryCode) {
  53 + return (data, callback) -> {
  54 + Map<String, String> requestMap = new HashMap<>();
  55 + requestMap.put("appId", AppConfig.getAppId());
  56 + requestMap.put("mobile", mobile);
  57 + requestMap.put("countryCode", countryCode);
  58 + requestMap.put("clientPlat", "a");
  59 + return ApiRequest.service(ApiServiceOpen.class, service -> service.sendVerifyCodeBefQuickLogin(requestMap)).subscribe(context, callback);
  60 + };
  61 +
  62 + }
  63 +
  64 + /**
  65 + * 快捷登录
  66 + *
  67 + * @param context
  68 + * @param userPhone 手机号
  69 + * @param userCode 验证码
  70 + * @return
  71 + */
  72 + public static Logic.Action<Object, BaseInfo<UserData>> quickLoginAction(Context context, String userPhone, String userCode, String countryCode) {
  73 + return (data, callback) -> {
  74 + Map<String, String> requestMap = new HashMap<>();
  75 + requestMap.put("appId", AppConfig.getAppId());
  76 + requestMap.put("userName", userPhone);
  77 + requestMap.put("verificationCode", userCode);
  78 + requestMap.put("uuid", AppConfig.getAppUUID());
  79 + requestMap.put("frmId", AppConfig.getAppChannel());
  80 + requestMap.put("countryCode", countryCode);
  81 + requestMap.put("clientPlat", "a");
  82 + return ApiRequest.service(ApiServiceOpen.class, service -> service.quickLogin(requestMap)).subscribe(context, callback);
  83 + };
  84 + }
  85 +
  86 + /**
  87 + * 登录
  88 + *
  89 + * @param context
  90 + * @param userName 用户名
  91 + * @param pwd 密码
  92 + * @return
  93 + */
  94 + public static Logic.Action<Object, BaseInfo<UserData>> loginAction(Context context, String userName, String pwd) {
  95 + return (data, callback) -> {
  96 + Map<String, String> map = new HashMap<>();
  97 + map.put("appId", AppConfig.getAppId());
  98 + map.put("userName", userName);
  99 + map.put("pwd", pwd);
  100 + map.put("uuid", AppConfig.getAppUUID());
  101 + map.put("frmId", "");
  102 + map.put("clientPlat", "a");
  103 + return ApiRequest.service(ApiServiceOpen.class, service -> service.login(map)).subscribe(context, callback);
  104 + };
  105 + }
  106 +
  107 + /**
  108 + * 查询用户信息
  109 + *
  110 + * @param context
  111 + * @param userId 用户ID
  112 + * @param srcUid 被查询用户ID
  113 + * @param token 查询者平台TOKEN
  114 + * @return
  115 + */
  116 + public static Logic.Action<Object, BaseInfo<UserData>> queryUserInfo(Context context, String userId, String srcUid, String token) {
  117 + return (data, callback) -> {
  118 + Map<String, String> map = new HashMap<>();
  119 + map.put("appId", AppConfig.getAppId());
  120 + map.put("uid", userId);
  121 + map.put("srcUid", srcUid);
  122 + map.put("clientPlat", "a");
  123 + map.put("token", token);
  124 + if (TextUtils.isEmpty(token)) {
  125 + callback.callback(TOKEN_ERROR_CODE, TOKEN_ERROR_MSG, null);
  126 + }
  127 + return ApiRequest.service(ApiServiceOpen.class, service -> service.queryUserInfo(map)).subscribe(context, callback);
  128 + };
  129 + }
  130 +
  131 + /**
  132 + * 修改用户附加信息
  133 + *
  134 + * @param context
  135 + * @param userId 用户id
  136 + * @param extInfo 扩展信息
  137 + * @param token 平台token
  138 + * @return
  139 + */
  140 + public static Logic.Action<Object, BaseInfo> updateUserExtInfo(Context context, String userId, String extInfo, String token) {
  141 + return (data, callback) -> {
  142 + Map<String, String> map = new HashMap<>();
  143 + map.put("appId", AppConfig.getAppId());
  144 + map.put("uid", userId);
  145 + map.put("extInfo", extInfo);
  146 + map.put("token", token);
  147 + map.put("clientPlat", "a");
  148 + if (TextUtils.isEmpty(token)) {
  149 + callback.callback(TOKEN_ERROR_CODE, TOKEN_ERROR_MSG, null);
  150 + }
  151 + return ApiRequest.service(ApiServiceOpen.class, service -> service.updateUserExtInfo(map)).subscribe(context, callback);
  152 + };
  153 + }
  154 +
  155 + /**
  156 + * 修改用户单项信息
  157 + *
  158 + * @param context
  159 + * @param uid 用户Id
  160 + * @param type nickName-昵称,gender-性别,email-邮箱, location-联系方式
  161 + * @param value 对应的信息,性别,m:男、f:女、n:未知
  162 + * @param token 平台TOKEN
  163 + * @return
  164 + */
  165 + public static Logic.Action<Object, BaseInfo> modifyUserInfo(Context context, String uid, String type, String value, String token) {
  166 + return (data, callback) -> {
  167 + Map<String, String> map = new HashMap<>();
  168 + map.put("appId", AppConfig.getAppId());
  169 + map.put("uid", uid);
  170 + map.put("type", type);
  171 + map.put("value", value);
  172 + map.put("clientPlat", "a");
  173 + map.put("token", token);
  174 + if (TextUtils.isEmpty(token)) {
  175 + callback.callback(TOKEN_ERROR_CODE, TOKEN_ERROR_MSG, null);
  176 + }
  177 + return ApiRequest.service(ApiServiceOpen.class, service -> service.modifyUserInfo(map)).subscribe(context, callback);
  178 + };
  179 + }
  180 +
  181 + /**
  182 + * 注册或修改手机号前发手机验证码
  183 + *
  184 + * @param context
  185 + * @param mobile 手机号
  186 + * @return
  187 + */
  188 + public static Logic.Action<Object, BaseInfo> sendVerifyCodeForUnRegistered(Context context, String mobile, String countryCode) {
  189 + return (data, callback) -> {
  190 + Map<String, String> map = new HashMap<>();
  191 + map.put("appId", AppConfig.getAppId());
  192 + map.put("mobile", mobile);
  193 + map.put("clientPlat", "a");
  194 + map.put("countryCode", countryCode);
  195 + return ApiRequest.service(ApiServiceOpen.class, service -> service.sendVerifyCodeForUnRegistered(map)).subscribe(context, callback);
  196 + };
  197 + }
  198 +
  199 + /**
  200 + * 更新手机号
  201 + *
  202 + * @param context
  203 + * @param uid 用户ID
  204 + * @param mobile 手机号
  205 + * @param verificationCode 手机验证码
  206 + * @param token 平台TOKEN
  207 + * @return
  208 + */
  209 + public static Logic.Action<Object, BaseInfo> updateMobile(Context context, String uid, String mobile, String verificationCode, String token, String countryCode) {
  210 + return (data, callback) -> {
  211 + Map<String, String> map = new HashMap<>();
  212 + map.put("appId", AppConfig.getAppId());
  213 + map.put("uid", uid);
  214 + map.put("mobile", mobile);
  215 + map.put("verificationCode", verificationCode);
  216 + map.put("clientPlat", "a");
  217 + map.put("countryCode", countryCode);
  218 + map.put("token", token);
  219 + if (TextUtils.isEmpty(token)) {
  220 + callback.callback(TOKEN_ERROR_CODE, TOKEN_ERROR_MSG, null);
  221 + }
  222 + return ApiRequest.service(ApiServiceOpen.class, service -> service.updateMobile(map)).subscribe(context, callback);
  223 + };
  224 + }
  225 +
  226 + /**
  227 + * 注册
  228 + *
  229 + * @param context
  230 + * @param userName 邮箱或手机
  231 + * @param pwd 密码
  232 + * @param verificationCode 手机验证码(手机号注册时必填)
  233 + * @return
  234 + */
  235 + public static Logic.Action<Object, BaseInfo<UserData>> register(Context context, String userName, String pwd, String verificationCode) {
  236 + return (data, callback) -> {
  237 + Map<String, String> map = new HashMap<>();
  238 + map.put("appId", AppConfig.getAppId());
  239 + map.put("userName", userName);
  240 + map.put("pwd", pwd);
  241 + map.put("verificationCode", verificationCode);
  242 + map.put("invitationCode", "");
  243 + map.put("uuid", AppConfig.getAppUUID());
  244 + map.put("frmId", "");
  245 + map.put("clientPlat", "a");
  246 + return ApiRequest.service(ApiServiceOpen.class, service -> service.register(map)).subscribe(context, callback);
  247 + };
  248 + }
  249 +
  250 +
  251 + /**
  252 + * 获取access_token
  253 + *
  254 + * @param context
  255 + * @return
  256 + */
  257 + public static Logic.Action<Object, BaseInfo<TokenData>> accessToken(Context context) {
  258 + return (data, callback) -> {
  259 + Map<String, String> map = new HashMap<>();
  260 + map.put("appId", AppConfig.getAppId());
  261 + map.put("secret", AppConfig.getAppSceret());
  262 + return ApiRequest.service(ApiServiceOpen.class, service -> service.accessToken(map)).subscribe(context, callback);
  263 + };
  264 + }
  265 +
  266 + /**
  267 + * 上传头像
  268 + *
  269 + * @param context
  270 + * @param uid 用户ID
  271 + * @param face 头像文件
  272 + * @param token 平台TOKEN
  273 + * @param access_token
  274 + * @return
  275 + */
  276 + public static Disposable updateUserFace(Context context, String uid, File face, String token, String access_token, DataCallback<BaseInfo<FaceData>> callback) {
  277 + Map<String, RequestBody> params = new HashMap<>();
  278 +
  279 + if (TextUtils.isEmpty(token)) {
  280 + callback.callback(TOKEN_ERROR_CODE, TOKEN_ERROR_MSG, null);
  281 + }
  282 +
  283 + params.put("uid", getRequestString(uid));
  284 + params.put("clientPlat", getRequestString("a"));
  285 + params.put("token", getRequestString(token));
  286 + params.put("access_token", getRequestString(access_token));
  287 +
  288 + RequestBody requestFace = RequestBody.create(MediaType.parse("multipart/form-data"), face);
  289 + MultipartBody.Part faceBody = MultipartBody.Part.createFormData("face", face.getName(), requestFace);
  290 +
  291 + List<MultipartBody.Part> parts = new ArrayList<>();
  292 + parts.add(faceBody);
  293 +
  294 +
  295 + Subscriber<BaseInfo<FaceData>> subscriber = new Subscriber<BaseInfo<FaceData>>(context, ApiSubscriber.subscriberBuild) {
  296 + @Override
  297 + public void onCompleted(String s, String s1, BaseInfo<FaceData> faceDataBaseInfo) {
  298 + if (callback == null) return;
  299 + callback.callback(SUCCESS, "", faceDataBaseInfo);
  300 + }
  301 +
  302 + @Override
  303 + public void onError(String s, String s1) {
  304 + if (callback == null) return;
  305 + int errorCode = -1;
  306 + try {
  307 + errorCode = Integer.valueOf(s);
  308 + } catch (Exception ignored) {
  309 + } finally {
  310 + callback.callback(errorCode, s1, null);
  311 + }
  312 + }
  313 + };
  314 +
  315 + return ApiRequest.subscribe(ApiRequest.service(ApiServiceOpen.class).updateUserFace(params, parts), subscriber);
  316 +// return ApiRequest.service(ApiServiceOpen.class, service -> service.updateUserFace(params, parts)).subscribe(context, callback);
  317 + }
  318 +
  319 + private static RequestBody getRequestString(String value) {
  320 + RequestBody requestString = RequestBody.create(MediaType.parse("text/plain"), value);
  321 + return requestString;
  322 + }
  323 +
  324 + public static Disposable zipFiles(Context context, List<String> imageFiles, DataCallback<List<String>> callback) {
  325 + if (imageFiles == null || imageFiles.size() == 0) {
  326 + callback.callback(0, "", imageFiles);
  327 + } else {
  328 + return Flowable.just(imageFiles)
  329 + .observeOn(Schedulers.io())
  330 + .map(list -> Luban.with(context)
  331 + .ignoreBy(500)
  332 + .setTargetDir(getPath())
  333 + .load(list)
  334 + .get())
  335 + .observeOn(AndroidSchedulers.mainThread())
  336 + .doOnError(throwable -> callback.callback(0, "", imageFiles))
  337 + .onErrorResumeNext(Flowable.empty())
  338 + .subscribe(
  339 + list -> {
  340 + List<String> files = new ArrayList<>();
  341 + for (File file : list) files.add(file.getPath());
  342 + callback.callback(0, "", files);
  343 + });
  344 + }
  345 + return null;
  346 + }
  347 +
  348 + private static String getPath() {
  349 + String path = Environment.getExternalStorageDirectory() + "/strike/image/";
  350 + File file = new File(path);
  351 + if (file.mkdirs()) {
  352 + return path;
  353 + }
  354 + return path;
  355 + }
  356 +}
... ...
app_user/src/main/java/com/cnlive/strike/user/auth/AccountAuthenticatorActivity.java 0 → 100644
  1 +/*
  2 + * Copyright (C) 2009 The Android Open Source Project
  3 + *
  4 + * Licensed under the Apache License, Version 2.0 (the "License");
  5 + * you may not use this file except in compliance with the License.
  6 + * You may obtain a copy of the License at
  7 + *
  8 + * http://www.apache.org/licenses/LICENSE-2.0
  9 + *
  10 + * Unless required by applicable law or agreed to in writing, software
  11 + * distributed under the License is distributed on an "AS IS" BASIS,
  12 + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13 + * See the License for the specific language governing permissions and
  14 + * limitations under the License.
  15 + */
  16 +
  17 +package com.cnlive.strike.user.auth;
  18 +
  19 +import android.accounts.AccountAuthenticatorResponse;
  20 +import android.accounts.AccountManager;
  21 +import android.os.Bundle;
  22 +import android.support.v7.app.AppCompatActivity;
  23 +
  24 +/**
  25 + * Base class for implementing an Activity that is used to help implement an
  26 + * AbstractAccountAuthenticator. If the AbstractAccountAuthenticator needs to use an activity
  27 + * to handle the request then it can have the activity extend AccountAuthenticatorActivity.
  28 + * The AbstractAccountAuthenticator passes in the response to the intent using the following:
  29 + * <pre>
  30 + * intent.putExtra({@link AccountManager#KEY_ACCOUNT_AUTHENTICATOR_RESPONSE}, response);
  31 + * </pre>
  32 + * The activity then sets the result that is to be handed to the response via
  33 + * {@link #setAccountAuthenticatorResult(Bundle)}.
  34 + * This result will be sent as the result of the request when the activity finishes. If this
  35 + * is never set or if it is set to null then error {@link AccountManager#ERROR_CODE_CANCELED}
  36 + * will be called on the response.
  37 + */
  38 +public class AccountAuthenticatorActivity extends AppCompatActivity {
  39 + private AccountAuthenticatorResponse mAccountAuthenticatorResponse = null;
  40 + private Bundle mResultBundle = null;
  41 +
  42 + /**
  43 + * Set the result that is to be sent as the result of the request that caused this
  44 + * Activity to be launched. If result is null or this method is never called then
  45 + * the request will be canceled.
  46 + *
  47 + * @param result this is returned as the result of the AbstractAccountAuthenticator request
  48 + */
  49 + public final void setAccountAuthenticatorResult(Bundle result) {
  50 + mResultBundle = result;
  51 + }
  52 +
  53 + /**
  54 + * Retreives the AccountAuthenticatorResponse from either the intent of the icicle, if the
  55 + * icicle is non-zero.
  56 + *
  57 + * @param icicle the save instance data of this Activity, may be null
  58 + */
  59 + protected void onCreate(Bundle icicle) {
  60 + super.onCreate(icicle);
  61 +
  62 + mAccountAuthenticatorResponse =
  63 + getIntent().getParcelableExtra(AccountManager.KEY_ACCOUNT_AUTHENTICATOR_RESPONSE);
  64 +
  65 + if (mAccountAuthenticatorResponse != null) {
  66 + mAccountAuthenticatorResponse.onRequestContinued();
  67 + }
  68 + }
  69 +
  70 + /**
  71 + * Sends the result or a Constants.ERROR_CODE_CANCELED error if a result isn't present.
  72 + */
  73 + public void finish() {
  74 + if (mAccountAuthenticatorResponse != null) {
  75 + // send the result bundle back if set, otherwise send an error.
  76 + if (mResultBundle != null) {
  77 + mAccountAuthenticatorResponse.onResult(mResultBundle);
  78 + } else {
  79 + mAccountAuthenticatorResponse.onError(AccountManager.ERROR_CODE_CANCELED,
  80 + "canceled");
  81 + }
  82 + mAccountAuthenticatorResponse = null;
  83 + }
  84 + super.finish();
  85 + }
  86 +}
... ...
app_user/src/main/java/com/cnlive/strike/user/auth/UserAccountAuthenticator.java 0 → 100644
  1 +package com.cnlive.strike.user.auth;
  2 +
  3 +import android.accounts.AbstractAccountAuthenticator;
  4 +import android.accounts.Account;
  5 +import android.accounts.AccountAuthenticatorResponse;
  6 +import android.accounts.AccountManager;
  7 +import android.accounts.NetworkErrorException;
  8 +import android.content.Context;
  9 +import android.content.Intent;
  10 +import android.os.Bundle;
  11 +
  12 +import com.cnlive.libs.base.util.LogUtil;
  13 +
  14 +public class UserAccountAuthenticator extends AbstractAccountAuthenticator {
  15 + private String _tag = "UserAccountAuthenticator";
  16 + private Context _context;
  17 +
  18 + public UserAccountAuthenticator(Context context) {
  19 + super(context);
  20 + _context = context;
  21 + }
  22 +
  23 + public Bundle addAccount(AccountAuthenticatorResponse response, String accountType, String authTokenType, String[] requiredFeatures, Bundle options) {
  24 + LogUtil.d(_tag, accountType + " - " + authTokenType);
  25 + Bundle ret = new Bundle();
  26 + try {
  27 + Class<?> clazz = Class.forName("com.cnlive.strike.moudle.user.ui.activity.LoginActivity");
  28 + Intent intent = new Intent(_context, clazz);
  29 + intent.putExtra(AccountManager.KEY_ACCOUNT_AUTHENTICATOR_RESPONSE, response);
  30 + ret.putParcelable(AccountManager.KEY_INTENT, intent);
  31 + } catch (ClassNotFoundException e) {
  32 + e.printStackTrace();
  33 + }
  34 + return ret;
  35 + }
  36 +
  37 +
  38 + @Override
  39 + public Bundle confirmCredentials(AccountAuthenticatorResponse response, Account account, Bundle options) {
  40 + LogUtil.d(_tag, ".confirmCredentials");
  41 + return null;
  42 + }
  43 +
  44 +
  45 + @Override
  46 + public Bundle editProperties(AccountAuthenticatorResponse response, String accountType) {
  47 + LogUtil.d(_tag, ".editProperties");
  48 + return null;
  49 + }
  50 +
  51 +
  52 + @Override
  53 + public Bundle getAuthToken(AccountAuthenticatorResponse response, Account account, String authTokenType, Bundle loginOptions) throws NetworkErrorException {
  54 + LogUtil.d(_tag, ".getAuthToken");
  55 + return null;
  56 + }
  57 +
  58 +
  59 + @Override
  60 + public String getAuthTokenLabel(String authTokenType) {
  61 + LogUtil.d(_tag, ".getAuthTokenLabel");
  62 + return null;
  63 + }
  64 +
  65 +
  66 + @Override
  67 + public Bundle hasFeatures(AccountAuthenticatorResponse response, Account account, String[] features) throws NetworkErrorException {
  68 + LogUtil.d(_tag, ".hasFeatures");
  69 + return null;
  70 + }
  71 +
  72 +
  73 + @Override
  74 + public Bundle updateCredentials(AccountAuthenticatorResponse response, Account account, String authTokenType, Bundle loginOptions) {
  75 + LogUtil.d(_tag, ".updateCredentials");
  76 + return null;
  77 + }
  78 +
  79 +}
... ...
app_user/src/main/java/com/cnlive/strike/user/auth/UserAccountProvider.java 0 → 100644
  1 +package com.cnlive.strike.user.auth;
  2 +
  3 +import android.content.ContentProvider;
  4 +import android.content.ContentValues;
  5 +import android.database.Cursor;
  6 +import android.net.Uri;
  7 +import android.support.annotation.Nullable;
  8 +
  9 +public class UserAccountProvider extends ContentProvider {
  10 +
  11 + @Override
  12 + public boolean onCreate() {
  13 + return false;
  14 + }
  15 +
  16 + @Nullable
  17 + @Override
  18 + public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) {
  19 + return null;
  20 + }
  21 +
  22 + @Nullable
  23 + @Override
  24 + public String getType(Uri uri) {
  25 + return null;
  26 + }
  27 +
  28 + @Nullable
  29 + @Override
  30 + public Uri insert(Uri uri, ContentValues values) {
  31 + return null;
  32 + }
  33 +
  34 + @Override
  35 + public int delete(Uri uri, String selection, String[] selectionArgs) {
  36 + return 0;
  37 + }
  38 +
  39 + @Override
  40 + public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) {
  41 + return 0;
  42 + }
  43 +}
... ...
app_user/src/main/java/com/cnlive/strike/user/auth/UserAccountService.java 0 → 100644
  1 +package com.cnlive.strike.user.auth;
  2 +
  3 +import android.app.Service;
  4 +import android.content.Intent;
  5 +import android.os.IBinder;
  6 +
  7 +public class UserAccountService extends Service {
  8 + private UserAccountAuthenticator _saa;
  9 +
  10 + @Override
  11 + public IBinder onBind(Intent intent) {
  12 + IBinder ret = null;
  13 + if (intent.getAction().equals(android.accounts.AccountManager.ACTION_AUTHENTICATOR_INTENT))
  14 + ret = getMovieAuthenticator().getIBinder();
  15 + return ret;
  16 + }
  17 +
  18 + private UserAccountAuthenticator getMovieAuthenticator() {
  19 + if (_saa == null)
  20 + _saa = new UserAccountAuthenticator(this);
  21 + return _saa;
  22 + }
  23 +}
... ...
app_user/src/main/java/com/cnlive/strike/user/auth/UserService.java 0 → 100644
  1 +package com.cnlive.strike.user.auth;
  2 +
  3 +import android.accounts.Account;
  4 +import android.accounts.AccountManager;
  5 +import android.accounts.AccountManagerCallback;
  6 +import android.content.ContentResolver;
  7 +import android.content.Context;
  8 +import android.os.Bundle;
  9 +import android.text.TextUtils;
  10 +
  11 +import com.cnlive.libs.base.application.AppConfig;
  12 +import com.cnlive.libs.util.SharedPreferencesHelper;
  13 +import com.cnlive.strike.data.network.model.UserData;
  14 +import com.cnlive.strike.user.model.CNLiveUserInfo;
  15 +import com.cnlive.strike.user.model.CNLiveUserInfoExt;
  16 +import com.google.gson.Gson;
  17 +
  18 +import java.util.HashMap;
  19 +import java.util.Map;
  20 +
  21 +/**
  22 + * 用户管理类
  23 + */
  24 +public class UserService {
  25 + private final String defaultFaceUrl = "http://wjj.ys1.cnliveimg.com/admin/test/head.png";
  26 +
  27 + private final String baseFaceUrl = "/mobile/images/mobilehead/default/";
  28 +
  29 + private boolean checkDefaultUrl(String url) {
  30 + if (!TextUtils.isEmpty(url) && url.contains(baseFaceUrl)) return true;
  31 + return false;
  32 + }
  33 +
  34 + private final String KEY_DEFAULT_ACCOUNT = "defaultaccount";//用户默认账户
  35 + private final String KEY_USER_DATA_USER_ID = "uid"; //用户uid
  36 + private final String KEY_USER_DATA_NICKNAME = "nickname"; //用户昵称
  37 + private final String KEY_USER_DATA_BIGFACEURL = "bigfaceurl"; //用户头像
  38 + private final String KEY_USER_DATA_FACEURL = "faceurl"; //用户头像
  39 + private final String KEY_USER_DATA_GENDER = "gender"; //用户性别
  40 + private final String KEY_USER_DATA_MOBILE = "mobile"; //用户手机号
  41 + private final String KEY_USER_COUNTRY_CODE = "countryCode";//手机号国家码
  42 + private final String KEY_USER_DATA_EMAIL = "email"; //用户邮箱
  43 + private final String KEY_USER_DATA_LOCATION = "location"; //用户地址
  44 + private final String KEY_USER_TOKEN = "token"; //用户token
  45 + private final String KEY_USER_FIRST_LOGIN = "firstLogin"; //用户token
  46 + private final String KEY_USER_SIGN = "sign"; //用户签名
  47 +
  48 + private static UserService mInstance;
  49 + private Account activeAccount;
  50 + private CNLiveUserInfo activeUserInfo;
  51 + private SharedPreferencesHelper sharedPrefs;
  52 + private AccountManager mAccountManager;
  53 + private String mAccountType, mAccountProvide;
  54 +
  55 + private Map<String, Account> mAccountMap = new HashMap<>();
  56 +
  57 + /**
  58 + * 获取用户管理服务实例
  59 + *
  60 + * @param context 上下文
  61 + * @return 管理对象实例
  62 + */
  63 + public static synchronized UserService getInstance(Context context) {
  64 + if (mInstance == null && context != null)
  65 + mInstance = new UserService(context.getApplicationContext());
  66 + return mInstance;
  67 + }
  68 +
  69 + /**
  70 + * 默认构造函数(单例)
  71 + *
  72 + * @param context
  73 + */
  74 + private UserService(Context context) {
  75 + sharedPrefs = SharedPreferencesHelper.getInstance(context);
  76 + mAccountManager = AccountManager.get(context);
  77 + mAccountType = context.getString(R.string.ACCOUNT_TYPE);
  78 + mAccountProvide = context.getString(R.string.ACCOUNT_PROVIDE);
  79 + //初始化用户列表
  80 + initSystemAccounts();
  81 + //初始化登录用户
  82 + initAppAccount();
  83 + }
  84 +
  85 + /**
  86 + * 初始化系统用户列表
  87 + */
  88 + private void initSystemAccounts() {
  89 + mAccountMap.clear();
  90 + Account[] accounts = mAccountManager.getAccountsByType(mAccountType);
  91 + for (Account account : accounts) {
  92 + mAccountMap.put(account.name, account);
  93 + }
  94 + }
  95 +
  96 + /**
  97 + * 初始化默认系统账号
  98 + */
  99 + private void initAppAccount() {
  100 + String accountName = sharedPrefs.getValue(KEY_DEFAULT_ACCOUNT);
  101 +
  102 + if (mAccountMap.containsKey(accountName)) {
  103 + activeAccount = mAccountMap.get(accountName);
  104 + activeUserInfo = getAccountInfo(activeAccount);
  105 + } else {
  106 + activeAccount = null;
  107 + activeUserInfo = null;
  108 + }
  109 + }
  110 +
  111 + /**
  112 + * 判断App用户登录
  113 + *
  114 + * @return 如果登录返回 true
  115 + */
  116 + public boolean hasAppAccount() {
  117 + String accountName = sharedPrefs.getValue(KEY_DEFAULT_ACCOUNT);
  118 + return mAccountMap.containsKey(accountName) && activeUserInfo != null;
  119 + }
  120 +
  121 + /**
  122 + * 登录App用户 ,录入系统账号信息
  123 + *
  124 + * @param username 用户名
  125 + * @param password 密码
  126 + * @param userProfile 用户数据
  127 + */
  128 + public void loginAppAccount(String username, String password, UserData userProfile) {
  129 + if (mAccountMap.containsKey(username)) {
  130 + activeAccount = mAccountMap.get(username);
  131 + mAccountManager.setPassword(activeAccount, password);
  132 + } else {
  133 + activeAccount = new Account(username, mAccountType);
  134 + mAccountManager.addAccountExplicitly(activeAccount, password, null);
  135 + }
  136 +
  137 + // 自动同步
  138 + ContentResolver.setIsSyncable(activeAccount, mAccountProvide, 1);
  139 + ContentResolver.setSyncAutomatically(activeAccount, mAccountProvide, true);
  140 + // 间隔时间为30秒
  141 + ContentResolver.addPeriodicSync(activeAccount, mAccountProvide, new Bundle(), 1);
  142 +
  143 + setSystemAccountInfo(activeAccount, userProfile);
  144 +
  145 + mAccountMap.put(username, activeAccount);
  146 +
  147 + activeUserInfo = getAccountInfo(activeAccount);
  148 +
  149 + sharedPrefs.setValue(KEY_DEFAULT_ACCOUNT, username);
  150 + }
  151 +
  152 + /**
  153 + * 登出App用户
  154 + */
  155 + public void logoutAppAccount() {
  156 + AppConfig.setSid("");
  157 + if (sharedPrefs != null) sharedPrefs.remove(KEY_DEFAULT_ACCOUNT);
  158 + if (mAccountMap != null) mAccountMap.remove(activeAccount.name);
  159 + activeAccount = null;
  160 + activeUserInfo = null;
  161 + mInstance = null;
  162 + }
  163 +
  164 + /**
  165 + * 获取已经登陆用户信息
  166 + *
  167 + * @return 用户信息
  168 + */
  169 + public CNLiveUserInfo getAppAccount() {
  170 + return activeUserInfo;
  171 + }
  172 +
  173 + public static String getUid(Context context) {
  174 + CNLiveUserInfo activeUserInfo = getInstance(context).getAppAccount();
  175 + return activeUserInfo == null ? "" : activeUserInfo.getUid();
  176 + }
  177 +
  178 + public Account getSystemAccount() {
  179 + return activeAccount;
  180 + }
  181 +
  182 + public String getPassword(Account account) {
  183 + return mAccountManager.getPassword(account);
  184 + }
  185 +
  186 + /**
  187 + * 删除系统账号信息
  188 + *
  189 + * @param username 用户名
  190 + */
  191 + public void removeUser(String username, AccountManagerCallback<Boolean> callback) {
  192 + Account account = mAccountMap.remove(username);
  193 + if (account != null) mAccountManager.removeAccount(account, callback, null);
  194 + }
  195 +
  196 + /**
  197 + * 删除系统账号信息
  198 + *
  199 + * @param account 系统账号
  200 + */
  201 + public void removeUser(Account account, AccountManagerCallback<Boolean> callback) {
  202 + if (account != null) {
  203 + mAccountManager.removeAccount(account, callback, null);
  204 + }
  205 + }
  206 +
  207 +
  208 + /**
  209 + * 更新系统账号信息
  210 + *
  211 + * @param account 系统账号数据
  212 + * @param userProfile 用户账号数据
  213 + */
  214 + private void setSystemAccountInfo(Account account, UserData userProfile) {
  215 + if (account == null) return;
  216 + if (checkDefaultUrl(userProfile.getFaceUrl())) {
  217 + userProfile.setFaceUrl(defaultFaceUrl);
  218 + userProfile.setBigFaceUrl(defaultFaceUrl);
  219 + }
  220 + mAccountManager.setUserData(account, KEY_USER_DATA_USER_ID, userProfile.getUid());
  221 + mAccountManager.setUserData(account, KEY_USER_DATA_NICKNAME, userProfile.getNickName());
  222 + mAccountManager.setUserData(account, KEY_USER_DATA_FACEURL, userProfile.getFaceUrl());
  223 + mAccountManager.setUserData(account, KEY_USER_DATA_BIGFACEURL, userProfile.getBigFaceUrl());
  224 + mAccountManager.setUserData(account, KEY_USER_DATA_GENDER, userProfile.getGender());
  225 + mAccountManager.setUserData(account, KEY_USER_DATA_MOBILE, userProfile.getMobile());
  226 + mAccountManager.setUserData(account, KEY_USER_COUNTRY_CODE, userProfile.getCountryCode());
  227 + mAccountManager.setUserData(account, KEY_USER_DATA_EMAIL, userProfile.getEmail());
  228 + mAccountManager.setUserData(account, KEY_USER_FIRST_LOGIN, userProfile.isNewUser() ? "0" : "1");
  229 + mAccountManager.setUserData(account, KEY_USER_DATA_LOCATION, userProfile.getLocation());
  230 + mAccountManager.setUserData(account, KEY_USER_TOKEN, userProfile.getToken());
  231 + setUserExt(userProfile.getExtInfo());
  232 + }
  233 +
  234 + public void setUserExt(String ext) {
  235 + try {
  236 + CNLiveUserInfoExt extData = new Gson().fromJson(ext, CNLiveUserInfoExt.class);
  237 +
  238 + mAccountManager.setUserData(activeAccount, KEY_USER_SIGN, extData.getUserSign());
  239 + } catch (Exception e) {
  240 + }
  241 + }
  242 +
  243 + public void setUserInfo(UserData userProfile) {
  244 + if (mAccountMap.containsKey(sharedPrefs.getValue(KEY_DEFAULT_ACCOUNT))) {
  245 + mAccountManager.setUserData(activeAccount, KEY_USER_DATA_USER_ID, userProfile.getUid());
  246 + mAccountManager.setUserData(activeAccount, KEY_USER_DATA_NICKNAME, userProfile.getNickName());
  247 + mAccountManager.setUserData(activeAccount, KEY_USER_DATA_FACEURL, userProfile.getFaceUrl());
  248 + mAccountManager.setUserData(activeAccount, KEY_USER_DATA_BIGFACEURL, userProfile.getBigFaceUrl());
  249 + mAccountManager.setUserData(activeAccount, KEY_USER_DATA_GENDER, userProfile.getGender());
  250 + mAccountManager.setUserData(activeAccount, KEY_USER_DATA_MOBILE, userProfile.getMobile());
  251 + mAccountManager.setUserData(activeAccount, KEY_USER_COUNTRY_CODE, userProfile.getCountryCode());
  252 + mAccountManager.setUserData(activeAccount, KEY_USER_DATA_EMAIL, userProfile.getEmail());
  253 + mAccountManager.setUserData(activeAccount, KEY_USER_FIRST_LOGIN, userProfile.isNewUser() ? "0" : "1");
  254 + mAccountManager.setUserData(activeAccount, KEY_USER_DATA_LOCATION, userProfile.getLocation());
  255 + setUserExt(userProfile.getExtInfo());
  256 +
  257 + activeUserInfo = getAccountInfo(activeAccount);
  258 + }
  259 + }
  260 +
  261 + public void setUserSign(String userSign) {
  262 + if (mAccountMap.containsKey(sharedPrefs.getValue(KEY_DEFAULT_ACCOUNT))) {
  263 + activeUserInfo.setUserSign(userSign);
  264 + mAccountManager.setUserData(activeAccount, KEY_USER_SIGN, userSign);
  265 + }
  266 + }
  267 +
  268 + public void setUserFaceUrl(String faceUrl, String bigFaceUrl) {
  269 + if (mAccountMap.containsKey(sharedPrefs.getValue(KEY_DEFAULT_ACCOUNT))) {
  270 + activeUserInfo.setFaceUrl(faceUrl);
  271 + activeUserInfo.setBigFaceUrl(bigFaceUrl);
  272 + mAccountManager.setUserData(activeAccount, KEY_USER_DATA_FACEURL, faceUrl);
  273 + mAccountManager.setUserData(activeAccount, KEY_USER_DATA_BIGFACEURL, bigFaceUrl);
  274 + }
  275 + }
  276 +
  277 + public void setUserNickName(String nickName) {
  278 + if (mAccountMap.containsKey(sharedPrefs.getValue(KEY_DEFAULT_ACCOUNT))) {
  279 + activeUserInfo.setNickName(nickName);
  280 + mAccountManager.setUserData(activeAccount, KEY_USER_DATA_NICKNAME, nickName);
  281 + }
  282 + }
  283 +
  284 + public void setPhoneNumber(String phoneNumber, String countryCode) {
  285 + if (mAccountMap.containsKey(sharedPrefs.getValue(KEY_DEFAULT_ACCOUNT))) {
  286 + activeUserInfo.setMobile(phoneNumber);
  287 + mAccountManager.setUserData(activeAccount, KEY_USER_DATA_MOBILE, phoneNumber);
  288 + mAccountManager.setUserData(activeAccount, KEY_USER_COUNTRY_CODE, countryCode);
  289 + }
  290 + }
  291 +
  292 + /**
  293 + * 更新用户性别
  294 + *
  295 + * @param sex
  296 + */
  297 + public void setUserSex(String sex) {
  298 + if (mAccountMap.containsKey(sharedPrefs.getValue(KEY_DEFAULT_ACCOUNT))) {
  299 + activeUserInfo.setGender(sex);
  300 + mAccountManager.setUserData(activeAccount, KEY_USER_DATA_GENDER, sex);
  301 + }
  302 + }
  303 +
  304 + /**
  305 + * 更新 用户信息的地址
  306 + *
  307 + * @param location
  308 + */
  309 + public void setUserLocation(String location) {
  310 + if (mAccountMap.containsKey(sharedPrefs.getValue(KEY_DEFAULT_ACCOUNT))) {
  311 + activeUserInfo.setLocation(location);
  312 + mAccountManager.setUserData(activeAccount, KEY_USER_DATA_LOCATION, location);
  313 + }
  314 + }
  315 +
  316 + /**
  317 + * 通过系统账号获取用户账号信息
  318 + *
  319 + * @param account 系统账号数据
  320 + * @return 用户账号信息
  321 + */
  322 + public CNLiveUserInfo getAccountInfo(Account account) {
  323 + if (account == null) return null;
  324 +
  325 + CNLiveUserInfo user = new CNLiveUserInfo();
  326 + user.setUid(mAccountManager.getUserData(account, KEY_USER_DATA_USER_ID));
  327 + user.setNickName(mAccountManager.getUserData(account, KEY_USER_DATA_NICKNAME));
  328 + user.setFaceUrl(mAccountManager.getUserData(account, KEY_USER_DATA_FACEURL));
  329 + user.setBigFaceUrl(mAccountManager.getUserData(account, KEY_USER_DATA_BIGFACEURL));
  330 + user.setGender(mAccountManager.getUserData(account, KEY_USER_DATA_GENDER));
  331 + user.setMobile(mAccountManager.getUserData(account, KEY_USER_DATA_MOBILE));
  332 + user.setCountryCode(mAccountManager.getUserData(account, KEY_USER_COUNTRY_CODE));
  333 + user.setEmail(mAccountManager.getUserData(account, KEY_USER_DATA_EMAIL));
  334 + user.setNewUser("0".equals(mAccountManager.getUserData(account, KEY_USER_FIRST_LOGIN)));
  335 + user.setLocation(mAccountManager.getUserData(account, KEY_USER_DATA_LOCATION));
  336 + user.setToken(mAccountManager.getUserData(account, KEY_USER_TOKEN));
  337 + user.setUserSign(mAccountManager.getUserData(account, KEY_USER_SIGN));
  338 +
  339 + AppConfig.setSid(user.getUid());
  340 +
  341 + return user;
  342 + }
  343 +
  344 + /**
  345 + * 获取系统账号列表
  346 + *
  347 + * @return 用户列表
  348 + */
  349 + public Account[] getUserList() {
  350 + return mAccountManager.getAccountsByType(mAccountType);
  351 + }
  352 +
  353 +
  354 + public static boolean hasAppAccount(Context context) {
  355 + return UserService.getInstance(context).getAppAccount() != null;
  356 + }
  357 +}
... ...
app_user/src/main/java/com/cnlive/strike/user/auth/UserSyncService.java 0 → 100644
  1 +package com.cnlive.strike.user.auth;
  2 +
  3 +import android.accounts.Account;
  4 +import android.app.Service;
  5 +import android.content.AbstractThreadedSyncAdapter;
  6 +import android.content.ContentProviderClient;
  7 +import android.content.Context;
  8 +import android.content.Intent;
  9 +import android.content.SyncResult;
  10 +import android.os.Bundle;
  11 +import android.os.IBinder;
  12 +
  13 +public class UserSyncService extends Service {
  14 +
  15 + private static final Object syncLock = new Object();
  16 + private static SyncAdapter syncAdapter = null;
  17 +
  18 + @Override
  19 + public IBinder onBind(Intent intent) {
  20 + return syncAdapter.getSyncAdapterBinder();
  21 + }
  22 +
  23 + @Override
  24 + public void onCreate() {
  25 + super.onCreate();
  26 + synchronized (syncLock) {
  27 + if (syncAdapter == null) {
  28 + syncAdapter = new SyncAdapter(getApplicationContext(), true);
  29 + }
  30 + }
  31 + }
  32 +
  33 +
  34 + class SyncAdapter extends AbstractThreadedSyncAdapter {
  35 +
  36 + public SyncAdapter(Context context, boolean autoInitialize) {
  37 + super(context, autoInitialize);
  38 + }
  39 +
  40 + @Override
  41 + public void onPerformSync(Account account, Bundle extras, String authority, ContentProviderClient provider, SyncResult syncResult) {
  42 + }
  43 +
  44 + }
  45 +}
0 46 \ No newline at end of file
... ...
app_user/src/main/java/com/cnlive/strike/user/model/CNLiveUserInfo.java 0 → 100644
  1 +package com.cnlive.strike.user.model;
  2 +
  3 +import android.text.TextUtils;
  4 +
  5 +import java.io.Serializable;
  6 +
  7 +/**
  8 + * 开放平台-用户信息
  9 + *
  10 + * @author Lynn
  11 + * @date 2017/12/22
  12 + */
  13 +
  14 +public class CNLiveUserInfo implements Serializable {
  15 + //用户id
  16 + private String uid;
  17 + //昵称
  18 + private String nickName;
  19 + //性别
  20 + private String gender;
  21 + //地址
  22 + private String location;
  23 + //头像
  24 + private String faceUrl;
  25 + //手机号
  26 + private String mobile;
  27 + //邮箱
  28 + private String email;
  29 + //平台TOKEN
  30 + private String token;
  31 + //新用户
  32 + private boolean isNewUser;
  33 + //个性签名
  34 + private String userSign;
  35 + //用户头像大图
  36 + private String bigFaceUrl;
  37 + //手机号国家码
  38 + private String countryCode;
  39 +
  40 + public String getUid() {
  41 + return uid;
  42 + }
  43 +
  44 + public void setUid(String uid) {
  45 + this.uid = uid;
  46 + }
  47 +
  48 + public String getNickName() {
  49 + return nickName;
  50 + }
  51 +
  52 + public void setNickName(String nickName) {
  53 + this.nickName = nickName;
  54 + }
  55 +
  56 + public String getGender() {
  57 + return gender;
  58 + }
  59 +
  60 + public void setGender(String gender) {
  61 + this.gender = gender;
  62 + }
  63 +
  64 + public String getLocation() {
  65 + return location;
  66 + }
  67 +
  68 + public void setLocation(String location) {
  69 + this.location = location;
  70 + }
  71 +
  72 + public String getFaceUrl() {
  73 + return faceUrl;
  74 + }
  75 +
  76 + public void setFaceUrl(String faceUrl) {
  77 + this.faceUrl = faceUrl;
  78 + }
  79 +
  80 + public String getBigFaceUrl() {
  81 + if (TextUtils.isEmpty(bigFaceUrl)) return faceUrl;
  82 + return bigFaceUrl;
  83 + }
  84 +
  85 + public void setBigFaceUrl(String bigFaceUrl) {
  86 + this.bigFaceUrl = bigFaceUrl;
  87 + }
  88 +
  89 + public String getMobile() {
  90 + return mobile;
  91 + }
  92 +
  93 + public void setMobile(String mobile) {
  94 + this.mobile = mobile;
  95 + }
  96 +
  97 + public String getEmail() {
  98 + return email;
  99 + }
  100 +
  101 + public void setEmail(String email) {
  102 + this.email = email;
  103 + }
  104 +
  105 + public String getToken() {
  106 + return token;
  107 + }
  108 +
  109 + public void setToken(String token) {
  110 + this.token = token;
  111 + }
  112 +
  113 + public boolean isNewUser() {
  114 + return isNewUser;
  115 + }
  116 +
  117 + public void setNewUser(boolean newUser) {
  118 + isNewUser = newUser;
  119 + }
  120 +
  121 + public String getUserSign() {
  122 + return userSign;
  123 + }
  124 +
  125 + public void setUserSign(String userSign) {
  126 + this.userSign = userSign;
  127 + }
  128 +
  129 + public String getCountryCode() {
  130 + return countryCode;
  131 + }
  132 +
  133 + public void setCountryCode(String countryCode) {
  134 + this.countryCode = countryCode;
  135 + }
  136 +}
... ...
app_user/src/main/java/com/cnlive/strike/user/model/CNLiveUserInfoExt.java 0 → 100644
  1 +package com.cnlive.strike.user.model;
  2 +
  3 +/**
  4 + * Created by xiansong on 2018/4/3.
  5 + */
  6 +
  7 +public class CNLiveUserInfoExt {
  8 +
  9 +
  10 + @Override
  11 + public String toString() {
  12 + return "CNLiveUserInfoExt{" +
  13 + "userSign='" + userSign + '\'' +
  14 + '}';
  15 + }
  16 +
  17 + private String userSign ;
  18 +
  19 + public String getUserSign() {
  20 + return userSign;
  21 + }
  22 +
  23 + public void setUserSign(String userSign) {
  24 + this.userSign = userSign;
  25 + }
  26 +
  27 +
  28 +}
... ...
app_user/src/main/res/values/strings.xml 0 → 100644
  1 +<resources>
  2 + <string name="app_name">app_user</string>
  3 +</resources>
... ...
app_user/src/main/res/xml/account_preferences.xml 0 → 100644
  1 +<?xml version="1.0" encoding="utf-8"?>
  2 +<PreferenceScreen></PreferenceScreen>
... ...
app_user/src/main/res/xml/account_sync_adapter.xml 0 → 100644
  1 +<?xml version="1.0" encoding="utf-8"?>
  2 +<sync-adapter xmlns:android="http://schemas.android.com/apk/res/android"
  3 + android:accountType="@string/ACCOUNT_TYPE"
  4 + android:allowParallelSyncs="false"
  5 + android:contentAuthority="@string/ACCOUNT_PROVIDE"
  6 + android:isAlwaysSyncable="true"
  7 + android:supportsUploading="false"
  8 + android:userVisible="true" />
0 9 \ No newline at end of file
... ...
app_user/src/main/res/xml/authenticator.xml 0 → 100644
  1 +<?xml version="1.0" encoding="utf-8"?>
  2 +<account-authenticator xmlns:android="http://schemas.android.com/apk/res/android"
  3 + android:accountType="@string/ACCOUNT_TYPE"
  4 + android:icon="@mipmap/icon_account"
  5 + android:smallIcon="@mipmap/icon_account"
  6 + android:label="@string/ACCOUNT_LABEL"
  7 + android:accountPreferences="@xml/account_preferences" />
0 8 \ No newline at end of file
... ...
app_user/src/release/res/mipmap-hdpi/icon_account.png 0 → 100644

3.87 KB

app_user/src/release/res/mipmap-mdpi/icon_account.png 0 → 100644

2.94 KB

app_user/src/release/res/mipmap-xhdpi/icon_account.png 0 → 100644

5.19 KB

app_user/src/release/res/mipmap-xxhdpi/icon_account.png 0 → 100644

7.91 KB

app_user/src/release/res/mipmap-xxxhdpi/icon_account.png 0 → 100644

10.6 KB

build.gradle
... ... @@ -64,7 +64,7 @@ ext {
64 64 recyclerviewV7 = '28.0.0'
65 65 cardviewV7 = '28.0.0'
66 66  
67   - appArch = '1.0.3'
  67 + appArch = '1.1.0'
68 68 //qmui
69 69 qmui = '1.1.5'
70 70  
... ... @@ -96,4 +96,7 @@ ext {
96 96 easypermissions = '1.0.0'
97 97 TimePickerDialog = '1.0.1'
98 98  
  99 + libCnUtil = '3.1.3'
  100 + libAnalytics = '1.0.8'
  101 +
99 102 }
... ...
config.gradle
... ... @@ -21,7 +21,7 @@ ext {
21 21 //编译方式
22 22 debug : false,
23 23 //版本号
24   - version: "0.0.9",
  24 + version: "0.1.1",
25 25 //Lib库前缀
26 26 packeg : "com.cnlive.module",
27 27 //Lib库名称
... ...
lib_network/.gitignore 0 → 100644
  1 +/build
... ...
lib_network/build.gradle 0 → 100644
  1 +apply plugin: 'com.android.library'
  2 +apply plugin: 'com.alibaba.arouter'
  3 +
  4 +android {
  5 + compileSdkVersion rootProject.ext.compileSdkVersion
  6 + buildToolsVersion rootProject.ext.buildToolsVersion
  7 +
  8 + defaultConfig {
  9 + minSdkVersion rootProject.ext.minSdkVersion
  10 + targetSdkVersion rootProject.ext.targetSdkVersion
  11 + versionCode rootProject.ext.versionCode
  12 + versionName rootProject.ext.versionName
  13 +
  14 + javaCompileOptions {
  15 + annotationProcessorOptions {
  16 + arguments = [AROUTER_MODULE_NAME: project.getName(), AROUTER_GENERATE_DOC: "enable"]
  17 + }
  18 + }
  19 + }
  20 + compileOptions {
  21 + sourceCompatibility JavaVersion.VERSION_1_8
  22 + targetCompatibility JavaVersion.VERSION_1_8
  23 + }
  24 + dataBinding {
  25 + enabled true
  26 + }
  27 +}
  28 +
  29 +dependencies {
  30 + implementation fileTree(dir: 'libs', include: ['*.jar'])
  31 + implementation "com.cnlive.libs:base:$rootProject.libBase"
  32 + api "com.cnlive.libs:network:$rootProject.libNetwork"
  33 + implementation 'com.alibaba:arouter-api:1.4.0'
  34 + annotationProcessor 'com.alibaba:arouter-compiler:1.2.1'
  35 +}
... ...
lib_network/proguard-rules.pro 0 → 100644
  1 +# Add project specific ProGuard rules here.
  2 +# You can control the set of applied configuration files using the
  3 +# proguardFiles setting in build.gradle.
  4 +#
  5 +# For more details, see
  6 +# http://developer.android.com/guide/developing/tools/proguard.html
  7 +
  8 +# If your project uses WebView with JS, uncomment the following
  9 +# and specify the fully qualified class name to the JavaScript interface
  10 +# class:
  11 +#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
  12 +# public *;
  13 +#}
  14 +
  15 +# Uncomment this to preserve the line number information for
  16 +# debugging stack traces.
  17 +#-keepattributes SourceFile,LineNumberTable
  18 +
  19 +# If you keep the line number information, uncomment this to
  20 +# hide the original source file name.
  21 +#-renamesourcefileattribute SourceFile
... ...
lib_network/src/main/AndroidManifest.xml 0 → 100644
  1 +<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  2 + package="com.cnlive.libs.data.network">
  3 +
  4 + <uses-permission android:name="android.permission.INTERNET" />
  5 + <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
  6 +</manifest>
... ...
lib_network/src/main/java/com/cnlive/strike/data/network/action/CoinRainAction.java 0 → 100644
  1 +package com.cnlive.strike.data.network.action;
  2 +
  3 +import android.annotation.SuppressLint;
  4 +import android.content.Context;
  5 +import android.content.SharedPreferences;
  6 +import android.text.TextUtils;
  7 +
  8 +import com.alibaba.android.arouter.launcher.ARouter;
  9 +import com.cnlive.libs.base.logic.Logic;
  10 +import com.cnlive.strike.data.network.api.ApiRequest;
  11 +import com.cnlive.strike.data.network.api.ApiServiceIntegra;
  12 +import com.cnlive.strike.data.network.model.AddIntegration;
  13 +import com.cnlive.strike.data.network.model.BaseInfo;
  14 +
  15 +import java.text.SimpleDateFormat;
  16 +import java.util.Calendar;
  17 +import java.util.HashMap;
  18 +import java.util.Map;
  19 +
  20 +public class CoinRainAction {
  21 +
  22 + @SuppressLint("SimpleDateFormat")
  23 + private static SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
  24 + public static boolean isGo = true;
  25 +
  26 + public static void code(Context context, String uid, String taskId, String contentId, String addtype) {
  27 + if (context == null) return;
  28 +
  29 + Map<String, String> maps = new HashMap<>();
  30 + maps.put("sid", uid);
  31 + maps.put("taskId", taskId);
  32 + maps.put("contentId", contentId);
  33 + Logic.create(maps)
  34 + .action((Logic.Action<Map<String, String>, BaseInfo<AddIntegration.DataBean>>) (data, callback) -> ApiRequest.service(ApiServiceIntegra.class, api -> api.addIntegration(data)).subscribe(context, callback))
  35 + .<BaseInfo<AddIntegration.DataBean>>event()
  36 + .setSuccessCallback(data -> startCoinRain(context, uid, addtype, data))
  37 + .start();
  38 + }
  39 +
  40 + private static void startCoinRain(Context context, String uid, String addtype, BaseInfo<AddIntegration.DataBean> data) {
  41 + if (data == null) return;
  42 + if (data.getData() == null) return;
  43 + if (TextUtils.isEmpty(data.getData().getScore())) return;
  44 +
  45 + String score = data.getData().getScore();
  46 + String desc = data.getData().getDesc();
  47 + String descEnd = data.getData().getDescEnd();
  48 + String currentTime = getCurrentTime();
  49 +
  50 + SharedPreferences.Editor editor = context.getSharedPreferences(addtype, Context.MODE_PRIVATE).edit();
  51 +
  52 + editor.putBoolean(uid, data.getData().isStatus());
  53 + editor.putString(uid + "time", currentTime);
  54 + editor.apply();
  55 + isGo = false;
  56 + ARouter.getInstance().build("/add/CoinRainActivity")
  57 + .withString("type", "addintegration")
  58 + .withString("score", score)
  59 + .withString("desc",desc)
  60 + .withString("descend",descEnd)
  61 + .navigation(context);
  62 + }
  63 +
  64 + public static String getCurrentTime() {
  65 + return format.format(Calendar.getInstance().getTime());
  66 + }
  67 +}
... ...
lib_network/src/main/java/com/cnlive/strike/data/network/api/ApiRequest.java 0 → 100644
  1 +package com.cnlive.strike.data.network.api;
  2 +
  3 +import android.content.Context;
  4 +import android.util.Log;
  5 +
  6 +import com.cnlive.libs.base.application.AppConfig;
  7 +import com.cnlive.libs.base.logic.callback.DataCallback;
  8 +import com.cnlive.libs.data.network.ApiBuild;
  9 +import com.cnlive.libs.data.network.Subscriber;
  10 +import com.cnlive.libs.data.network.interceptor.DESEncryptInterceptor;
  11 +import com.cnlive.libs.data.network.interceptor.DefaultEncryptInterceptor;
  12 +import com.cnlive.libs.data.network.interceptor.NetPPEncryptInterceptor;
  13 +import com.cnlive.libs.data.network.interceptor.NetPPPayEncryptInterceptor;
  14 +import com.cnlive.libs.data.network.interceptor.SignEncrypt2Interceptor;
  15 +import com.cnlive.libs.data.network.interceptor.SignEncryptInterceptor;
  16 +import com.cnlive.strike.data.network.model.BaseInfo;
  17 +
  18 +import io.reactivex.android.schedulers.AndroidSchedulers;
  19 +import io.reactivex.disposables.Disposable;
  20 +import io.reactivex.schedulers.Schedulers;
  21 +import okhttp3.Interceptor;
  22 +import okhttp3.OkHttpClient;
  23 +import okhttp3.Request;
  24 +import okhttp3.Response;
  25 +import retrofit2.adapter.rxjava2.Result;
  26 +
  27 +import static com.cnlive.libs.base.logic.Config.SUCCESS;
  28 +
  29 +
  30 +/**
  31 + * Created by xiansong on 2017/9/8.
  32 + */
  33 +
  34 +public class ApiRequest<Observable extends io.reactivex.Observable<Result<BaseData>>, BaseData extends BaseInfo> {
  35 +
  36 + private static final int OKHTTP_KEEP_ALIVE_DURATION_SECONDS = 10;
  37 +
  38 + //网家家 接口域名
  39 + public static final String BASE_URL = "https://apiwjj.cnlive.com/";
  40 + //网家家 测试环境 接口域名
  41 + public static final String DEBUG_URL = "http://apiwjjtest.cnlive.com/";
  42 + //IM 接口域名
  43 + private static final String IM_URL = "https://wjjim.cnlive.com/";
  44 + //IM 测试环境 接口域名
  45 + public static final String IM_DEBUG_URL = "http://imtest.cnlive.com/";
  46 + //OPEN API 接口域名
  47 + private static final String OPEN_URL = "https://api.cnlive.com/";
  48 + //WJJ JSON
  49 + private static final String JSON_URL = "https://wjj.ys1.cnliveimg.com/";
  50 +
  51 + private static final String DEBUG_CMS_URL = "http://cmstest.cnlive.com:8768/";
  52 + // TODO: 2018/11/27 cms正式地址
  53 + private static final String CMS_URL = "http://cms.cnlive.com:8768/";
  54 +
  55 + public static <T> String baseEndpoint() {
  56 + return AppConfig.isDebug() ? DEBUG_URL : BASE_URL;
  57 + }
  58 +
  59 + public static <T> String baseIMEndpoint() {
  60 + return AppConfig.isDebug() ? IM_DEBUG_URL : IM_URL;
  61 + }
  62 +
  63 + public static <T> String baseCMSEndpoint() {
  64 + return AppConfig.isDebug() ? DEBUG_CMS_URL : CMS_URL;
  65 + }
  66 +
  67 + private static <T> String serviceEndpoint(Class<T> clazz) {
  68 + if (clazz == ApiServiceCNLiveIm.class) return baseIMEndpoint();
  69 + else if (clazz == ApiServiceApplyRefundReason.class) return JSON_URL;
  70 + else if (clazz == ApiServiceOpen.class) return OPEN_URL;
  71 + else if (clazz == ApiServiceCms.class) return baseCMSEndpoint();
  72 + else return baseEndpoint();
  73 + }
  74 +
  75 + public static <Service, Observable extends io.reactivex.Observable<Result<BaseData>>, BaseData extends BaseInfo>
  76 + ApiRequest<Observable, BaseData> observable(Class<Service> clazz, ApiBuild.Api<Service, Observable, BaseData> api) {
  77 + return observable(clazz, false, api, null);
  78 + }
  79 +
  80 + public static <Service, Observable extends io.reactivex.Observable<Result<BaseData>>, BaseData extends BaseInfo>
  81 + ApiRequest<Observable, BaseData> observable(Class<Service> clazz, ApiBuild.Api<Service, Observable, BaseData> api, Interceptor interceptor) {
  82 + return observable(clazz, false, api, interceptor);
  83 + }
  84 +
  85 + public static <Service, Observable extends io.reactivex.Observable<Result<BaseData>>, BaseData extends BaseInfo>
  86 + ApiRequest<Observable, BaseData> observable(Class<Service> clazz, boolean decode, ApiBuild.Api<Service, Observable, BaseData> api, Interceptor interceptor) {
  87 + ApiRequest<Observable, BaseData> request = new ApiRequest<>();
  88 + ApiBuild<Service, Observable, BaseData> build = ApiBuild.service(clazz, api);
  89 + build.setEndpoint(serviceEndpoint(clazz));
  90 + if (interceptor != null) build.addInterceptor(interceptor);
  91 + request.observable = build.build(decode, OKHTTP_KEEP_ALIVE_DURATION_SECONDS);
  92 + return request;
  93 + }
  94 +
  95 + public static <Service> Service serviceNoSign(Class<Service> clazz) {
  96 + return service(clazz, (Interceptor) new DefaultEncryptInterceptor());
  97 + }
  98 +
  99 + public static <Service> Service service(Class<Service> clazz) {
  100 + return service(clazz, new SignEncryptInterceptor());
  101 + }
  102 +
  103 + public static <Service> Service service(Class<Service> clazz, boolean valueUrlencode, boolean responseUrldecode) {
  104 + return service(clazz, responseUrldecode, new SignEncryptInterceptor(valueUrlencode));
  105 + }
  106 +
  107 + public static <Service> Service serviceDES(Class<Service> clazz) {
  108 + return service(clazz, new DESEncryptInterceptor());
  109 + }
  110 +
  111 + public static <Service> Service serviceNetPP(Class<Service> clazz) {
  112 + return service(clazz, new NetPPEncryptInterceptor());
  113 + }
  114 +
  115 + public static <Service> Service serviceNetPPPay(Class<Service> clazz) {
  116 + return service(clazz, new NetPPPayEncryptInterceptor());
  117 + }
  118 +
  119 +
  120 + private static <Service> Service service(Class<Service> clazz, Interceptor... interceptor) {
  121 + return service(clazz, false, interceptor);
  122 + }
  123 +
  124 + private static <Service> Service service(Class<Service> clazz, boolean decode, Interceptor... interceptor) {
  125 + return ApiBuild.service(clazz, null)
  126 + .setEndpoint(serviceEndpoint(clazz))
  127 + .addInterceptor(interceptor)
  128 + .service(decode, OKHTTP_KEEP_ALIVE_DURATION_SECONDS);
  129 + }
  130 +
  131 + public static <Service, Observable extends io.reactivex.Observable<Result<BaseData>>, BaseData extends BaseInfo>
  132 + ApiRequest<Observable, BaseData> serviceNoSign(Class<Service> clazz, ApiBuild.Api<Service, Observable, BaseData> api) {
  133 + return service(clazz, api, new DefaultEncryptInterceptor());
  134 + }
  135 +
  136 + public static <Service, Observable extends io.reactivex.Observable<Result<BaseData>>, BaseData extends BaseInfo>
  137 + ApiRequest<Observable, BaseData> service(Class<Service> clazz, ApiBuild.Api<Service, Observable, BaseData> api) {
  138 + return service(clazz, api, new SignEncryptInterceptor());
  139 + }
  140 + public static <Service, Observable extends io.reactivex.Observable<Result<BaseData>>, BaseData extends BaseInfo>
  141 + ApiRequest<Observable, BaseData> serviceNewVersion(Class<Service> clazz,long connectTimeout ,long readTimeout,ApiBuild.Api<Service, Observable, BaseData> api) {
  142 + return serviceNewVersion(clazz,false, api, connectTimeout,readTimeout,new SignEncryptInterceptor());
  143 + }
  144 +
  145 +
  146 + public static <Service, Observable extends io.reactivex.Observable<Result<BaseData>>, BaseData extends BaseInfo>
  147 + ApiRequest<Observable, BaseData> service(Class<Service> clazz, ApiBuild.Api<Service, Observable, BaseData> api, boolean valueUrlencode, boolean responseUrldecode) {
  148 + return service(clazz, responseUrldecode, api, new SignEncryptInterceptor(valueUrlencode));
  149 + }
  150 +
  151 + public static <Service, Observable extends io.reactivex.Observable<Result<BaseData>>, BaseData extends BaseInfo>
  152 + ApiRequest<Observable, BaseData> serviceDES(Class<Service> clazz, ApiBuild.Api<Service, Observable, BaseData> api) {
  153 + return service(clazz, api, new DESEncryptInterceptor());
  154 + }
  155 +
  156 + public static <Service, Observable extends io.reactivex.Observable<Result<BaseData>>, BaseData extends BaseInfo>
  157 + ApiRequest<Observable, BaseData> service2encode(Class<Service> clazz, ApiBuild.Api<Service, Observable, BaseData> api) {
  158 + return service(clazz, api, new SignEncrypt2Interceptor());
  159 + }
  160 +
  161 + public static <Service, Observable extends io.reactivex.Observable<Result<BaseData>>, BaseData extends BaseInfo>
  162 + ApiRequest<Observable, BaseData> serviceNetPP(Class<Service> clazz, ApiBuild.Api<Service, Observable, BaseData> api) {
  163 + return service(clazz, api, new NetPPEncryptInterceptor());
  164 + }
  165 +
  166 + public static <Service, Observable extends io.reactivex.Observable<Result<BaseData>>, BaseData extends BaseInfo>
  167 + ApiRequest<Observable, BaseData> serviceNetPPPay(Class<Service> clazz, ApiBuild.Api<Service, Observable, BaseData> api) {
  168 + return service(clazz, api, new NetPPPayEncryptInterceptor());
  169 + }
  170 +
  171 + private static <Service, Observable extends io.reactivex.Observable<Result<BaseData>>, BaseData extends BaseInfo>
  172 + ApiRequest<Observable, BaseData> service(Class<Service> clazz, ApiBuild.Api<Service, Observable, BaseData> api, Interceptor... interceptor) {
  173 + return service(clazz, false, api, interceptor);
  174 + }
  175 +
  176 + private static <Service, Observable extends io.reactivex.Observable<Result<BaseData>>, BaseData extends BaseInfo>
  177 + ApiRequest<Observable, BaseData> service(Class<Service> clazz, boolean decode, ApiBuild.Api<Service, Observable, BaseData> api, Interceptor... interceptor) {
  178 +
  179 + ApiRequest<Observable, BaseData> request = new ApiRequest<>();
  180 +
  181 + request.observable = ApiBuild.service(clazz, api)
  182 + .setEndpoint(serviceEndpoint(clazz))
  183 + .addInterceptor(interceptor)
  184 + .build(decode, OKHTTP_KEEP_ALIVE_DURATION_SECONDS);
  185 +
  186 + return request;
  187 + }
  188 +
  189 +
  190 + private static <Service, Observable extends io.reactivex.Observable<Result<BaseData>>, BaseData extends BaseInfo>
  191 + ApiRequest<Observable, BaseData> serviceNewVersion(Class<Service> clazz, boolean decode, ApiBuild.Api<Service, Observable, BaseData> api,long connectTimeout ,long readTimeout, Interceptor... interceptor) {
  192 +
  193 + ApiRequest<Observable, BaseData> request = new ApiRequest<>();
  194 +
  195 + request.observable = ApiBuild.service(clazz, api)
  196 + .setEndpoint(serviceEndpoint(clazz))
  197 + .setConnectTimeout(connectTimeout)
  198 + .setReadTimeout(readTimeout)
  199 + .addInterceptor(interceptor)
  200 + .build(decode);
  201 +
  202 + return request;
  203 + }
  204 +
  205 + private Observable observable;
  206 +
  207 + private ApiRequest() {
  208 + }
  209 +
  210 + public static <Observable extends io.reactivex.Observable<Result<BaseData>>, BaseData extends BaseInfo>
  211 + Disposable subscribe(Observable observable, Subscriber<BaseData> subscriber) {
  212 + return observable.take(1)
  213 + .subscribeOn(Schedulers.io())
  214 + .observeOn(AndroidSchedulers.mainThread())
  215 + .subscribe(subscriber.next, subscriber.error, subscriber.complete, subscriber.subscribe);
  216 + }
  217 +
  218 + public Disposable subscribe(Subscriber<BaseData> subscriber) {
  219 + return observable.take(1)
  220 + .subscribeOn(Schedulers.io())
  221 + .observeOn(AndroidSchedulers.mainThread())
  222 + .subscribe(subscriber.next, subscriber.error, subscriber.complete, subscriber.subscribe);
  223 + }
  224 +
  225 + public Disposable subscribe(Context context, DataCallback<BaseData> callback) {
  226 + Subscriber<BaseData> subscriber = new Subscriber<BaseData>(context) {
  227 + @Override
  228 + public void onCompleted(String s, String s1, BaseData data) {
  229 + if (callback == null) return;
  230 + callback.callback(SUCCESS, "", data);
  231 + }
  232 +
  233 + @Override
  234 + public void onError(String code, String message) {
  235 + if (callback == null) return;
  236 + int errorCode = -1;
  237 + try {
  238 + errorCode = Integer.valueOf(code);
  239 + } catch (Exception ignored) {
  240 + }
  241 +
  242 + Log.e("LynnTest read", code + " \n " + message);
  243 + callback.callback(errorCode, message, null);
  244 + }
  245 + };
  246 +
  247 + return observable.take(1)
  248 + .subscribeOn(Schedulers.io())
  249 + .observeOn(AndroidSchedulers.mainThread())
  250 + .subscribe(subscriber.next, subscriber.error, subscriber.complete, subscriber.subscribe);
  251 + }
  252 +
  253 + public static Disposable loadData(String url, DataCallback<String> callback) {
  254 + return io.reactivex.Observable
  255 + .just(url)
  256 + .map(s -> {
  257 + Response response = null;
  258 + String data = null;
  259 + try {
  260 + OkHttpClient client = new OkHttpClient();//创建OkHttpClient对象
  261 + Request request = new Request.Builder().url(url).build();
  262 + response = client.newCall(request).execute();//得到Response 对
  263 + if (response.isSuccessful()) data = response.body().string();
  264 + } catch (Exception e) {
  265 + Log.e("Api", "", e);
  266 + }
  267 +
  268 + if (data != null) {
  269 +// Log.e("DemoView", "response.code()==" + response.code());
  270 +// Log.e("DemoView", "response.message()==" + response.message());
  271 +// Log.e("DemoView", "res==" + data);
  272 + //此时的代码执行在子线程,修改UI的操作请使用handler跳转到UI线程。
  273 + }
  274 + return data;
  275 + })
  276 + .subscribeOn(Schedulers.io())
  277 + .observeOn(AndroidSchedulers.mainThread())
  278 + .subscribe(s -> callback.callback(0, "", s));
  279 + }
  280 +}
... ...
lib_network/src/main/java/com/cnlive/strike/data/network/api/ApiServiceAnnouncementCheck.java 0 → 100644
  1 +package com.cnlive.strike.data.network.api;
  2 +
  3 +
  4 +import com.cnlive.strike.data.network.model.BaseInfo;
  5 +
  6 +import java.util.Map;
  7 +
  8 +import io.reactivex.Observable;
  9 +import retrofit2.adapter.rxjava2.Result;
  10 +import retrofit2.http.POST;
  11 +import retrofit2.http.QueryMap;
  12 +
  13 +/**
  14 + * 达人有关的接口
  15 + */
  16 +public interface ApiServiceAnnouncementCheck {
  17 +
  18 + /**
  19 + * 检查敏感词
  20 + */
  21 + @POST("Daren/announcementCheck/checkFeaturedGroup.action")
  22 + Observable<Result<BaseInfo>> checkSensitiveWord(@QueryMap() Map<String, String> maps);
  23 +
  24 +}
  25 +
... ...
lib_network/src/main/java/com/cnlive/strike/data/network/api/ApiServiceApplyRefundReason.java 0 → 100644
  1 +package com.cnlive.strike.data.network.api;
  2 +
  3 +
  4 +import com.cnlive.strike.data.network.model.BaseInfo;
  5 +import com.cnlive.strike.data.network.model.GroupLimitInfo;
  6 +import com.cnlive.strike.data.network.model.GroupMemberConfig;
  7 +import com.cnlive.strike.data.network.model.LinkAddressModel;
  8 +
  9 +import java.util.List;
  10 +
  11 +import io.reactivex.Observable;
  12 +import retrofit2.Call;
  13 +import retrofit2.adapter.rxjava2.Result;
  14 +import retrofit2.http.GET;
  15 +
  16 +/**
  17 + * Created by Lynn on 2018/2/7.
  18 + */
  19 +
  20 +public interface ApiServiceApplyRefundReason {
  21 +
  22 + @GET("json/refundReason.json")
  23 + Call<List<String>> getRefundReason();
  24 +
  25 + @GET("json/wjj_user_terms.json")
  26 + Call<List<LinkAddressModel>> getDarenJson();
  27 +
  28 + @GET("json/GroupMemberLimit.json")
  29 + Observable<Result<BaseInfo<GroupMemberConfig>>> getGroupMember();
  30 +
  31 + @GET("json/GroupMemberLimit.json")
  32 + Observable<Result<BaseInfo<GroupLimitInfo>>> getGroupLimit();
  33 +
  34 +}
... ...
lib_network/src/main/java/com/cnlive/strike/data/network/api/ApiServiceBlackList.java 0 → 100644
  1 +package com.cnlive.strike.data.network.api;
  2 +
  3 +import com.cnlive.strike.data.network.model.BaseInfo;
  4 +import com.cnlive.strike.data.network.model.BlackListInfo;
  5 +import com.cnlive.strike.data.network.model.LetHimNoSee;
  6 +import com.cnlive.strike.data.network.model.LetHimNoSeeFlag;
  7 +import com.cnlive.strike.data.network.model.NoSeeHim;
  8 +
  9 +import java.util.List;
  10 +import java.util.Map;
  11 +
  12 +import io.reactivex.Observable;
  13 +import retrofit2.adapter.rxjava2.Result;
  14 +import retrofit2.http.FieldMap;
  15 +import retrofit2.http.FormUrlEncoded;
  16 +import retrofit2.http.POST;
  17 +import retrofit2.http.QueryMap;
  18 +
  19 +public interface ApiServiceBlackList {
  20 +
  21 + /**
  22 + * 加入黑名单
  23 + *
  24 + * @param maps
  25 + * @return
  26 + */
  27 + @FormUrlEncoded
  28 + @POST("Daren/blackList/blackListAdd.action")
  29 + Observable<Result<BaseInfo<BlackListInfo>>> addFriendInBlackList(@FieldMap Map<String, String> maps);
  30 +
  31 + /**
  32 + * 移除黑名单
  33 + *
  34 + * @param maps
  35 + * @return
  36 + */
  37 + @POST("Daren/blackList/blackListDelete.action")
  38 + Observable<Result<BaseInfo<BlackListInfo>>> deleteFriendInBlackList(@QueryMap() Map<String, String> maps);
  39 +
  40 + /**
  41 + * 拉取黑名单列表
  42 + *
  43 + * @param maps
  44 + * @return
  45 + */
  46 + @POST("Daren/blackList/blackListGet.action")
  47 + Observable<Result<BaseInfo<BlackListInfo>>> getFriendInBlackList(@QueryMap() Map<String, String> maps);
  48 +
  49 + /**
  50 + * 生活圈和视屏-不看他的
  51 + * 杨帅 2019-4-23
  52 + * sid String true sid
  53 + * appId String true appId
  54 + * friendIds String true 好友sid, 格式:[11111,2222,3333]
  55 + *
  56 + * @param maps
  57 + * @return
  58 + */
  59 + @POST("Daren/moment/addNoLookFsids.action")
  60 + Observable<Result<BaseInfo>> addNoLookFsids(@QueryMap() Map<String, String> maps);
  61 +
  62 + /**
  63 + * 取消:生活圈和视屏-不看他的列表
  64 + * 杨帅 2019-4-23
  65 + *
  66 + * @param maps
  67 + * @return
  68 + */
  69 + @POST("Daren/moment/getNoLookFsids.action")
  70 + Observable<Result<BaseInfo<NoSeeHim>>> getNoLookFsids(@QueryMap() Map<String, String> maps);
  71 +
  72 + /**
  73 + * 取消:生活圈和视屏-不看他的
  74 + * 杨帅 2019-4-23
  75 + *
  76 + * @param maps
  77 + * @return
  78 + */
  79 + @POST("Daren/moment/delNoLookFsids.action")
  80 + Observable<Result<BaseInfo>> cancelNoLookFsids(@QueryMap() Map<String, String> maps);
  81 +
  82 + /**
  83 + * 取消:生活圈和视屏-不让他人看 按钮标志
  84 + * 杨帅 2019-4-24
  85 + * sid String true sid
  86 + * friendIds String true 好友id
  87 + *
  88 + * @param maps
  89 + * @return
  90 + */
  91 + @POST("Daren/moment/doNotletFsidsType.action")
  92 + Observable<Result<BaseInfo<LetHimNoSeeFlag>>> getLetHimNoSeeFlag(@QueryMap() Map<String, String> maps);
  93 +
  94 + /**
  95 + * 生活圈和视屏-不让他人看
  96 + * 杨帅 2019-4-23
  97 + * sid String true sid
  98 + * friendIds String true 好友id 格式:[111,222,333]
  99 + *
  100 + * @param maps
  101 + * @return
  102 + */
  103 + @POST("Daren/moment/addDoNotletFsids.action")
  104 + Observable<Result<BaseInfo>> addDoNotletFsids(@QueryMap() Map<String, String> maps);
  105 +
  106 + /**
  107 + * 取消:生活圈和视屏-不让他人看
  108 + * 杨帅 2019-4-23
  109 + * sid String true sid
  110 + * friendIds String true 好友id 格式:[111,222,333]
  111 + *
  112 + * @param maps
  113 + * @return
  114 + */
  115 + @POST("Daren/moment/delDoNotletFsids.action")
  116 + Observable<Result<BaseInfo>> cancelDoNotletFsids(@QueryMap() Map<String, String> maps);
  117 +
  118 + /**
  119 + * 生活圈和视屏-不让他人看列表
  120 + * 杨帅 2019-4-23
  121 + * sid String true sid
  122 + *
  123 + * @param maps
  124 + * @return
  125 + */
  126 + @POST("Daren/moment/getDoNotletFsids.action")
  127 + Observable<Result<BaseInfo<LetHimNoSee>>> getDoNotletFsids(@QueryMap() Map<String, String> maps);
  128 +
  129 + /**
  130 + * 取消:生活圈和视屏-不看他 按钮标志
  131 + * 杨帅 2019-4-24
  132 + * sid String true sid
  133 + * friendIds String true 好友id
  134 + *
  135 + * @param maps
  136 + * @return
  137 + */
  138 + @POST("Daren/moment/noLookFsidsType.action")
  139 + Observable<Result<BaseInfo<LetHimNoSeeFlag>>> getNoSeeHimFlag(@QueryMap() Map<String, String> maps);
  140 +}
... ...
lib_network/src/main/java/com/cnlive/strike/data/network/api/ApiServiceCNLiveIm.java 0 → 100644
  1 +package com.cnlive.strike.data.network.api;
  2 +
  3 +
  4 +import com.cnlive.strike.data.network.model.BaseInfo;
  5 +import com.cnlive.strike.data.network.model.CheckBlackListRelation;
  6 +import com.cnlive.strike.data.network.model.FriendListInfo;
  7 +import com.cnlive.strike.data.network.model.SearchByPhoneNumberData;
  8 +import com.cnlive.strike.data.network.model.UploadContactData;
  9 +
  10 +import java.util.List;
  11 +import java.util.Map;
  12 +
  13 +import io.reactivex.Observable;
  14 +import retrofit2.adapter.rxjava2.Result;
  15 +import retrofit2.http.FieldMap;
  16 +import retrofit2.http.FormUrlEncoded;
  17 +import retrofit2.http.POST;
  18 +import retrofit2.http.QueryMap;
  19 +
  20 +/**
  21 + * im有关的接口
  22 + */
  23 +public interface ApiServiceCNLiveIm {
  24 +
  25 + /**
  26 + * 上传通讯录接口
  27 + *
  28 + * @param maps
  29 + * @return
  30 + */
  31 + @POST("CnliveIM/notify/uploadContacts.action")
  32 + Observable<Result<BaseInfo<List<UploadContactData>>>> uploadContacts(@QueryMap Map<String, String> maps);
  33 +
  34 + /**
  35 + * 按手机号查找
  36 + *
  37 + * @param maps
  38 + * @return
  39 + */
  40 + @POST("CnliveIM/notify/searchByPhoneNumber.action")
  41 + Observable<Result<BaseInfo<SearchByPhoneNumberData>>> searchByPhoneNumber(@QueryMap() Map<String, String> maps);
  42 +
  43 + /**
  44 + * 我要催单
  45 + *
  46 + * @param maps
  47 + * @return
  48 + */
  49 + @POST("CnliveIM/notify/remind.action")
  50 + Observable<Result<BaseInfo>> remind(@QueryMap() Map<String, String> maps);
  51 +
  52 + /**
  53 + * 后台代替用户发送自定义消息
  54 + *
  55 + * @param maps
  56 + * @return
  57 + */
  58 + @FormUrlEncoded
  59 + @POST("CnliveIM/notify/custMsgPush.action")
  60 + Observable<Result<BaseInfo>> custMsgPush(@FieldMap Map<String, String> maps);
  61 +
  62 + /**
  63 + * 发送文本消息
  64 + *
  65 + * @param maps
  66 + * @return
  67 + */
  68 + @FormUrlEncoded
  69 + @POST("CnliveIM/notify/textMsgPush.action")
  70 + Observable<Result<BaseInfo>> textMsgPush(@FieldMap Map<String, String> maps);
  71 +
  72 + /**
  73 + * 同意进群
  74 + *
  75 + * @param maps
  76 + * @return
  77 + */
  78 + @POST("CnliveIM/notify/addGroup.action")
  79 + Observable<Result<BaseInfo<String>>> addGroup(@QueryMap() Map<String, String> maps);
  80 +
  81 + /**
  82 + * 发送消息撤回
  83 + *
  84 + * @param maps
  85 + * @return
  86 + */
  87 + @FormUrlEncoded
  88 + @POST("CnliveIM/notify/revokeBatchSendMsg.action")
  89 + Observable<Result<BaseInfo>> revokeBatchSendMsg(@FieldMap() Map<String, String> maps);
  90 +
  91 + /**
  92 + * 获取好友名单
  93 + */
  94 + @FormUrlEncoded
  95 + @POST("CnliveIM/notify/checkFriend.action")
  96 + Observable<Result<BaseInfo<FriendListInfo>>> getFriendsList(@FieldMap() Map<String, String> maps);
  97 +
  98 + /**
  99 + * 查询黑名单状态
  100 + */
  101 + @FormUrlEncoded
  102 + @POST("CnliveIM/notify/checkBlackList.action")
  103 + Observable<Result<BaseInfo<CheckBlackListRelation>>> checkBlackList(@FieldMap() Map<String, String> maps);
  104 +
  105 +}
  106 +
... ...
lib_network/src/main/java/com/cnlive/strike/data/network/api/ApiServiceCenter.java 0 → 100644
  1 +package com.cnlive.strike.data.network.api;
  2 +
  3 +import com.cnlive.strike.data.network.model.BaseInfo;
  4 +import com.cnlive.strike.data.network.model.CategoryDarensData;
  5 +import com.cnlive.strike.data.network.model.CenterPageData;
  6 +import com.cnlive.strike.data.network.model.ChannelTabList;
  7 +
  8 +import java.util.Map;
  9 +
  10 +import io.reactivex.Observable;
  11 +import retrofit2.adapter.rxjava2.Result;
  12 +import retrofit2.http.Headers;
  13 +import retrofit2.http.POST;
  14 +import retrofit2.http.QueryMap;
  15 +
  16 +/**
  17 + * Created by Lynn on 2018/3/14.
  18 + */
  19 +
  20 +public interface ApiServiceCenter {
  21 +
  22 + /**
  23 + * 分类首页
  24 + *
  25 + * @return
  26 + */
  27 + @Headers("cache:5")
  28 + @POST("Daren/classify/getNewCenterPage.action")
  29 + Observable<Result<BaseInfo<CenterPageData>>> getCenterPage(@QueryMap() Map<String, String> map);
  30 +
  31 + /**
  32 + * 分类二级页面达人列表
  33 + *
  34 + * @return
  35 + */
  36 + @Headers("cache:5")
  37 + @POST("Daren/classify/getNewDarensByCategory.action")
  38 + Observable<Result<BaseInfo<CategoryDarensData>>> getDarensByCategory(@QueryMap() Map<String, String> map);
  39 +
  40 + /**
  41 + * 分类 Tab List
  42 + *
  43 + * @return
  44 + */
  45 + @Headers("cache:5")
  46 + @POST("Daren/center/getChannel.action")
  47 + Observable<Result<BaseInfo<ChannelTabList>>> getChannel(@QueryMap() Map<String, String> map);
  48 +}
... ...
lib_network/src/main/java/com/cnlive/strike/data/network/api/ApiServiceCms.java 0 → 100644
  1 +package com.cnlive.strike.data.network.api;
  2 +
  3 +import com.cnlive.strike.data.network.model.AudioAlbumDetailsInfo;
  4 +import com.cnlive.strike.data.network.model.AudioChapterInfo;
  5 +import com.cnlive.strike.data.network.model.AudioHistoryInfo;
  6 +import com.cnlive.strike.data.network.model.BaseInfo;
  7 +import com.cnlive.strike.data.network.model.BaseVideoInfo;
  8 +import com.cnlive.strike.data.network.model.ClassifyChannelTabList;
  9 +import com.cnlive.strike.data.network.model.LivingPlayBackData;
  10 +import com.cnlive.strike.data.network.model.PlayAudioDetailData;
  11 +import com.cnlive.strike.data.network.model.PlayVodItemInfo;
  12 +import com.cnlive.strike.data.network.model.PlayerPgcLiveDetail;
  13 +import com.cnlive.strike.data.network.model.PlayerVodDetail;
  14 +import com.cnlive.strike.data.network.model.VideoInfo;
  15 +
  16 +import java.util.HashMap;
  17 +import java.util.List;
  18 +import java.util.Map;
  19 +
  20 +import io.reactivex.Observable;
  21 +import okhttp3.RequestBody;
  22 +import retrofit2.adapter.rxjava2.Result;
  23 +import retrofit2.http.Body;
  24 +import retrofit2.http.DELETE;
  25 +import retrofit2.http.FormUrlEncoded;
  26 +import retrofit2.http.GET;
  27 +import retrofit2.http.HTTP;
  28 +import retrofit2.http.Headers;
  29 +import retrofit2.http.POST;
  30 +import retrofit2.http.Path;
  31 +import retrofit2.http.QueryMap;
  32 +import retrofit2.http.Url;
  33 +
  34 +/**
  35 + * Created by Lynn on 2018/11/27.
  36 + */
  37 +
  38 +public interface ApiServiceCms {
  39 + /**
  40 + * 分类 Tab List
  41 + *
  42 + * @return
  43 + */
  44 + @GET("contentApi/app")
  45 + Observable<Result<BaseInfo<List<ClassifyChannelTabList>>>> getChannelTab(@QueryMap() Map<String, String> map);
  46 +
  47 + @GET("playApi/play")
  48 + Observable<Result<BaseInfo<PlayerVodDetail>>> getPlayerVodDetail(@QueryMap() Map<String, String> map);
  49 +
  50 + @GET("playApi/play")
  51 + Observable<Result<BaseInfo<PlayerPgcLiveDetail>>> getPlayerLiveDetail(@QueryMap() Map<String, String> map);
  52 +
  53 + @GET("playApi/play")
  54 + Observable<Result<BaseInfo<PlayAudioDetailData>>> getPlayAudioDetail(@QueryMap() Map<String, String> map);
  55 +
  56 + @GET("playApi/moreList")
  57 + Observable<Result<BaseInfo<PlayVodItemInfo>>> checkPlayItem(@QueryMap Map<String, String> maps);
  58 +
  59 + @GET("contentApi/{id}")
  60 + Observable<Result<BaseInfo<BaseVideoInfo>>> getVideoInfo(@Path("id") String id);
  61 +
  62 +
  63 + /**
  64 + * 获取 直播状态的视频 或者回放的视频列表
  65 + *
  66 + * @param maps liveType 1 是直播 4 是回放
  67 + * @return
  68 + */
  69 + @GET("contentApi/playList")
  70 + Observable<Result<BaseInfo<VideoInfo>>> getVideoList(@QueryMap() Map<String, String> maps);
  71 +
  72 + /**
  73 + * 预约
  74 + *
  75 + * @param maps
  76 + * @return
  77 + */
  78 + @GET("contentApi/liveAppoint")
  79 + Observable<Result<BaseInfo<Object>>> reservationLive(@QueryMap() Map<String, Object> maps);
  80 +
  81 + /**
  82 + * 获取音频专辑详情页
  83 + *
  84 + * @param maps
  85 + * @return
  86 + */
  87 + @GET("contentApi/getAlbumMsg")
  88 + Observable<Result<BaseInfo<AudioAlbumDetailsInfo>>> getAlbumMsg(@QueryMap() Map<String, String> maps);
  89 +
  90 + /**
  91 + * 获取音频列表
  92 + *
  93 + * @param maps
  94 + * @return
  95 + */
  96 + @GET("contentApi/albumAudioList")
  97 + Observable<Result<BaseInfo<List<AudioChapterInfo>>>> getAlbumMsgList(@QueryMap() Map<String, Object> maps);
  98 +
  99 + /**
  100 + * 获取音频播放的历史纪录
  101 + *
  102 + * @param maps
  103 + * @return
  104 + */
  105 + @GET("recordApi/getRecords")
  106 + Observable<Result<BaseInfo<List<AudioHistoryInfo>>>> getRecords(@QueryMap() Map<String, String> maps);
  107 +
  108 +
  109 + // @DELETE("recordApi")
  110 + @POST("recordApi/delete")
  111 + Observable<Result<BaseInfo<Object>>> deleteAudioHistory(@QueryMap Map<String, String> body);
  112 +
  113 + /**
  114 + * contentId : 内容id
  115 + * schedule : 进度 double
  116 + * sid
  117 + * model 5
  118 + *
  119 + * @return
  120 + */
  121 + @POST("recordApi/end")
  122 + Observable<Result<BaseInfo<Object>>> audioPlayEnd(@QueryMap Map<String, String> body);
  123 +
  124 + /**
  125 + * 获取直播回放,短视频的数据
  126 + *
  127 + * @param path
  128 + * @param body
  129 + * @return
  130 + */
  131 + @GET()
  132 + Observable<Result<BaseInfo<LivingPlayBackData>>> getLivingPlayBackList(@Url String path, @QueryMap Map<String, String> body);
  133 +
  134 +
  135 +}
... ...
lib_network/src/main/java/com/cnlive/strike/data/network/api/ApiServiceCommon.java 0 → 100644
  1 +package com.cnlive.strike.data.network.api;
  2 +
  3 +import com.cnlive.strike.data.network.model.AppVersionInfo;
  4 +import com.cnlive.strike.data.network.model.BaseInfo;
  5 +import com.cnlive.strike.data.network.model.CommonMsgInfo;
  6 +import com.cnlive.strike.data.network.model.ShareAppInfo;
  7 +import com.cnlive.strike.data.network.model.ShareDarenInfo;
  8 +import com.cnlive.strike.data.network.model.TRTCRoomInfo;
  9 +
  10 +import java.util.Map;
  11 +
  12 +import io.reactivex.Observable;
  13 +import retrofit2.Call;
  14 +import retrofit2.adapter.rxjava2.Result;
  15 +import retrofit2.http.POST;
  16 +import retrofit2.http.QueryMap;
  17 +
  18 +public interface ApiServiceCommon {
  19 + /**
  20 + * 版本更新
  21 + *
  22 + * @return
  23 + */
  24 + @POST("Daren/common/getNewestVersion.action")
  25 + Observable<Result<BaseInfo<AppVersionInfo>>> getVersion(@QueryMap() Map<String, String> map);
  26 +
  27 + /**
  28 + * 获取App分享地址
  29 + *
  30 + * @return
  31 + */
  32 + @POST("Daren/common/appDownLoadUrl.action")
  33 + Observable<Result<BaseInfo<ShareAppInfo>>> getAppShare();
  34 +
  35 + /**
  36 + * 获取达人主页分享地址
  37 + *
  38 + * @return
  39 + */
  40 + @POST("Daren/common/shareDarenHomePage.action")
  41 + Observable<Result<BaseInfo<ShareDarenInfo>>> getDarenShare(@QueryMap() Map<String, String> map);
  42 +
  43 + @POST("Daren/common/getCommonMsg.action")
  44 + Observable<Result<BaseInfo<CommonMsgInfo>>> getCommonMsg(@QueryMap() Map<String, String> map);
  45 +
  46 + /**
  47 + * 获取音视频通话roomId
  48 + */
  49 + @POST("Daren/common/getRoomId.action")
  50 + Observable<Result<BaseInfo<TRTCRoomInfo>>> getTRTCRoomInfo(@QueryMap() Map<String, String> map);
  51 +
  52 +
  53 + /**
  54 + * 版本更新
  55 + *
  56 + * @return
  57 + */
  58 +
  59 + @POST("Daren/common/getNewestVersion.action")
  60 + Observable<Result<BaseInfo<AppVersionInfo>>> getshotTimeVersion(@QueryMap() Map<String, String> map);
  61 +
  62 +
  63 + @POST("Daren/common/cancellationAccount.action")
  64 + Observable<Result<BaseInfo>> cancellationAccount(@QueryMap() Map<String, String> map);
  65 +}
... ...
lib_network/src/main/java/com/cnlive/strike/data/network/api/ApiServiceContact.java 0 → 100644
  1 +package com.cnlive.strike.data.network.api;
  2 +
  3 +
  4 +import com.cnlive.strike.data.network.model.BaseInfo;
  5 +import com.cnlive.strike.data.network.model.ContactAddressData;
  6 +
  7 +import java.util.List;
  8 +import java.util.Map;
  9 +
  10 +import io.reactivex.Observable;
  11 +import retrofit2.adapter.rxjava2.Result;
  12 +import retrofit2.http.FieldMap;
  13 +import retrofit2.http.FormUrlEncoded;
  14 +import retrofit2.http.POST;
  15 +import retrofit2.http.QueryMap;
  16 +
  17 +/**
  18 + * 用户收获地址有关的接口
  19 + */
  20 +public interface ApiServiceContact {
  21 +
  22 + /**
  23 + * 更新联系人收货地址
  24 + *
  25 + * @param maps
  26 + * @return
  27 + */
  28 + @FormUrlEncoded
  29 + @POST("Daren/contact/updateContact.action")
  30 + Observable<Result<BaseInfo<Object>>> updateContact(@FieldMap Map<String, String> maps);
  31 +
  32 + /**
  33 + * 读取联系人收获地址
  34 + *
  35 + * @param maps
  36 + * @return
  37 + */
  38 + @POST("Daren/contact/readContacts.action")
  39 + Observable<Result<BaseInfo<List<ContactAddressData>>>> readContact(@QueryMap() Map<String, String> maps);
  40 +
  41 + /**
  42 + * 添加联系人收货地址
  43 + *
  44 + * @param maps
  45 + * @return
  46 + */
  47 + @FormUrlEncoded
  48 + @POST("Daren/contact/addContact.action")
  49 + Observable<Result<BaseInfo<ContactAddressData>>> addContact(@FieldMap Map<String, String> maps);
  50 +
  51 + /**
  52 + * 删除联系人某条收货地址
  53 + *
  54 + * @param maps
  55 + * @return
  56 + */
  57 + @POST("Daren/contact/deleteContact.action")
  58 + Observable<Result<BaseInfo<Object>>> deleteContact(@QueryMap() Map<String, String> maps);
  59 +
  60 +}
  61 +
... ...
lib_network/src/main/java/com/cnlive/strike/data/network/api/ApiServiceDaren.java 0 → 100644
  1 +package com.cnlive.strike.data.network.api;
  2 +
  3 +
  4 +import com.cnlive.strike.data.network.model.BaseInfo;
  5 +import com.cnlive.strike.data.network.model.CheckApplyResultInfo;
  6 +import com.cnlive.strike.data.network.model.CheckTransferInfo;
  7 +import com.cnlive.strike.data.network.model.DarenApplyModel;
  8 +import com.cnlive.strike.data.network.model.GifEmojiItemData;
  9 +import com.cnlive.strike.data.network.model.GifListData;
  10 +import com.cnlive.strike.data.network.model.ShortLinkInfo;
  11 +
  12 +import java.util.List;
  13 +import java.util.Map;
  14 +
  15 +import io.reactivex.Observable;
  16 +import okhttp3.MultipartBody;
  17 +import okhttp3.RequestBody;
  18 +import retrofit2.adapter.rxjava2.Result;
  19 +import retrofit2.http.Multipart;
  20 +import retrofit2.http.POST;
  21 +import retrofit2.http.Part;
  22 +import retrofit2.http.PartMap;
  23 +import retrofit2.http.QueryMap;
  24 +
  25 +/**
  26 + * 达人有关的接口
  27 + */
  28 +public interface ApiServiceDaren {
  29 +
  30 + /**
  31 + * 检查达人审核状态
  32 + */
  33 + @POST("Daren/witness/checkWitness.action")
  34 + Observable<Result<CheckApplyResultInfo>> checkApplyWitness(@QueryMap() Map<String, String> maps);
  35 +
  36 + /**
  37 + * 达人申请接口
  38 + */
  39 + @Multipart
  40 + @POST("Daren/witness/applyWitness.action")
  41 + Observable<Result<DarenApplyModel>> applyWitness(@PartMap() Map<String, RequestBody> maps,
  42 + @Part List<MultipartBody.Part> params);
  43 +
  44 + /**
  45 + * 预约
  46 + *
  47 + * @param maps
  48 + * @return
  49 + */
  50 + @POST("Daren/announcementCheck/genShortLinks.action")
  51 + Observable<Result<BaseInfo<ShortLinkInfo>>> genShortLinks(@QueryMap() Map<String, String> maps);
  52 +
  53 +
  54 + /**
  55 + * 获取gif包的信息
  56 + */
  57 + @POST("Daren/section/getSectionDetail.action")
  58 + Observable<Result<BaseInfo<GifEmojiItemData>>> getGifEmojiData(@QueryMap() Map<String, String> maps);
  59 +
  60 + /**
  61 + * 获取表情包列表信息
  62 + */
  63 + @POST("Daren/section/getSectionList.action")
  64 + Observable<Result<BaseInfo<GifListData>>> getGifEmojiListData();
  65 +
  66 + /**
  67 + * 关注达人
  68 + */
  69 + @POST("Daren/group/addFollows.action")
  70 + Observable<Result<BaseInfo<Object>>> addFollows(@QueryMap() Map<String, String> maps);
  71 +
  72 + /**
  73 + * 取消关注达人
  74 + */
  75 + @POST("Daren/group/userCancelFollow.action")
  76 + Observable<Result<BaseInfo<Object>>> userCancelFollow(@QueryMap() Map<String, String> maps);
  77 +
  78 + /**
  79 + * 查询群组转账结果
  80 + */
  81 + @POST("Daren/groupManagement/getQueryTransfer.action")
  82 + Observable<Result<BaseInfo<CheckTransferInfo>>> getQueryTransfer(@QueryMap() Map<String, String> maps);
  83 +
  84 + /**
  85 + * 单独加入群聊api
  86 + */
  87 + @POST("Daren/group/userAddGroup.action")
  88 + Observable<Result<BaseInfo>> userAddGroup(@QueryMap Map<String, String> map);
  89 +
  90 +
  91 +}
  92 +
... ...
lib_network/src/main/java/com/cnlive/strike/data/network/api/ApiServiceEyewitness.java 0 → 100644
  1 +package com.cnlive.strike.data.network.api;
  2 +
  3 +import com.cnlive.strike.data.network.model.BaseInfo;
  4 +import com.cnlive.strike.data.network.model.EyewitnessInfo;
  5 +import com.cnlive.strike.data.network.model.EyewitnessSuccessfullyInfo;
  6 +
  7 +import java.util.Map;
  8 +
  9 +import io.reactivex.Observable;
  10 +import retrofit2.adapter.rxjava2.Result;
  11 +import retrofit2.http.POST;
  12 +import retrofit2.http.QueryMap;
  13 +
  14 +/**
  15 + * 作者: 吴奎庆
  16 + * <p>
  17 + * 时间: 2018/10/12
  18 + * <p>
  19 + * 简介:
  20 + */
  21 +
  22 +public interface ApiServiceEyewitness {
  23 + //检测目击者的状态(是否是目击者)
  24 + @POST("Daren/witness/checkWitness.action")
  25 + Observable<Result<BaseInfo<EyewitnessInfo>>> checkWitness(@QueryMap Map<String, String> maps);
  26 +
  27 + //获取目击者的发布内容
  28 + @POST("Daren/witness/getWitnessPublishContent.action")
  29 + Observable<Result<BaseInfo<EyewitnessSuccessfullyInfo>>> getWitnessPublishContent(@QueryMap Map<String, String> maps);
  30 +
  31 + //删除or修改目击者发布内容
  32 + @POST("Daren/witness/deleteOrUpdateWitnessPublish.action")
  33 + Observable<Result<BaseInfo>> deleteOrUpdateWitnessPublish(@QueryMap Map<String, String> maps);
  34 +
  35 +
  36 +
  37 +}
... ...
lib_network/src/main/java/com/cnlive/strike/data/network/api/ApiServiceGroupManagement.java 0 → 100644
  1 +package com.cnlive.strike.data.network.api;
  2 +
  3 +
  4 +import com.cnlive.strike.data.network.model.ActivityRecordDetailsInfo;
  5 +import com.cnlive.strike.data.network.model.BaseInfo;
  6 +import com.cnlive.strike.data.network.model.CreateGroupPayMentInfo;
  7 +import com.cnlive.strike.data.network.model.GroupOwnerInfo;
  8 +import com.cnlive.strike.data.network.model.GroupPayOrderInfo;
  9 +import com.cnlive.strike.data.network.model.InitiatePaymentInfo;
  10 +import com.cnlive.strike.data.network.model.PaymentActivityRecordInfo;
  11 +import com.cnlive.strike.data.network.model.PaymentPreInfo;
  12 +import com.cnlive.strike.data.network.model.SuccessiveGroupListItem;
  13 +import com.cnlive.strike.data.network.model.TransferCheckKeyInfo;
  14 +import com.cnlive.strike.data.network.model.TransferKeyInfo;
  15 +import com.cnlive.strike.data.network.model.VoteMsgInfo;
  16 +import com.cnlive.strike.data.network.model.VotedHistoryInfo;
  17 +import com.cnlive.strike.data.network.model.VotedStopInfo;
  18 +
  19 +import java.util.List;
  20 +import java.util.Map;
  21 +
  22 +import io.reactivex.Observable;
  23 +import retrofit2.adapter.rxjava2.Result;
  24 +import retrofit2.http.FieldMap;
  25 +import retrofit2.http.FormUrlEncoded;
  26 +import retrofit2.http.POST;
  27 +import retrofit2.http.QueryMap;
  28 +
  29 +/**
  30 + * Created by gujun on 2018/5/23.
  31 + */
  32 +
  33 +public interface ApiServiceGroupManagement {
  34 +
  35 + /**
  36 + * 后台发送通知邀请用户进群
  37 + *
  38 + * @param maps
  39 + * @return
  40 + */
  41 + @FormUrlEncoded
  42 + @POST("Daren/groupManagement/invitationAddGroup.action")
  43 + Observable<Result<BaseInfo<Object>>> invitationAddGroup(@FieldMap Map<String, String> maps);
  44 +
  45 + /**
  46 + * 活动投票付款
  47 + *
  48 + * @param maps
  49 + * @return
  50 + */
  51 + @POST("Daren/vote/addVote.action")
  52 + Observable<Result<BaseInfo<InitiatePaymentInfo>>> invitationPayment(@QueryMap Map<String, String> maps);
  53 +
  54 + /**
  55 + * 创建群 发起活动的接口
  56 + *
  57 + * @return
  58 + */
  59 + @POST("Daren/groupManagement/addGroupCharge.action")
  60 + Observable<Result<BaseInfo<CreateGroupPayMentInfo>>> createGroupPayMent(@QueryMap Map<String, String> maps);
  61 +
  62 + @POST("Daren/vote/getVoteMsg.action")
  63 + Observable<Result<BaseInfo<VoteMsgInfo>>> getVoteMsg(@QueryMap Map<String, String> maps);
  64 +
  65 + /**
  66 + * 投票
  67 + *
  68 + * @param maps
  69 + * @return
  70 + */
  71 +
  72 + @POST("Daren/vote/groupVote.action")
  73 + Observable<Result<BaseInfo<VoteMsgInfo>>> vote(@QueryMap Map<String, String> maps);
  74 +
  75 + /**
  76 + * 投票列表
  77 + *
  78 + * @param maps
  79 + * @return
  80 + */
  81 + @POST("Daren/vote/getVotes.action")
  82 + Observable<Result<BaseInfo<VotedHistoryInfo>>> votedHistory(@QueryMap Map<String, String> maps);
  83 +
  84 + /**
  85 + * 转账页面查询当前密钥
  86 + *
  87 + * @param maps
  88 + * @return
  89 + */
  90 + @POST("Daren/groupManagement/getCurrentKey.action")
  91 + Observable<Result<BaseInfo<TransferKeyInfo>>> getCurrentKey(@QueryMap Map<String, String> maps);
  92 +
  93 + /**
  94 + * 转账页面发送当前密钥
  95 + *
  96 + * @param maps
  97 + * @return
  98 + */
  99 + @POST("Daren/groupManagement/sendSecretKey.action")
  100 + Observable<Result<BaseInfo<TransferKeyInfo>>> sendKey(@QueryMap Map<String, String> maps);
  101 +
  102 + /**
  103 + * 转账页面验证当前密钥
  104 + *
  105 + * @param maps
  106 + * @return
  107 + */
  108 + @POST("Daren/groupManagement/checkKey.action")
  109 + Observable<Result<BaseInfo<TransferCheckKeyInfo>>> checkKey(@QueryMap Map<String, String> maps);
  110 +
  111 + /**
  112 + * @param maps
  113 + * @return
  114 + */
  115 + @POST("Daren/groupManagement/groupFundsRecords.action")
  116 + Observable<Result<BaseInfo<List<PaymentActivityRecordInfo>>>> getPaymentRecord(@QueryMap Map<String, String> maps);
  117 +
  118 + /**
  119 + * @param maps
  120 + * @return
  121 + */
  122 + @POST("Daren/vote/stopVote.action")
  123 + Observable<Result<BaseInfo<VotedStopInfo>>> stopVoted(@QueryMap Map<String, String> maps);
  124 +
  125 + /**
  126 + * 获取活动付款详情
  127 + *
  128 + * @param maps
  129 + * @return
  130 + */
  131 + @POST("Daren/groupManagement/queryActivityFee.action")
  132 + Observable<Result<BaseInfo<ActivityRecordDetailsInfo>>> getActivityRecordDetails(@QueryMap Map<String, String> maps);
  133 + /**
  134 + * 存储历任群主
  135 + *
  136 + * @param maps
  137 + * @return
  138 + */
  139 + @POST("Daren/groupManagement/saveSuccessiveGroup.action")
  140 + Observable<Result<BaseInfo<Object>>> saveSuccessiveGroup(@QueryMap Map<String, String> maps);
  141 +
  142 +
  143 + /**
  144 + * 生成预订单
  145 + *
  146 + * @param maps
  147 + * @return
  148 + */
  149 + @POST("Daren/groupManagement/payByGroupMembers.action")
  150 + Observable<Result<BaseInfo<GroupPayOrderInfo>>> payByGroupMembers(@QueryMap Map<String, String> maps);
  151 +
  152 + /**
  153 + * 获取历任群主列表
  154 + *
  155 + * @param maps
  156 + * @return
  157 + */
  158 + @POST("Daren/groupManagement/getSuccessiveGroupList.action")
  159 + Observable<Result<BaseInfo<List<SuccessiveGroupListItem>>>> getSuccessiveGroupList(@QueryMap Map<String, String> maps);
  160 + /**
  161 + * 获取历任群主列表
  162 + *
  163 + * @param maps
  164 + * @return
  165 + */
  166 + @POST("Daren/groupManagement/voteChoiceOwner.action")
  167 + Observable<Result<BaseInfo<GroupOwnerInfo>>> getGroupOwner(@QueryMap Map<String, String> maps);
  168 +
  169 + /**
  170 + * wjj预支付订单
  171 + * @param map
  172 + * @return
  173 + */
  174 + @POST("Daren/wjjPay/unifiedOrder.action")
  175 + Observable<Result<BaseInfo<PaymentPreInfo>>> getwjjPrePay(@QueryMap() Map<String, String> map);
  176 + /**
  177 + * wjj支付订单
  178 + * @param map
  179 + * @return
  180 + */
  181 + @POST("Daren/wjjPay/unifiedPay.action")
  182 + Observable<Result<BaseInfo<Object>>> getwjjPay(@QueryMap() Map<String, String> map);
  183 +
  184 +
  185 +}
... ...
lib_network/src/main/java/com/cnlive/strike/data/network/api/ApiServiceH5.java 0 → 100644
  1 +package com.cnlive.strike.data.network.api;
  2 +
  3 +import com.cnlive.strike.data.network.model.BaseInfo;
  4 +import com.cnlive.strike.data.network.model.H5PGCVideoInfo;
  5 +
  6 +import java.util.Map;
  7 +
  8 +import io.reactivex.Observable;
  9 +import retrofit2.adapter.rxjava2.Result;
  10 +import retrofit2.http.FieldMap;
  11 +import retrofit2.http.FormUrlEncoded;
  12 +import retrofit2.http.POST;
  13 +import retrofit2.http.QueryMap;
  14 +
  15 +public interface ApiServiceH5 {
  16 +
  17 + /**
  18 + * 提交举报信息
  19 + *
  20 + * @param maps sid 用户ID
  21 + * liveId 节目ID
  22 + * reason 举报信息
  23 + */
  24 + @FormUrlEncoded
  25 + @POST("/Daren/h5/report.action")
  26 + Observable<Result<BaseInfo>> commentReport(@FieldMap() Map<String, String> maps);
  27 +
  28 + /**
  29 + * 提交举报信息
  30 + *
  31 + * @param maps sid 用户ID
  32 + * liveId 节目ID
  33 + * reason 举报信息
  34 + */
  35 + @POST("/Daren/h5/getLiveDetail.action")
  36 + Observable<Result<BaseInfo<H5PGCVideoInfo>>> getLiveDetail(@QueryMap() Map<String, String> maps);
  37 +}
... ...
lib_network/src/main/java/com/cnlive/strike/data/network/api/ApiServiceHudong.java 0 → 100644
  1 +package com.cnlive.strike.data.network.api;
  2 +
  3 +import com.cnlive.strike.data.network.model.BaseInfo;
  4 +import com.cnlive.strike.data.network.model.FriendCommentState;
  5 +import com.cnlive.strike.data.network.model.GetDarenComment;
  6 +
  7 +import java.util.List;
  8 +import java.util.Map;
  9 +
  10 +import io.reactivex.Observable;
  11 +import okhttp3.MultipartBody;
  12 +import okhttp3.RequestBody;
  13 +import retrofit2.adapter.rxjava2.Result;
  14 +import retrofit2.http.FieldMap;
  15 +import retrofit2.http.FormUrlEncoded;
  16 +import retrofit2.http.Headers;
  17 +import retrofit2.http.Multipart;
  18 +import retrofit2.http.POST;
  19 +import retrofit2.http.Part;
  20 +import retrofit2.http.PartMap;
  21 +import retrofit2.http.QueryMap;
  22 +
  23 +/**
  24 + * Created by xiansong on 2018/2/28.
  25 + */
  26 +
  27 +public interface ApiServiceHudong {
  28 +
  29 + /**
  30 + * 获取获得评论列表
  31 + *
  32 + * @param maps darenId 达人ID
  33 + * plat 客户端平台
  34 + * pageNo 页码
  35 + * @return
  36 + */
  37 + @Headers("cache:5")
  38 + @POST("Daren/hudong/getDarenComment.action")
  39 + Observable<Result<BaseInfo<GetDarenComment>>> getDarenComment(@QueryMap() Map<String, String> maps);
  40 +
  41 + /**
  42 + * 达人点评
  43 + *
  44 + * @param maps sid 用户ID
  45 + * darenId 达人ID
  46 + * orderId 订单ID
  47 + * grade 分数
  48 + * comment 评论内容
  49 + * plat 客户端平台
  50 + * @return
  51 + */
  52 + @POST("Daren/hudong/commentDaren.action")
  53 + @Multipart
  54 + Observable<Result<BaseInfo>> commentDaren(@PartMap Map<String, RequestBody> maps,
  55 + @Part List<MultipartBody.Part> params);
  56 +
  57 + /**
  58 + * 达人点评
  59 + *
  60 + * @param maps sid 用户ID
  61 + * darenId 达人ID
  62 + * orderId 订单ID
  63 + * grade 分数
  64 + * comment 评论内容
  65 + * plat 客户端平台
  66 + * @return
  67 + */
  68 + @POST("Daren/hudong/commentDaren.action")
  69 + @Multipart
  70 + Observable<Result<BaseInfo>> commentDaren(@PartMap Map<String, RequestBody> maps);
  71 + /**
  72 + * 朋友圈评论
  73 + *
  74 + * @param maps appId 应用ID
  75 + * plat i=IOS客户端,a=Android客户端
  76 + * id 主题ID
  77 + * fromSid 评论者ID(回复时是回复者ID)
  78 + * toSid 发布者ID(回复时是最后一个被回复者ID)
  79 + * comment 评论内容
  80 + * type 评论类型(comment=评论;reply=回复)
  81 + * sign 签名规则
  82 + * @return
  83 + */
  84 + @FormUrlEncoded
  85 + @POST("Daren/hudong/commentMoment.action")
  86 + Observable<Result<BaseInfo<FriendCommentState>>> commentMoment(@FieldMap() Map<String, String> maps);
  87 +
  88 +}
... ...
lib_network/src/main/java/com/cnlive/strike/data/network/api/ApiServiceIntegra.java 0 → 100644
  1 +package com.cnlive.strike.data.network.api;
  2 +
  3 +import com.cnlive.strike.data.network.model.AddIntegration;
  4 +import com.cnlive.strike.data.network.model.BaseInfo;
  5 +import com.cnlive.strike.data.network.model.CheckinData;
  6 +import com.cnlive.strike.data.network.model.IntegraContentData;
  7 +import com.cnlive.strike.data.network.model.IntegraData;
  8 +
  9 +import java.util.Map;
  10 +
  11 +import io.reactivex.Observable;
  12 +import retrofit2.adapter.rxjava2.Result;
  13 +import retrofit2.http.GET;
  14 +import retrofit2.http.POST;
  15 +import retrofit2.http.QueryMap;
  16 +
  17 +public interface ApiServiceIntegra {
  18 + /**
  19 + * 积分任务列表
  20 + */
  21 + @GET("Daren/integral/getTasks.action")
  22 + Observable<Result<BaseInfo<IntegraData>>> getIntegraList(@QueryMap() Map<String, String> map);
  23 +
  24 + /**
  25 + * 积分明细
  26 + */
  27 + @GET("Daren/integral/integralRecord.action")
  28 + Observable<Result<BaseInfo<IntegraContentData>>> getIntegraContentList(@QueryMap() Map<String, String> map);
  29 +
  30 + /**
  31 + * 签到
  32 + */
  33 + @POST("Daren/integral/checkIn.action")
  34 + Observable<Result<BaseInfo<CheckinData>>> getCheckIn(@QueryMap() Map<String, String> map);
  35 +
  36 + /**
  37 + * 增加积分
  38 + */
  39 + @POST("Daren/integral/addTask.action")
  40 + Observable<Result<BaseInfo<AddIntegration.DataBean>>> addIntegration(@QueryMap() Map<String, String> map);
  41 +
  42 +}
... ...
lib_network/src/main/java/com/cnlive/strike/data/network/api/ApiServiceMember.java 0 → 100644
  1 +package com.cnlive.strike.data.network.api;
  2 +
  3 +
  4 +import com.cnlive.strike.data.network.model.BalanceDetailsInfo;
  5 +import com.cnlive.strike.data.network.model.BalanceInfo;
  6 +import com.cnlive.strike.data.network.model.BaseInfo;
  7 +import com.cnlive.strike.data.network.model.DarenInfo;
  8 +import com.cnlive.strike.data.network.model.EncryptKey;
  9 +import com.cnlive.strike.data.network.model.GroupBalanceInfo;
  10 +import com.cnlive.strike.data.network.model.RecordSourceMsgData;
  11 +import com.cnlive.strike.data.network.model.ViewTransferRecordData;
  12 +
  13 +import java.util.Map;
  14 +
  15 +import io.reactivex.Observable;
  16 +import retrofit2.adapter.rxjava2.Result;
  17 +import retrofit2.http.POST;
  18 +import retrofit2.http.QueryMap;
  19 +
  20 +/**
  21 + * 作者: 吴奎庆
  22 + * <p>
  23 + * 时间: 2018/5/9
  24 + * <p>
  25 + * 简介:
  26 + */
  27 +
  28 +public interface ApiServiceMember {
  29 +
  30 + /**
  31 + * 余额
  32 + *
  33 + * @param maps
  34 + * @return
  35 + */
  36 + @POST("Daren/member/getBalance.action")
  37 + Observable<Result<BaseInfo<BalanceInfo>>> getBalance(@QueryMap() Map<String, String> maps);
  38 +
  39 + /**
  40 + * 检查达人审核状态
  41 + */
  42 + @POST("Daren/member/checkDaren.action")
  43 + Observable<Result<DarenInfo>> checkDaren(@QueryMap() Map<String, String> maps);
  44 +
  45 +
  46 + /**
  47 + * 获取余额的消费明细
  48 + */
  49 + @POST("Daren/transaction/getTransactionRecord.action")
  50 + Observable<Result<BaseInfo<BalanceDetailsInfo>>> getBalanceDetails(@QueryMap() Map<String, String> maps);
  51 +
  52 +
  53 + /**
  54 + * 设置修改支付密码
  55 + *
  56 + * @param map
  57 + * @return
  58 + */
  59 + @POST("Daren/wjjPay/setPassword.action")
  60 + Observable<Result<BaseInfo>> setPassword(@QueryMap() Map<String, String> map);
  61 +
  62 + /**
  63 + * 密码受否存在 顺带返回余额
  64 + *
  65 + * @param map
  66 + * @return
  67 + */
  68 + @POST("Daren/wjjPay/passwordIsExisting.action")
  69 + Observable<Result<BaseInfo<GroupBalanceInfo>>> passwordIsExisting(@QueryMap() Map<String, String> map);
  70 +
  71 +
  72 + /**
  73 + * 交易记录详情
  74 + *
  75 + * @param map
  76 + * @return
  77 + */
  78 + @POST("Daren/transaction/getRecordSourceDetail.action")
  79 + Observable<Result<BaseInfo<RecordSourceMsgData>>> getRecordSourceMsg(@QueryMap() Map<String, String> map);
  80 +
  81 + /**
  82 + * 查看与某一个商户的交易记录
  83 + */
  84 + @POST("Daren/groupManagement/viewTransferRecord.action")
  85 + Observable<Result<BaseInfo<ViewTransferRecordData>>> viewTransferRecord(@QueryMap() Map<String, String> map);
  86 +
  87 + /**
  88 + * 返回公钥&随机AESKey
  89 + * @return
  90 + */
  91 + @POST("Daren/wjjPay/getKey.action")
  92 + Observable<Result<BaseInfo<EncryptKey>>> returnEncryptKey(@QueryMap() Map<String, String> map);
  93 +
  94 +}
... ...
lib_network/src/main/java/com/cnlive/strike/data/network/api/ApiServiceMoment.java 0 → 100644
  1 +package com.cnlive.strike.data.network.api;
  2 +
  3 +
  4 +import com.cnlive.strike.data.network.model.BaseInfo;
  5 +import com.cnlive.strike.data.network.model.CircleData;
  6 +import com.cnlive.strike.data.network.model.FriendCircleNewMessage;
  7 +import com.cnlive.strike.data.network.model.LookUpMyMsgData;
  8 +import com.cnlive.strike.data.network.model.MomentData;
  9 +import com.cnlive.strike.data.network.model.SnowBannerData;
  10 +import com.cnlive.strike.data.network.model.StrangerAccessMomentInfo;
  11 +
  12 +import java.util.List;
  13 +import java.util.Map;
  14 +
  15 +import io.reactivex.Observable;
  16 +import okhttp3.MultipartBody;
  17 +import okhttp3.RequestBody;
  18 +import retrofit2.adapter.rxjava2.Result;
  19 +import retrofit2.http.FieldMap;
  20 +import retrofit2.http.FormUrlEncoded;
  21 +import retrofit2.http.Headers;
  22 +import retrofit2.http.Multipart;
  23 +import retrofit2.http.POST;
  24 +import retrofit2.http.Part;
  25 +import retrofit2.http.PartMap;
  26 +import retrofit2.http.Path;
  27 +import retrofit2.http.QueryMap;
  28 +
  29 +/**
  30 + * 达人有关的接口
  31 + */
  32 +public interface ApiServiceMoment {
  33 +
  34 + /* *//**
  35 + * 上传发布内容
  36 + *//*
  37 + @POST("Daren/moment/releaseMoment.action")
  38 + @Multipart
  39 + Observable<Result<BaseInfo>> releaseMoment(@PartMap Map<String, RequestBody> maps,
  40 + @Part List<MultipartBody.Part> params);
  41 +
  42 + *//**
  43 + * 上传发布内容(图片传七牛)
  44 + *//*
  45 + @POST("Daren/moment/releaseMoment.action")
  46 + Observable<Result<BaseInfo>> releaseMomentNew(@QueryMap Map<String, Object> maps);
  47 +*/
  48 +
  49 + /**
  50 + * 上传发布内容(图片传七牛)
  51 + */
  52 + @POST("{user}")
  53 + Observable<Result<BaseInfo>> releaseMomentNe(@Path(value = "user", encoded = true) String path, @QueryMap Map<String, Object> maps);
  54 +
  55 +
  56 +
  57 +
  58 +
  59 + /**
  60 + * 上传发布内容(不含图片)
  61 + */
  62 + @POST("{user}")
  63 + Observable<Result<BaseInfo>> releaseMomentText(@Path(value = "user", encoded = true) String path, @QueryMap() Map<String, String> maps);
  64 +
  65 + /* *//**
  66 + * 上传目击者发布内容(图片传七牛)
  67 + *//*
  68 + @POST("Daren/witness/releaseWitness.action")
  69 + Observable<Result<BaseInfo>> releaseWitness(@QueryMap Map<String, Object> maps);*/
  70 +
  71 + /**
  72 + * 上传目击者发布内容(图片传七牛)
  73 + */
  74 + @POST("Daren/witness/releaseWitness.action")
  75 + Observable<Result<BaseInfo>> releaseWitnessnew(@QueryMap Map<String, String> maps);
  76 +
  77 + /**
  78 + * 获取生活圈渠道列表
  79 + */
  80 + @POST("Daren/publishType/getPublishTypeList.action")
  81 + Observable<Result<BaseInfo<CircleData>>> releaseCirclePath(@QueryMap() Map<String, String> maps);
  82 +
  83 + /**
  84 + * 冰雪活动上传发布内容
  85 + */
  86 + @POST("Daren/snow/releaseSnow.action")
  87 + @Multipart
  88 + Observable<Result<BaseInfo>> releaseSnow(@PartMap Map<String, RequestBody> maps,
  89 + @Part List<MultipartBody.Part> params);
  90 +
  91 + /**
  92 + * 冰雪活动上传发布内容(图片新接口格式)
  93 + */
  94 + @POST("Daren/snow/releaseSnow.action")
  95 + Observable<Result<BaseInfo>> releaseSnow(@QueryMap() Map<String, Object> maps);
  96 + /**
  97 + * 冰雪活动上传发布内容(图片新接口格式)
  98 + */
  99 + @POST("Daren/snow/releaseSnow.action")
  100 + Observable<Result<BaseInfo>> releaseSnowNew(@QueryMap() Map<String, String> maps);
  101 +
  102 + /**
  103 + * 冰雪活动上传发布内容(不含图片)
  104 + */
  105 + @POST("Daren/snow/getSnowBanner.action")
  106 + Observable<Result<BaseInfo<List<SnowBannerData>>>> getSnowBanner(@QueryMap() Map<String, String> maps);
  107 +
  108 + /**
  109 + * 获取相册内容
  110 + */
  111 + @Headers("cache:5")
  112 + @POST("Daren/moment/myMoment.action")
  113 + Observable<Result<BaseInfo<MomentData>>> myMoment(@QueryMap() Map<String, String> maps);
  114 +
  115 + /**
  116 + * 获取朋友圈内容
  117 + */
  118 + @Headers("cache:5")
  119 + @POST("Daren/moment/friendMoment.action")
  120 + Observable<Result<BaseInfo<MomentData>>> friendMoment(@QueryMap() Map<String, String> maps);
  121 +
  122 + @POST("Daren/moment/deleteMyMoment.action")
  123 + Observable<Result<BaseInfo>> deleteMyMoment(@QueryMap() Map<String, String> maps);
  124 +
  125 + /**
  126 + * 获取新消息列表
  127 + *
  128 + * @param maps sid 用户ID
  129 + * @return
  130 + */
  131 + @POST("Daren/moment/getNewMsgList.action")
  132 + Observable<Result<BaseInfo<List<FriendCircleNewMessage>>>> getNewMsgList(@QueryMap() Map<String, String> maps);
  133 +
  134 +
  135 + @POST("Daren/moment/deleteNewMsg.action")
  136 + Observable<Result<BaseInfo>> deleteNewMsg(@QueryMap() Map<String, String> maps);
  137 +
  138 +
  139 + /**
  140 + * 查看个人中心
  141 + */
  142 + @POST("Daren/moment/lookUpMyMsg.action")
  143 + Observable<Result<BaseInfo<LookUpMyMsgData>>> lookUpMyMsg(@QueryMap() Map<String, String> maps);
  144 +
  145 + /**
  146 + * 点赞
  147 + */
  148 + @POST("Daren/moment/praiseMoment.action")
  149 + Observable<Result<BaseInfo>> praiseMoment(@QueryMap() Map<String, String> maps);
  150 +
  151 + /**
  152 + * 获取朋友圈内容
  153 + * momentId
  154 + */
  155 + @POST("Daren/moment/getMomentDetail.action")
  156 + Observable<Result<BaseInfo<MomentData.FriendItem>>> getMomentDetail(@QueryMap() Map<String, String> maps);
  157 +
  158 + /**
  159 + * 设置陌生人生活圈权限
  160 + */
  161 + @FormUrlEncoded
  162 + @POST("Daren/moment/strangerSwitch.action")
  163 + Observable<Result<BaseInfo>> setStrangerAccessMoment(@FieldMap() Map<String, String> maps);
  164 +
  165 + /**
  166 + * 检查陌生人生活圈权限状态
  167 + */
  168 + @FormUrlEncoded
  169 + @POST("Daren/moment/findStrangerSwitch.action")
  170 + Observable<Result<BaseInfo<StrangerAccessMomentInfo>>> getStrangerAccessMomentStatus(@FieldMap() Map<String, String> maps);
  171 +
  172 +}
  173 +
... ...
lib_network/src/main/java/com/cnlive/strike/data/network/api/ApiServiceOpen.java 0 → 100644
  1 +package com.cnlive.strike.data.network.api;
  2 +
  3 +import com.cnlive.strike.data.network.model.BaseInfo;
  4 +import com.cnlive.strike.data.network.model.CommentListData;
  5 +import com.cnlive.strike.data.network.model.DataEntity;
  6 +import com.cnlive.strike.data.network.model.FaceData;
  7 +import com.cnlive.strike.data.network.model.FriendCommentState;
  8 +import com.cnlive.strike.data.network.model.FriendListData;
  9 +import com.cnlive.strike.data.network.model.InteractiveReadAllCommentData;
  10 +import com.cnlive.strike.data.network.model.LiveActivityPlayInfo;
  11 +import com.cnlive.strike.data.network.model.PlayerVodRates;
  12 +import com.cnlive.strike.data.network.model.StorageInfoData;
  13 +import com.cnlive.strike.data.network.model.TokenData;
  14 +import com.cnlive.strike.data.network.model.UploadAuthData;
  15 +import com.cnlive.strike.data.network.model.UserData;
  16 +import com.cnlive.strike.data.network.model.VideoUploadResult;
  17 +
  18 +import java.util.List;
  19 +import java.util.Map;
  20 +
  21 +import io.reactivex.Observable;
  22 +import okhttp3.MultipartBody;
  23 +import okhttp3.RequestBody;
  24 +import retrofit2.adapter.rxjava2.Result;
  25 +import retrofit2.http.FieldMap;
  26 +import retrofit2.http.FormUrlEncoded;
  27 +import retrofit2.http.GET;
  28 +import retrofit2.http.Multipart;
  29 +import retrofit2.http.POST;
  30 +import retrofit2.http.Part;
  31 +import retrofit2.http.PartMap;
  32 +import retrofit2.http.QueryMap;
  33 +
  34 +/**
  35 + * Created by xiansong on 2018/3/22.
  36 + */
  37 +
  38 +public interface ApiServiceOpen {
  39 +
  40 + /**
  41 + * @param maps appId 应用ID
  42 + * plat i=IOS客户端,a=Android客户端
  43 + * id 主题ID
  44 + * page 页号
  45 + * pageSize 每页显示的条数
  46 + * sign 签名
  47 + * @return
  48 + */
  49 +
  50 + @GET("open/api2/commentServices/services/commentForChat/readAll")
  51 + Observable<Result<BaseInfo<FriendListData>>> readAllComment(@QueryMap() Map<String, String> maps);
  52 +
  53 + /**
  54 + * 删除朋友圈评论
  55 + *
  56 + * @param maps appId 应用ID
  57 + * plat i=IOS客户端,a=Android客户端
  58 + * id 主题ID
  59 + * page 页号
  60 + * pageSize 每页显示的条数
  61 + * sign 签名
  62 + * @return
  63 + */
  64 +
  65 + @POST("open/api2/commentServices/services/commentForChat/delete")
  66 + Observable<Result<BaseInfo>> delete(@QueryMap() Map<String, String> maps);
  67 +
  68 + /**
  69 + * 读取点赞列表
  70 + *
  71 + * @param maps
  72 + * @return
  73 + */
  74 + @POST("open/api2/support/loadSupport")
  75 + Observable<Result<BaseInfo<FriendListData>>> loadSupport(@QueryMap() Map<String, String> maps);
  76 +
  77 +
  78 + /**
  79 + * 读取点赞列表
  80 + *
  81 + * @param maps
  82 + * @return
  83 + */
  84 + @POST("open/api2/support/readAll")
  85 + Observable<Result<BaseInfo<FriendListData>>> readAllLike(@QueryMap() Map<String, String> maps);
  86 +
  87 + /**
  88 + * 短视频入库点播云接口for app
  89 + * 创建短视频信息进行存储
  90 + *
  91 + * @param maps md5 string true MD5
  92 + * appId string true APPID
  93 + * videoKey string true 短视频相对路径(支持金山云存储)
  94 + * name string false 短视频名称
  95 + * description string false 短视频的信息描述
  96 + * isHorizontalScreen int true 屏幕方向,0:垂直即竖屏 /1:水平即横屏 ,默认为1
  97 + * userId string false 短视频的信息用户标识
  98 + * callBackUrl string false 短视频信息回调地址
  99 + * platform_id string true APP bundleID 或者是包名,平台鉴权使用
  100 + * extensions string false 扩展字段,格式
  101 + * timestamp int true 精确到秒,当前Unix时间戳,请保证请求服务器时间正确
  102 + * sign String true 签名规则
  103 + * @return
  104 + */
  105 +
  106 + @POST("open/api2/vod_epg/svInputMamForAPP")
  107 + Observable<Result<BaseInfo<VideoUploadResult>>> svInputMamForAPP(@QueryMap() Map<String, String> maps);
  108 +
  109 + /**
  110 + * 获取点播评论列表
  111 + */
  112 + @POST("open/api2/commentServices/services/commentForChat/loadComment")
  113 + Observable<Result<BaseInfo<FriendListData>>> releaseVideoPath(@QueryMap() Map<String, String> maps);
  114 +
  115 + /**
  116 + * 获取pgc评论列表,此接口不能对某人回复的
  117 + */
  118 + @GET("open/api2/commentServices/services/commentForHdBySpId/loadComment")
  119 + Observable<Result<BaseInfo<CommentListData>>> getAllComments(@QueryMap() Map<String, String> maps);
  120 +
  121 + /**
  122 + * 评论点播节目
  123 + *
  124 + * @param map
  125 + * @return
  126 + */
  127 + @POST("open/api2/commentServices/services/commentForChat/insert")
  128 + Observable<Result<BaseInfo<FriendCommentState>>> sendVideoComment(@QueryMap Map<String, String> map);
  129 +
  130 + /**
  131 + * 删除评论
  132 + *
  133 + * @param map
  134 + * @return
  135 + */
  136 + @POST("open/api2/commentServices/services/commentForChat/delete")
  137 + Observable<Result<BaseInfo>> deleteVideoComment(@QueryMap Map<String, String> map);
  138 +
  139 + /**
  140 + * 读取点赞列表
  141 + *
  142 + * @param maps
  143 + * @return
  144 + */
  145 + @POST("open/api2/user/readUserById")
  146 + Observable<Result<BaseInfo<DataEntity>>> readUserById(@QueryMap() Map<String, String> maps);
  147 +
  148 + /**
  149 + * 上传鉴权
  150 + *
  151 + * @param maps
  152 + * @return
  153 + */
  154 + @POST("open/api2/vod_epg/getUploadAuthForApp")
  155 + Observable<Result<BaseInfo<UploadAuthData>>> getUploadAuthForApp(@QueryMap Map<String, String> maps);
  156 +
  157 + /**
  158 + * 获取存储信息
  159 + *
  160 + * @param map
  161 + * @return
  162 + */
  163 + @POST("open/api2/storage/getStorageInfo")
  164 + Observable<Result<BaseInfo<List<StorageInfoData>>>> getStorageInfo(@QueryMap Map<String, String> map);
  165 +
  166 + /**
  167 + * 获取直播活动播放信息
  168 + *
  169 + * @param map activityId string true 由开发者通过API创建接口或者在直播云管理端创建,保证唯一性
  170 + */
  171 + @FormUrlEncoded
  172 + @POST("open/api2/live_epg/getLiveActivityPlayInfo4App")
  173 + Observable<Result<BaseInfo<LiveActivityPlayInfo>>> getLiveActivityPlayInfo(@FieldMap Map<String, String> map);
  174 +
  175 + /**
  176 + * 互动云获取一条节目的评论列表
  177 + *
  178 + * @param map
  179 + * @return
  180 + */
  181 + @POST("open/api2/commentServices/commentForHdBySpId/readAllComment")
  182 + Observable<Result<BaseInfo<InteractiveReadAllCommentData>>> interactiveReadAllComment(@QueryMap Map<String, String> map);
  183 +
  184 + /**
  185 + * 评论一条节目
  186 + *
  187 + * @param map
  188 + * @return
  189 + */
  190 + @POST("open/api2/commentServices/commentForHdBySpId/insertComment")
  191 + Observable<Result<BaseInfo<FriendCommentState>>> insertComment(@QueryMap Map<String, String> map);
  192 +
  193 + /**
  194 + * 顶踩一条节目 0:踩 1:顶
  195 + *
  196 + * @param map
  197 + * @return
  198 + */
  199 + @POST("open/api2/ctServices/supportForHd/support")
  200 + Observable<Result<BaseInfo>> support(@QueryMap Map<String, String> map);
  201 +
  202 +
  203 + /**
  204 + * 快捷登录前发送验证码
  205 + *
  206 + * @param map
  207 + * @return
  208 + */
  209 + @POST("open/api2/user/sendVerifyCode")
  210 + Observable<Result<BaseInfo>> sendVerifyCodeBefQuickLogin(@QueryMap Map<String, String> map);
  211 +
  212 + /**
  213 + * 快捷登录
  214 + *
  215 + * @param map
  216 + * @return
  217 + */
  218 + @POST("open/api2/user/loginInQuickly")
  219 + Observable<Result<BaseInfo<UserData>>> quickLogin(@QueryMap Map<String, String> map);
  220 +
  221 + /**
  222 + * 登录
  223 + *
  224 + * @param map
  225 + * @return
  226 + */
  227 + @POST("open/api2/user/loginIn")
  228 + Observable<Result<BaseInfo<UserData>>> login(@QueryMap Map<String, String> map);
  229 +
  230 + /**
  231 + * 查询用户信息
  232 + *
  233 + * @param map
  234 + * @return
  235 + */
  236 + @POST("open/api2/user/readUserById")
  237 + Observable<Result<BaseInfo<UserData>>> queryUserInfo(@QueryMap Map<String, String> map);
  238 +
  239 + /**
  240 + * 更新用户附加信息
  241 + *
  242 + * @param map
  243 + * @return
  244 + */
  245 + @POST("open/api2/user/updateUserExtInfo")
  246 + Observable<Result<BaseInfo>> updateUserExtInfo(@QueryMap Map<String, String> map);
  247 +
  248 + /**
  249 + * 修改用户单项信息
  250 + *
  251 + * @param map
  252 + * @return
  253 + */
  254 + @POST("open/api2/user/updateUserById")
  255 + Observable<Result<BaseInfo>> modifyUserInfo(@QueryMap Map<String, String> map);
  256 +
  257 +
  258 + /**
  259 + * 注册或修改手机号前发手机验证码
  260 + *
  261 + * @param map
  262 + * @return
  263 + */
  264 + @POST("open/api2/user/sendVerifyCodeForUnRegistered")
  265 + Observable<Result<BaseInfo>> sendVerifyCodeForUnRegistered(@QueryMap Map<String, String> map);
  266 +
  267 + /**
  268 + * 更新手机号
  269 + *
  270 + * @param map
  271 + * @return
  272 + */
  273 + @POST("open/api2/user/updateMobileById")
  274 + Observable<Result<BaseInfo>> updateMobile(@QueryMap Map<String, String> map);
  275 +
  276 + /**
  277 + * 注册
  278 + *
  279 + * @param map
  280 + * @return
  281 + */
  282 + @POST("open/api2/user/register")
  283 + Observable<Result<BaseInfo<UserData>>> register(@QueryMap Map<String, String> map);
  284 +
  285 +
  286 + /**
  287 + * 获取access_token
  288 + *
  289 + * @param map
  290 + * @return
  291 + */
  292 + @POST("open/api2/token")
  293 + Observable<Result<BaseInfo<TokenData>>> accessToken(@QueryMap Map<String, String> map);
  294 +
  295 + /**
  296 + * 上传头像
  297 + *
  298 + * @param map
  299 + * @param params
  300 + * @return
  301 + */
  302 + @Multipart
  303 + @POST("open/api2/user/updateUserFaceById")
  304 + Observable<Result<BaseInfo<FaceData>>> updateUserFace(@PartMap Map<String, RequestBody> map,
  305 + @Part List<MultipartBody.Part> params);
  306 +
  307 + /**
  308 + * 获取点播云视频的码率
  309 + *
  310 + * @param map
  311 + * @return
  312 + */
  313 + @GET("open/api2/vod_epg/getRates")
  314 + Observable<Result<BaseInfo<PlayerVodRates>>> getRates(@QueryMap Map<String, String> map);
  315 +}
... ...
lib_network/src/main/java/com/cnlive/strike/data/network/api/ApiServiceOrder.java 0 → 100644
  1 +package com.cnlive.strike.data.network.api;
  2 +
  3 +import com.cnlive.strike.data.network.model.BaseInfo;
  4 +import com.cnlive.strike.data.network.model.GetOrderByStatusData;
  5 +import com.cnlive.strike.data.network.model.OrderInfoData;
  6 +
  7 +import java.util.List;
  8 +import java.util.Map;
  9 +
  10 +import io.reactivex.Observable;
  11 +import okhttp3.MultipartBody;
  12 +import okhttp3.RequestBody;
  13 +import retrofit2.adapter.rxjava2.Result;
  14 +import retrofit2.http.FieldMap;
  15 +import retrofit2.http.FormUrlEncoded;
  16 +import retrofit2.http.Multipart;
  17 +import retrofit2.http.POST;
  18 +import retrofit2.http.Part;
  19 +import retrofit2.http.PartMap;
  20 +import retrofit2.http.QueryMap;
  21 +
  22 +/**
  23 + * Created by gujun on 2018/2/6.
  24 + */
  25 +
  26 +public interface ApiServiceOrder {
  27 +
  28 + /**
  29 + * 获取订单信息(更新)
  30 + *
  31 + * @param maps
  32 + * @return
  33 + */
  34 + @FormUrlEncoded
  35 + @POST("Daren/order/getOrderItem.action")
  36 + Observable<Result<BaseInfo<OrderInfoData>>> getOrderItem(@FieldMap Map<String, String> maps);
  37 +
  38 + /**
  39 + * 生成订单
  40 + *
  41 + * @param maps
  42 + * @return
  43 + */
  44 + @POST("Daren/order/createOrder.action")
  45 + Observable<Result<BaseInfo<OrderInfoData>>> createOrder(@QueryMap Map<String, String> maps);
  46 +
  47 + /**
  48 + * 修改订单
  49 + *
  50 + * @param maps
  51 + * @return
  52 + */
  53 + @POST("Daren/order/modifyOrder.action")
  54 + Observable<Result<BaseInfo<OrderInfoData>>> modifyOrder(@QueryMap Map<String, String> maps);
  55 +
  56 + /**
  57 + * 确认订单
  58 + *
  59 + * @param maps
  60 + * @return
  61 + */
  62 + @FormUrlEncoded
  63 + @POST("Daren/order/submitOrder.action")
  64 + Observable<Result<BaseInfo<OrderInfoData>>> confirmOrder(@FieldMap Map<String, String> maps);
  65 +
  66 + /**
  67 + * 取消订单
  68 + *
  69 + * @param maps
  70 + * @return
  71 + */
  72 + @FormUrlEncoded
  73 + @POST("Daren/order/cancelOrder.action")
  74 + Observable<Result<BaseInfo<OrderInfoData>>> cancelOrder(@FieldMap Map<String, String> maps);
  75 +
  76 + /**
  77 + * 订单有误操作
  78 + *
  79 + * @param maps
  80 + * @return
  81 + */
  82 + @FormUrlEncoded
  83 + @POST("Daren/order/correctOrder.action")
  84 + Observable<Result<BaseInfo<OrderInfoData>>> correctOrder(@FieldMap Map<String, String> maps);
  85 +
  86 + /**
  87 + * 根据状态查询订单列表
  88 + *
  89 + * @param maps
  90 + * @return
  91 + */
  92 + @FormUrlEncoded
  93 + @POST("Daren/order/getOrdersByStatus.action")
  94 + Observable<Result<BaseInfo<GetOrderByStatusData>>> getOrdersByStatus(@FieldMap Map<String, String> maps);
  95 +
  96 + /**
  97 + * 申请退款
  98 + */
  99 + @POST("Daren/order/applyRefund.action")
  100 + @Multipart
  101 + Observable<Result<BaseInfo>> applyRefund(@PartMap Map<String, RequestBody> maps,
  102 + @Part List<MultipartBody.Part> params);
  103 +
  104 + /**
  105 + * 申请退款(不含图片)
  106 + */
  107 + @POST("Daren/order/applyRefund.action")
  108 + @Multipart
  109 + Observable<Result<BaseInfo>> applyRefund(@PartMap() Map<String, RequestBody> maps);
  110 +
  111 + /**
  112 + * 确认收货
  113 + *
  114 + * @param maps
  115 + * @return
  116 + */
  117 + @FormUrlEncoded
  118 + @POST("Daren/order/confirmRecv.action")
  119 + Observable<Result<BaseInfo<Object>>> confirmRecv(@FieldMap Map<String, String> maps);
  120 +
  121 + /**
  122 + * 删除订单
  123 + *
  124 + * @param maps
  125 + * @return
  126 + */
  127 + @POST("Daren/order/deleteOrder.action")
  128 + Observable<Result<BaseInfo<Object>>> deleteOrder(@QueryMap() Map<String, String> maps);
  129 +
  130 +}
... ...
lib_network/src/main/java/com/cnlive/strike/data/network/api/ApiServiceQrcode.java 0 → 100644
  1 +package com.cnlive.strike.data.network.api;
  2 +
  3 +import com.cnlive.strike.data.network.model.BaseInfo;
  4 +import com.cnlive.strike.data.network.model.CheckQrUrlInfo;
  5 +import com.cnlive.strike.data.network.model.CottonCandyInfo;
  6 +import com.cnlive.strike.data.network.model.CreateQrInfo;
  7 +import com.cnlive.strike.data.network.model.DarenInfoModel;
  8 +import com.cnlive.strike.data.network.model.QrActivityInfo;
  9 +import com.cnlive.strike.data.network.model.QrOrderInfo;
  10 +import com.cnlive.strike.data.network.model.QrSignInfo;
  11 +
  12 +import java.util.Map;
  13 +
  14 +import io.reactivex.Observable;
  15 +import retrofit2.adapter.rxjava2.Result;
  16 +import retrofit2.http.FieldMap;
  17 +import retrofit2.http.FormUrlEncoded;
  18 +import retrofit2.http.POST;
  19 +import retrofit2.http.QueryMap;
  20 +
  21 +public interface ApiServiceQrcode {
  22 + /**
  23 + * 获取生成二维码的数据
  24 + * @param map
  25 + * @return
  26 + * appId
  27 + * sid
  28 + * type 生成或充值二维码 生成:gen 重置:reset
  29 + */
  30 + @POST("Daren/qrcode/genOrResetQrCode.action")
  31 + Observable<Result<BaseInfo<CreateQrInfo>>> getQrContent(@QueryMap() Map<String, String> map);
  32 +
  33 +
  34 + @POST("Daren/qrcode/checkQrCode.action")
  35 + Observable<Result<BaseInfo<CreateQrInfo>>> checkQr(@QueryMap() Map<String, String> map);
  36 +
  37 + /**
  38 + * 获取达人信息
  39 + *
  40 + * @param param
  41 + * @return
  42 + */
  43 + @POST("Daren/member/getDarenById.action")
  44 + Observable<Result<BaseInfo<DarenInfoModel>>> getDarenBySid(@QueryMap Map<String, String> param);
  45 +
  46 + /**
  47 + * 获取达人信息
  48 + *
  49 + * @param param
  50 + * @return
  51 + */
  52 + @FormUrlEncoded
  53 + @POST("Daren/order/addOrder.action")
  54 + Observable<Result<BaseInfo<QrOrderInfo>>> getQrOrder(@FieldMap Map<String, String> param);
  55 + /**
  56 + * 扫码签到(临时)
  57 + *
  58 + * @param param
  59 + * @return
  60 + */
  61 + @POST("Daren/sign/checkSignInfo.action")
  62 + Observable<Result<BaseInfo<QrSignInfo>>> checkSignInfo(@QueryMap Map<String, String> param);
  63 +
  64 + /**
  65 + * 扫码活动(临时)
  66 + * @param param
  67 + * @return
  68 + */
  69 + @POST("Daren/sign/checkQrActivity.action")
  70 + Observable<Result<BaseInfo<QrActivityInfo>>> checkQrActivity(@QueryMap Map<String, String> param);
  71 +
  72 + /**
  73 + * 校验二维码数据
  74 + * @param param
  75 + * @return
  76 + */
  77 + @POST("Daren/qrcode/checkQrCodeUrl.action")
  78 + Observable<Result<BaseInfo<CheckQrUrlInfo>>> checkQrUrl(@QueryMap Map<String, String> param);
  79 +
  80 +
  81 + /**
  82 + * 生成棉花糖订单信息
  83 + * @param param
  84 + * @return
  85 + */
  86 +
  87 + @POST("Daren/order/addOrderMHT.action")
  88 + Observable<Result<BaseInfo<CottonCandyInfo>>> getCottonCandy(@QueryMap Map<String, String> param);
  89 +
  90 +}
... ...
lib_network/src/main/java/com/cnlive/strike/data/network/api/ApiServiceReply.java 0 → 100644
  1 +package com.cnlive.strike.data.network.api;
  2 +
  3 +
  4 +import com.cnlive.strike.data.network.model.BaseInfo;
  5 +import com.cnlive.strike.data.network.model.QuickShortMessageData;
  6 +
  7 +import java.util.ArrayList;
  8 +import java.util.Map;
  9 +
  10 +import io.reactivex.Observable;
  11 +import retrofit2.adapter.rxjava2.Result;
  12 +import retrofit2.http.FieldMap;
  13 +import retrofit2.http.FormUrlEncoded;
  14 +import retrofit2.http.POST;
  15 +import retrofit2.http.QueryMap;
  16 +
  17 +/**
  18 + * 达人快捷短语有关的接口
  19 + */
  20 +public interface ApiServiceReply {
  21 +
  22 + /**
  23 + * 更新快捷短语
  24 + *
  25 + * @param maps
  26 + * @return
  27 + */
  28 + @FormUrlEncoded
  29 + @POST("Daren/reply/updateQuickReply.action")
  30 + Observable<Result<BaseInfo<Object>>> updateQuickReply(@FieldMap Map<String, String> maps);
  31 +
  32 + /**
  33 + * 读取快捷短语列表
  34 + *
  35 + * @param maps
  36 + * @return
  37 + */
  38 + @POST("Daren/reply/readQuickReply.action")
  39 + Observable<Result<BaseInfo<ArrayList<QuickShortMessageData>>>> readQuickReply(@QueryMap() Map<String, String> maps);
  40 +
  41 + /**
  42 + * 添加一条快捷短语
  43 + *
  44 + * @param maps
  45 + * @return
  46 + */
  47 + @FormUrlEncoded
  48 + @POST("Daren/reply/addQuickReply.action")
  49 + Observable<Result<BaseInfo<Object>>> addQuickReply(@FieldMap Map<String, String> maps);
  50 +
  51 + /**
  52 + * 删除某一条快捷短语
  53 + *
  54 + * @param maps
  55 + * @return
  56 + */
  57 + @POST("Daren/reply/deleteQuickReply.action")
  58 + Observable<Result<BaseInfo<Object>>> deleteQuickReply(@QueryMap() Map<String, String> maps);
  59 +
  60 +}
  61 +
... ...
lib_network/src/main/java/com/cnlive/strike/data/network/api/ApiServiceSms.java 0 → 100644
  1 +package com.cnlive.strike.data.network.api;
  2 +
  3 +import com.cnlive.strike.data.network.model.BaseInfo;
  4 +
  5 +import java.util.Map;
  6 +
  7 +import io.reactivex.Observable;
  8 +import retrofit2.adapter.rxjava2.Result;
  9 +import retrofit2.http.POST;
  10 +import retrofit2.http.QueryMap;
  11 +
  12 +/**
  13 + * Created by Lynn on 2018/6/7.
  14 + */
  15 +
  16 +public interface ApiServiceSms {
  17 +
  18 +
  19 + /**
  20 + * 发送验证码(修改支付密码)
  21 + */
  22 + @POST("Daren/sms/sendSMS.action")
  23 + Observable<Result<BaseInfo>> sendSms(@QueryMap Map<String, String> map);
  24 +
  25 + /**
  26 + * 验证验证码(修改支付密码)
  27 + *
  28 + * @param map
  29 + * @return
  30 + */
  31 + @POST("Daren/sms/checkVerifyCode.action")
  32 + Observable<Result<BaseInfo>> checkVerifyCode(@QueryMap Map<String, String> map);
  33 +}
... ...
lib_network/src/main/java/com/cnlive/strike/data/network/api/ApiServiceStock.java 0 → 100644
  1 +package com.cnlive.strike.data.network.api;
  2 +
  3 +import com.cnlive.strike.data.network.model.BaseInfo;
  4 +import com.cnlive.strike.data.network.model.CollectionData;
  5 +
  6 +import java.util.Map;
  7 +
  8 +import io.reactivex.Observable;
  9 +import retrofit2.adapter.rxjava2.Result;
  10 +import retrofit2.http.POST;
  11 +import retrofit2.http.QueryMap;
  12 +
  13 +public interface ApiServiceStock {
  14 +
  15 + /**
  16 + * 收藏接口
  17 + *
  18 + * @return
  19 + */
  20 + @POST("Daren/stock/collection.action")
  21 + Observable<Result<BaseInfo>> collection(@QueryMap() Map<String, String> map);
  22 +
  23 +
  24 + /**
  25 + * 获取收藏的 列表
  26 + *
  27 + * @param map
  28 + * @return
  29 + */
  30 + @POST("Daren/stock/getCollectionList.action")
  31 + Observable<Result<BaseInfo<CollectionData>>> getCollection(@QueryMap() Map<String, String> map);
  32 +
  33 + /**
  34 + * 取消收藏
  35 + *
  36 + * @param map
  37 + * @return
  38 + */
  39 + @POST("Daren/stock/deleteCollection.action")
  40 + Observable<Result<BaseInfo<BaseInfo>>> cancleCollection(@QueryMap() Map<String, String> map);
  41 +
  42 +
  43 +}
... ...
lib_network/src/main/java/com/cnlive/strike/data/network/api/ApiServiceSub.java 0 → 100644
  1 +package com.cnlive.strike.data.network.api;
  2 +
  3 +
  4 +import com.cnlive.strike.data.network.model.BaseInfo;
  5 +import com.cnlive.strike.data.network.model.GetDarenHomeData;
  6 +import com.cnlive.strike.data.network.model.GetDarensData;
  7 +import com.cnlive.strike.data.network.model.GroupNotificationListData;
  8 +import com.cnlive.strike.data.network.model.SearchDarenData;
  9 +import com.cnlive.strike.data.network.model.SysNumberSubsData;
  10 +import com.cnlive.strike.data.network.model.SystemNotificationListData;
  11 +
  12 +import java.util.List;
  13 +import java.util.Map;
  14 +
  15 +import io.reactivex.Observable;
  16 +import retrofit2.adapter.rxjava2.Result;
  17 +import retrofit2.http.FieldMap;
  18 +import retrofit2.http.FormUrlEncoded;
  19 +import retrofit2.http.Headers;
  20 +import retrofit2.http.POST;
  21 +import retrofit2.http.QueryMap;
  22 +
  23 +/**
  24 + * 达人有关的接口
  25 + */
  26 +public interface ApiServiceSub {
  27 +
  28 + /**
  29 + * 获取达人号列表接口
  30 + *
  31 + * @param maps
  32 + * @return
  33 + */
  34 + @Headers("cache:2")
  35 + @POST("Daren/sub/getDarenSubs.action")
  36 + Observable<Result<BaseInfo<List<SysNumberSubsData>>>> getDarenSubs(@QueryMap() Map<String, String> maps);
  37 +
  38 + /**
  39 + * 获取生活号列表接口
  40 + *
  41 + * @param maps
  42 + * @return
  43 + */
  44 + @POST("Daren/sub/getLifeSubs.action")
  45 + Observable<Result<BaseInfo<List<SysNumberSubsData>>>> getLifeSubs(@QueryMap() Map<String, String> maps);
  46 +
  47 + /**
  48 + * 获取关注列表接口
  49 + *
  50 + * @param maps
  51 + * @return
  52 + */
  53 + @POST("Daren/sub/getDarens.action")
  54 + Observable<Result<BaseInfo<GetDarensData>>> getDarens(@QueryMap() Map<String, String> maps);
  55 +
  56 + /**
  57 + * 获取未关注列表接口
  58 + *
  59 + * @param maps
  60 + * @return
  61 + */
  62 + @POST("Daren/classify/getUnFansOrDarenBean.action")
  63 + Observable<Result<BaseInfo<GetDarensData>>> getUnFollowDarens(@QueryMap() Map<String, String> maps);
  64 +
  65 + /**
  66 + * 获取关注列表接口(分类页面)
  67 + *
  68 + * @param maps
  69 + * @return
  70 + */
  71 + @POST("Daren/classify/getDarenList.action")
  72 + Observable<Result<BaseInfo<GetDarensData>>> getDarenList(@QueryMap() Map<String, String> maps);
  73 +
  74 + /**
  75 + * 分类页面--搜索
  76 + *
  77 + * @param maps
  78 + * @return
  79 + */
  80 + @FormUrlEncoded
  81 + @POST("Daren/search/searchDaren.action")
  82 + Observable<Result<BaseInfo<List<SearchDarenData>>>> searchDaren(@FieldMap() Map<String, String> maps);
  83 +
  84 + @Headers("cache:5")
  85 + @POST("Daren/sub/getFans.action")
  86 + Observable<Result<BaseInfo<GetDarensData>>> getFans(@QueryMap() Map<String, String> map);
  87 +
  88 + @Headers("cache:5")
  89 + @POST("Daren/sub/getDarenHome.action")
  90 + Observable<Result<BaseInfo<GetDarenHomeData>>> getDarenHome(@QueryMap() Map<String, String> maps);
  91 +
  92 + /**
  93 + * 获取系统通知列表或订单通知列表
  94 + *
  95 + * @param maps
  96 + * @return
  97 + */
  98 + @POST("Daren/sub/getLifeHome.action")
  99 + Observable<Result<BaseInfo<SystemNotificationListData>>> getLifeSystemHome(@QueryMap() Map<String, String> maps);
  100 +
  101 + /**
  102 + * 关注
  103 + *
  104 + * @param map appId 应用Id
  105 + * sid 用户Id
  106 + * darenIds 达人Id,多个用逗号分隔
  107 + * @return
  108 + */
  109 + @POST("Daren/sub/addDarenSub.action")
  110 + Observable<Result<BaseInfo>> addDaren(@QueryMap() Map<String, String> map);
  111 +
  112 +
  113 + /**
  114 + * 取消关注
  115 + *
  116 + * @param map appId 应用Id
  117 + * sid 用户Id
  118 + * darenIds 达人Id,多个用逗号分隔
  119 + * @return
  120 + */
  121 + @POST("Daren/sub/cancelDarenSub.action")
  122 + Observable<Result<BaseInfo>> cancelDaren(@QueryMap() Map<String, String> map);
  123 +
  124 + @POST("Daren/sub/deleteFriend.action")
  125 + Observable<Result<BaseInfo>> deleteFriend(@QueryMap() Map<String, String> maps);
  126 +
  127 + /**
  128 + * 从达人号列表删除某达人
  129 + *
  130 + * @return
  131 + */
  132 + @POST("Daren/sub/deleteDarenSubs.action")
  133 + Observable<Result<BaseInfo>> deleteDarenSubs(@QueryMap() Map<String, String> map);
  134 +
  135 + /**
  136 + * 删除生活号列表中的订单通知和系统通知的item
  137 + *
  138 + * @return
  139 + */
  140 + @POST("Daren/sub/deleteLifeSubs.action")
  141 + Observable<Result<BaseInfo>> deleteLifeSubs(@QueryMap() Map<String, String> map);
  142 +
  143 + /**
  144 + * 获取通知号的列表数据
  145 + *
  146 + * @return
  147 + */
  148 + @POST("Daren/sub/getNoticeSubs.action")
  149 + Observable<Result<BaseInfo<GroupNotificationListData>>> getNoticeSubs(@QueryMap() Map<String, String> map);
  150 +
  151 + /**
  152 + * 从群组通知列表删除某条通知
  153 + *
  154 + * @return
  155 + */
  156 + @POST("Daren/sub/deleteNotice.action")
  157 + Observable<Result<BaseInfo>> deleteNotice(@QueryMap() Map<String, String> map);
  158 +
  159 +}
  160 +
... ...
lib_network/src/main/java/com/cnlive/strike/data/network/api/ApiSubscriber.java 0 → 100644
  1 +package com.cnlive.strike.data.network.api;
  2 +
  3 +
  4 +import com.cnlive.libs.data.network.Subscriber;
  5 +
  6 +/**
  7 + * Created by xiansong on 2017/9/8.
  8 + */
  9 +
  10 +public class ApiSubscriber {
  11 +
  12 + private static final String success_code = "0";
  13 + private static final String success_message = "数据加载成功";
  14 +
  15 + public static final Subscriber.Config subscriberBuild = Subscriber.newConfig()
  16 + .putInfo(Subscriber.Config.response_success, success_code, success_message) ;
  17 +
  18 + public static String getSuccessCode(){
  19 + return success_code;
  20 + }
  21 +}
... ...
lib_network/src/main/java/com/cnlive/strike/data/network/model/ActivityRecordDetailsInfo.java 0 → 100644
  1 +package com.cnlive.strike.data.network.model;
  2 +
  3 +import java.util.List;
  4 +
  5 +/**
  6 + * 作者: 吴奎庆
  7 + * <p>
  8 + * 时间: 2018/5/29
  9 + * <p>
  10 + * 简介:
  11 + */
  12 +
  13 +public class ActivityRecordDetailsInfo {
  14 +
  15 +
  16 + /**
  17 + * createTime : 2018-05-29 13:42:15
  18 + * description :
  19 + * endTime : 2018-05-29 15:40:00
  20 + * fundsId : 68f31cc1e5ec4dd793297facd72358af
  21 + * groupId : @TGS#1CEBXTHFD
  22 + * ownerMsg : {"image":"http://cnlive-yweb.ks3-cn-beijing.ksyun.com/images/headImg/2018/0504/1525422551146_small.jpg","nickName":"牛道健","userId":"10505015"}
  23 + * groupMembers : [{"payTime":"","type":false,"user":{"image":"http://cnlive-yweb.ks3-cn-beijing.ksyun.com/images/headImg/2018/0513/1526178128533_small.jpg","nickName":"张旭","userId":"10499533"}},{"payTime":"","type":false,"user":{"image":"http://cnlive-yweb.ks3-cn-beijing.ksyun.com/images/headImg/2018/0417/1523951343993_small.jpg","nickName":"写bug的程序猿","userId":"10458139"}},{"payTime":"","type":false,"user":{"image":"http://cnlive-yweb.ks3-cn-beijing.ksyun.com/images/headImg/2018/0504/1525422551146_small.jpg","nickName":"牛道健","userId":"10505015"}},{"payTime":"","type":false,"user":{"image":"http://cnlive-yweb.ks3-cn-beijing.ksyun.com/images/headImg/2018/0511/1526003358652_small.jpg","nickName":"牛道健","userId":"10504908"}}]
  24 + * payList : [{"payTime":"","type":false,"user":{"image":"http://cnlive-yweb.ks3-cn-beijing.ksyun.com/images/headImg/2018/0513/1526178128533_small.jpg","nickName":"张旭","userId":"10499533"}}]
  25 + * price : 0.1
  26 + * type : 1
  27 + */
  28 +
  29 + private String createTime;
  30 +
  31 + public String getTotalPrice() {
  32 + return totalPrice;
  33 + }
  34 +
  35 + public void setTotalPrice(String totalPrice) {
  36 + this.totalPrice = totalPrice;
  37 + }
  38 +
  39 + private String totalPrice;
  40 + private String description;
  41 + private String endTime;
  42 + private String fundsId;
  43 + private String groupId;
  44 + private OwnerMsgBean ownerMsg;
  45 + private double price;
  46 + private int type;
  47 + private List<GroupMembersBean> groupMembers;
  48 + private List<GroupMembersBean> payList;
  49 +
  50 + public String getCreateTime() {
  51 + return createTime;
  52 + }
  53 +
  54 + public void setCreateTime(String createTime) {
  55 + this.createTime = createTime;
  56 + }
  57 +
  58 + public String getDescription() {
  59 + return description;
  60 + }
  61 +
  62 + public void setDescription(String description) {
  63 + this.description = description;
  64 + }
  65 +
  66 + public String getEndTime() {
  67 + return endTime;
  68 + }
  69 +
  70 + public void setEndTime(String endTime) {
  71 + this.endTime = endTime;
  72 + }
  73 +
  74 + public String getFundsId() {
  75 + return fundsId;
  76 + }
  77 +
  78 + public void setFundsId(String fundsId) {
  79 + this.fundsId = fundsId;
  80 + }
  81 +
  82 + public String getGroupId() {
  83 + return groupId;
  84 + }
  85 +
  86 + public void setGroupId(String groupId) {
  87 + this.groupId = groupId;
  88 + }
  89 +
  90 + public OwnerMsgBean getOwnerMsg() {
  91 + return ownerMsg;
  92 + }
  93 +
  94 + public void setOwnerMsg(OwnerMsgBean ownerMsg) {
  95 + this.ownerMsg = ownerMsg;
  96 + }
  97 +
  98 + public double getPrice() {
  99 + return price;
  100 + }
  101 +
  102 + public void setPrice(double price) {
  103 + this.price = price;
  104 + }
  105 +
  106 + public int getType() {
  107 + return type;
  108 + }
  109 +
  110 + public void setType(int type) {
  111 + this.type = type;
  112 + }
  113 +
  114 + public List<GroupMembersBean> getGroupMembers() {
  115 + return groupMembers;
  116 + }
  117 +
  118 + public void setGroupMembers(List<GroupMembersBean> groupMembers) {
  119 + this.groupMembers = groupMembers;
  120 + }
  121 +
  122 + public List<GroupMembersBean> getPayList() {
  123 + return payList;
  124 + }
  125 +
  126 + public void setPayList(List<GroupMembersBean> payList) {
  127 + this.payList = payList;
  128 + }
  129 +
  130 + public static class OwnerMsgBean {
  131 + /**
  132 + * image : http://cnlive-yweb.ks3-cn-beijing.ksyun.com/images/headImg/2018/0504/1525422551146_small.jpg
  133 + * nickName : 牛道健
  134 + * userId : 10505015
  135 + */
  136 +
  137 + private String image;
  138 + private String nickName;
  139 + private String userId;
  140 +
  141 + public String getImage() {
  142 + return image;
  143 + }
  144 +
  145 + public void setImage(String image) {
  146 + this.image = image;
  147 + }
  148 +
  149 + public String getNickName() {
  150 + return nickName;
  151 + }
  152 +
  153 + public void setNickName(String nickName) {
  154 + this.nickName = nickName;
  155 + }
  156 +
  157 + public String getUserId() {
  158 + return userId;
  159 + }
  160 +
  161 + public void setUserId(String userId) {
  162 + this.userId = userId;
  163 + }
  164 + }
  165 +
  166 + public static class GroupMembersBean {
  167 + /**
  168 + * payTime :
  169 + * type : false
  170 + * user : {"image":"http://cnlive-yweb.ks3-cn-beijing.ksyun.com/images/headImg/2018/0513/1526178128533_small.jpg","nickName":"张旭","userId":"10499533"}
  171 + */
  172 +
  173 + private String payTime;
  174 + private boolean type;
  175 + private UserBean user;
  176 +
  177 + public String getPayTime() {
  178 + return payTime;
  179 + }
  180 +
  181 + public void setPayTime(String payTime) {
  182 + this.payTime = payTime;
  183 + }
  184 +
  185 + public boolean isType() {
  186 + return type;
  187 + }
  188 +
  189 + public void setType(boolean type) {
  190 + this.type = type;
  191 + }
  192 +
  193 + public UserBean getUser() {
  194 + return user;
  195 + }
  196 +
  197 + public void setUser(UserBean user) {
  198 + this.user = user;
  199 + }
  200 +
  201 + public static class UserBean {
  202 + /**
  203 + * image : http://cnlive-yweb.ks3-cn-beijing.ksyun.com/images/headImg/2018/0513/1526178128533_small.jpg
  204 + * nickName : 张旭
  205 + * userId : 10499533
  206 + */
  207 +
  208 + private String image;
  209 + private String nickName;
  210 + private String userId;
  211 +
  212 + public String getImage() {
  213 + return image;
  214 + }
  215 +
  216 + public void setImage(String image) {
  217 + this.image = image;
  218 + }
  219 +
  220 + public String getNickName() {
  221 + return nickName;
  222 + }
  223 +
  224 + public void setNickName(String nickName) {
  225 + this.nickName = nickName;
  226 + }
  227 +
  228 + public String getUserId() {
  229 + return userId;
  230 + }
  231 +
  232 + public void setUserId(String userId) {
  233 + this.userId = userId;
  234 + }
  235 + }
  236 + }
  237 +
  238 +}
... ...
lib_network/src/main/java/com/cnlive/strike/data/network/model/AddIntegration.java 0 → 100644
  1 +package com.cnlive.strike.data.network.model;
  2 +
  3 +import java.io.Serializable;
  4 +
  5 +public class AddIntegration implements Serializable {
  6 +
  7 +
  8 + public static class DataBean {
  9 + /**
  10 + * status : false
  11 + * score : 100
  12 + */
  13 +
  14 + private boolean status;
  15 + private String score;
  16 + private String desc;
  17 + private String descEnd;
  18 +
  19 + public String getDescEnd() {
  20 + return descEnd;
  21 + }
  22 +
  23 + public void setDescEnd(String descEnd) {
  24 + this.descEnd = descEnd;
  25 + }
  26 +
  27 + public String getDesc() {
  28 + return desc;
  29 + }
  30 +
  31 + public void setDesc(String desc) {
  32 + this.desc = desc;
  33 + }
  34 +
  35 +
  36 + public boolean isStatus() {
  37 + return status;
  38 + }
  39 +
  40 + public void setStatus(boolean status) {
  41 + this.status = status;
  42 + }
  43 +
  44 + public String getScore() {
  45 + return score;
  46 + }
  47 +
  48 + public void setScore(String score) {
  49 + this.score = score;
  50 + }
  51 + }
  52 +}
... ...
lib_network/src/main/java/com/cnlive/strike/data/network/model/AppVersionInfo.java 0 → 100644
  1 +package com.cnlive.strike.data.network.model;
  2 +
  3 +/**
  4 + * 创建:wukuiqing
  5 + * <p>
  6 + * 时间:2018/4/2
  7 + * <p>
  8 + * 描述:
  9 + */
  10 +
  11 +public class AppVersionInfo {
  12 +
  13 +
  14 +
  15 + /**
  16 + * deviceType : IOS
  17 + * msg : 达人端1.0
  18 + * createTime : 2018-04-02 00:00:00
  19 + * id : aaaaa
  20 + * type : B
  21 + * version : 1.0
  22 + * strongUpdate
  23 + */
  24 +
  25 + public String deviceType;
  26 + public String msg;
  27 + public String createTime;
  28 + public String id;
  29 + public String type;
  30 + public String version;
  31 + public String versionCode;
  32 + public String downLoadUrl;
  33 + public boolean forceUpdating;
  34 +
  35 + public boolean isForceUpdating() {
  36 + return forceUpdating;
  37 + }
  38 +
  39 + public void setForceUpdating(boolean forceUpdating) {
  40 + this.forceUpdating = forceUpdating;
  41 + }
  42 +
  43 + public String getVersionCode() {
  44 + return versionCode;
  45 + }
  46 +
  47 + public void setVersionCode(String versionCode) {
  48 + this.versionCode = versionCode;
  49 + }
  50 +
  51 + public String getDownLoadUrl() {
  52 + return downLoadUrl;
  53 + }
  54 +
  55 + public void setDownLoadUrl(String downLoadUrl) {
  56 + this.downLoadUrl = downLoadUrl;
  57 + }
  58 +
  59 + public String getDeviceType() {
  60 + return deviceType;
  61 + }
  62 +
  63 + public void setDeviceType(String deviceType) {
  64 + this.deviceType = deviceType;
  65 + }
  66 +
  67 + public String getMsg() {
  68 + return msg;
  69 + }
  70 +
  71 + public void setMsg(String msg) {
  72 + this.msg = msg;
  73 + }
  74 +
  75 + public String getCreateTime() {
  76 + return createTime;
  77 + }
  78 +
  79 + public void setCreateTime(String createTime) {
  80 + this.createTime = createTime;
  81 + }
  82 +
  83 + public String getId() {
  84 + return id;
  85 + }
  86 +
  87 + public void setId(String id) {
  88 + this.id = id;
  89 + }
  90 +
  91 + public String getType() {
  92 + return type;
  93 + }
  94 +
  95 + public void setType(String type) {
  96 + this.type = type;
  97 + }
  98 +
  99 + public String getVersion() {
  100 + return version;
  101 + }
  102 +
  103 + public void setVersion(String version) {
  104 + this.version = version;
  105 + }
  106 +}
... ...
lib_network/src/main/java/com/cnlive/strike/data/network/model/AudioAlbumDetailsInfo.java 0 → 100644
  1 +package com.cnlive.strike.data.network.model;
  2 +
  3 +/**
  4 + * 作者: 吴奎庆
  5 + * <p>
  6 + * 时间: 2019/2/22
  7 + * <p>
  8 + * 简介:
  9 + */
  10 +public class AudioAlbumDetailsInfo {
  11 +
  12 + /**
  13 + * albumId : 67
  14 + * albumImg : http://ffyl.ys1.cnliveimg.com/223/img/2018/1119/181119100131652_957.png@base@tag=imgScale&q=20
  15 + * albumName : 音频第一个专辑2
  16 + * desc : 123123
  17 + * actor : 123
  18 + * time : 1551061851000
  19 + * sp : {"spName":null,"spId":60,"spIcon":null,"desc":null,"subscriptions":null,"subscribe":false}
  20 + * episodeNow : 3
  21 + * subscriptions : null
  22 + * subscribe : false
  23 + * episodeLast : null
  24 + */
  25 +
  26 + private int albumId;
  27 + private String albumImg;
  28 + private String albumName;
  29 + private String desc;
  30 + private String actor;
  31 + private long time;
  32 + private SpBean sp;
  33 + private int episodeNow;
  34 + private String subscriptions;
  35 +
  36 + public String getContentIdLast() {
  37 + return contentIdLast;
  38 + }
  39 +
  40 + public void setContentIdLast(String contentIdLast) {
  41 + this.contentIdLast = contentIdLast;
  42 + }
  43 +
  44 + private String contentIdLast;
  45 + private boolean subscribe;
  46 + private int episodeLast;
  47 +
  48 + public int getAlbumId() {
  49 + return albumId;
  50 + }
  51 +
  52 + public void setAlbumId(int albumId) {
  53 + this.albumId = albumId;
  54 + }
  55 +
  56 + public String getAlbumImg() {
  57 + return albumImg;
  58 + }
  59 +
  60 + public void setAlbumImg(String albumImg) {
  61 + this.albumImg = albumImg;
  62 + }
  63 +
  64 + public String getAlbumName() {
  65 + return albumName;
  66 + }
  67 +
  68 + public void setAlbumName(String albumName) {
  69 + this.albumName = albumName;
  70 + }
  71 +
  72 + public String getDesc() {
  73 + return desc;
  74 + }
  75 +
  76 + public void setDesc(String desc) {
  77 + this.desc = desc;
  78 + }
  79 +
  80 + public String getActor() {
  81 + return actor;
  82 + }
  83 +
  84 + public void setActor(String actor) {
  85 + this.actor = actor;
  86 + }
  87 +
  88 + public long getTime() {
  89 + return time;
  90 + }
  91 +
  92 + public void setTime(long time) {
  93 + this.time = time;
  94 + }
  95 +
  96 + public SpBean getSp() {
  97 + return sp;
  98 + }
  99 +
  100 + public void setSp(SpBean sp) {
  101 + this.sp = sp;
  102 + }
  103 +
  104 + public int getEpisodeNow() {
  105 + return episodeNow;
  106 + }
  107 +
  108 + public void setEpisodeNow(int episodeNow) {
  109 + this.episodeNow = episodeNow;
  110 + }
  111 +
  112 + public String getSubscriptions() {
  113 + return subscriptions;
  114 + }
  115 +
  116 + public void setSubscriptions(String subscriptions) {
  117 + this.subscriptions = subscriptions;
  118 + }
  119 +
  120 + public boolean isSubscribe() {
  121 + return subscribe;
  122 + }
  123 +
  124 + public void setSubscribe(boolean subscribe) {
  125 + this.subscribe = subscribe;
  126 + }
  127 +
  128 + public int getEpisodeLast() {
  129 + return episodeLast;
  130 + }
  131 +
  132 + public void setEpisodeLast(int episodeLast) {
  133 + this.episodeLast = episodeLast;
  134 + }
  135 +
  136 + public static class SpBean {
  137 + /**
  138 + * spName : null
  139 + * spId : 60
  140 + * spIcon : null
  141 + * desc : null
  142 + * subscriptions : null
  143 + * subscribe : false
  144 + */
  145 +
  146 + private Object spName;
  147 + private int spId;
  148 + private Object spIcon;
  149 + private Object desc;
  150 + private Object subscriptions;
  151 + private boolean subscribe;
  152 +
  153 + public Object getSpName() {
  154 + return spName;
  155 + }
  156 +
  157 + public void setSpName(Object spName) {
  158 + this.spName = spName;
  159 + }
  160 +
  161 + public int getSpId() {
  162 + return spId;
  163 + }
  164 +
  165 + public void setSpId(int spId) {
  166 + this.spId = spId;
  167 + }
  168 +
  169 + public Object getSpIcon() {
  170 + return spIcon;
  171 + }
  172 +
  173 + public void setSpIcon(Object spIcon) {
  174 + this.spIcon = spIcon;
  175 + }
  176 +
  177 + public Object getDesc() {
  178 + return desc;
  179 + }
  180 +
  181 + public void setDesc(Object desc) {
  182 + this.desc = desc;
  183 + }
  184 +
  185 + public Object getSubscriptions() {
  186 + return subscriptions;
  187 + }
  188 +
  189 + public void setSubscriptions(Object subscriptions) {
  190 + this.subscriptions = subscriptions;
  191 + }
  192 +
  193 + public boolean isSubscribe() {
  194 + return subscribe;
  195 + }
  196 +
  197 + public void setSubscribe(boolean subscribe) {
  198 + this.subscribe = subscribe;
  199 + }
  200 + }
  201 +}
... ...
lib_network/src/main/java/com/cnlive/strike/data/network/model/AudioChapterInfo.java 0 → 100644
  1 +package com.cnlive.strike.data.network.model;
  2 +
  3 +import java.io.Serializable;
  4 +
  5 +/**
  6 + * 作者: 吴奎庆
  7 + * <p>
  8 + * 时间: 2019/2/22
  9 + * <p>
  10 + * 简介:
  11 + */
  12 +public class AudioChapterInfo implements Serializable {
  13 +
  14 + /**
  15 + * title : 20181030aaa
  16 + * modelId : 5
  17 + * time : 1550567051000
  18 + * img : null
  19 + * viewCounts : 66666
  20 + * schedule : null
  21 + * activityId : 604_42d8ee17506445c792dba348c1e794c1
  22 + * contentId : 25675
  23 + * duration : 146
  24 + */
  25 +
  26 + private String title;
  27 + private String albumId;
  28 + private String albumName;
  29 + private String actor;
  30 + private int modelId;
  31 + private long time;
  32 + private String img;
  33 + private int counts;
  34 + private double viewCounts;
  35 + private double schedule;
  36 + private String activityId;
  37 + private int contentId;
  38 + private long duration;
  39 + private int comments;
  40 + private String shareUrl;
  41 +
  42 + public String getTitle() {
  43 + return title;
  44 + }
  45 +
  46 + public void setTitle(String title) {
  47 + this.title = title;
  48 + }
  49 +
  50 + public String getAlbumId() {
  51 + return albumId;
  52 + }
  53 +
  54 + public void setAlbumId(String albumId) {
  55 + this.albumId = albumId;
  56 + }
  57 +
  58 + public String getAlbumName() {
  59 + return albumName;
  60 + }
  61 +
  62 + public void setAlbumName(String albumName) {
  63 + this.albumName = albumName;
  64 + }
  65 +
  66 + public String getActor() {
  67 + return actor;
  68 + }
  69 +
  70 + public void setActor(String actor) {
  71 + this.actor = actor;
  72 + }
  73 +
  74 + public int getModelId() {
  75 + return modelId;
  76 + }
  77 +
  78 + public void setModelId(int modelId) {
  79 + this.modelId = modelId;
  80 + }
  81 +
  82 + public long getTime() {
  83 + return time;
  84 + }
  85 +
  86 + public void setTime(long time) {
  87 + this.time = time;
  88 + }
  89 +
  90 + public String getImg() {
  91 + return img;
  92 + }
  93 +
  94 + public void setImg(String img) {
  95 + this.img = img;
  96 + }
  97 +
  98 + public int getCounts() {
  99 + return counts;
  100 + }
  101 +
  102 + public void setCounts(int counts) {
  103 + this.counts = counts;
  104 + }
  105 +
  106 + public double getViewCounts() {
  107 + return viewCounts;
  108 + }
  109 +
  110 + public void setViewCounts(double viewCounts) {
  111 + this.viewCounts = viewCounts;
  112 + }
  113 +
  114 + public double getSchedule() {
  115 + return schedule;
  116 + }
  117 +
  118 + public void setSchedule(double schedule) {
  119 + this.schedule = schedule;
  120 + }
  121 +
  122 + public String getActivityId() {
  123 + return activityId;
  124 + }
  125 +
  126 + public void setActivityId(String activityId) {
  127 + this.activityId = activityId;
  128 + }
  129 +
  130 + public int getContentId() {
  131 + return contentId;
  132 + }
  133 +
  134 + public void setContentId(int contentId) {
  135 + this.contentId = contentId;
  136 + }
  137 +
  138 + public long getDuration() {
  139 + return duration;
  140 + }
  141 +
  142 + public void setDuration(long duration) {
  143 + this.duration = duration;
  144 + }
  145 +
  146 + public int getComments() {
  147 + return comments;
  148 + }
  149 +
  150 + public void setComments(int comments) {
  151 + this.comments = comments;
  152 + }
  153 +
  154 + public String getShareUrl() {
  155 + return shareUrl;
  156 + }
  157 +
  158 + public void setShareUrl(String shareUrl) {
  159 + this.shareUrl = shareUrl;
  160 + }
  161 +
  162 + @Override
  163 + public boolean equals( Object obj) {
  164 + if(obj instanceof AudioChapterInfo){
  165 + return ((AudioChapterInfo)obj).getActivityId().equals(activityId);
  166 + }
  167 + return super.equals(obj);
  168 + }
  169 +}
... ...