Compare commits

..

No commits in common. "master" and "pandorapan_社区相关" have entirely different histories.

479 changed files with 3919 additions and 17822 deletions

1
.gitignore vendored
View File

@ -14,4 +14,3 @@ local.properties
/live/build/ /live/build/
/main/build/ /main/build/
/video/build/ /video/build/
/tmp/full-r8-config.txt

View File

@ -1,18 +1,12 @@
//apply plugin: 'com.android.library' apply plugin: 'com.android.library'
//apply plugin: 'img-optimizer' apply plugin: 'img-optimizer'
//apply plugin: 'kotlin-android' apply plugin: 'kotlin-android'
//apply plugin: 'kotlin-android-extensions' apply plugin: 'kotlin-android-extensions'
plugins {
id 'com.android.library'
id 'kotlin-android'
id 'kotlin-parcelize'
id 'img-optimizer'
}
android { android {
namespace "com.yunbao.faceunity" compileSdkVersion rootProject.ext.android.compileSdkVersion
compileSdk rootProject.ext.android.compileSdkVersion buildToolsVersion rootProject.ext.android.buildToolsVersion
packagingOptions { packagingOptions {
pickFirst "lib/armeabi/libyuvutils.so" pickFirst "lib/armeabi/libyuvutils.so"
pickFirst "lib/arm64-v8a/libyuvutils.so" pickFirst "lib/arm64-v8a/libyuvutils.so"
@ -54,11 +48,8 @@ android {
} }
compileOptions { compileOptions {
sourceCompatibility JavaVersion.VERSION_18 sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_18 targetCompatibility JavaVersion.VERSION_1_8
}
buildFeatures {
buildConfig = true
} }
} }
repositories { repositories {

View File

@ -1,5 +1,6 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
package="com.yunbao.faceunity"
> >
<uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.INTERNET" />
@ -10,9 +11,7 @@
<application <application
android:icon="@mipmap/ico_home_animoji" android:icon="@mipmap/ico_home_animoji"
android:allowBackup="true" android:allowBackup="true">
tools:replace="allowBackup"
>
</application> </application>

View File

@ -1,15 +1,15 @@
apply plugin: 'com.android.library' apply plugin: 'com.android.library'
android { android {
namespace "com.samsung.android.sdk.iap.lib" compileSdkVersion rootProject.ext.android.compileSdkVersion
compileSdk rootProject.ext.android.compileSdkVersion buildToolsVersion rootProject.ext.android.buildToolsVersion
defaultConfig { defaultConfig {
minSdkVersion rootProject.ext.android.minSdkVersion minSdkVersion minSdkVersion
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
consumerProguardFiles "consumer-rules.pro" consumerProguardFiles "consumer-rules.pro"
versionCode rootProject.ext.android.versionCode versionCode versionCode
versionName rootProject.ext.android.versionName versionName versionName
targetSdkVersion rootProject.ext.android.targetSdkVersion targetSdkVersion targetSdkVersion
} }
buildTypes { buildTypes {
@ -18,15 +18,7 @@ android {
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
} }
} }
buildFeatures {
buildConfig = true
}
}
repositories {
flatDir {
dirs 'libs', '../libs'
}
} }
dependencies { dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar'])
} }

View File

@ -1,31 +1,30 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest
xmlns:tools="http://schemas.android.com/tools" xmlns:android="http://schemas.android.com/apk/res/android"
package="com.samsung.android.sdk.iap.lib"
android:versionCode="601000004" android:versionCode="601000004"
android:versionName="6.1.0"> android:versionName="6.1.0">
<!-- version code [Major/Minor/Bug fix release/Build number ] : x xx xxx xxx --> <!-- version code [Major/Minor/Bug fix release/Build number ] : x xx xxx xxx -->
<application <application>
android:allowBackup="true"
tools:replace="allowBackup">
<!-- IAP 라이브러리 내 Activity 선언 시작--> <!-- IAP 라이브러리 내 Activity 선언 시작-->
<activity <activity
android:name="com.samsung.android.sdk.iap.lib2.activity.DialogActivity" android:name="com.samsung.android.sdk.iap.lib.activity.DialogActivity"
android:theme="@style/Theme.Empty" android:theme="@style/Theme.Empty"
android:configChanges="orientation|screenSize"/> android:configChanges="orientation|screenSize"/>
<activity <activity
android:name="com.samsung.android.sdk.iap.lib2.activity.CheckPackageActivity" android:name="com.samsung.android.sdk.iap.lib.activity.CheckPackageActivity"
android:theme="@style/Theme.Empty" android:theme="@style/Theme.Empty"
android:configChanges="orientation|screenSize"/> android:configChanges="orientation|screenSize"/>
<activity <activity
android:name="com.samsung.android.sdk.iap.lib2.activity.AccountActivity" android:name="com.samsung.android.sdk.iap.lib.activity.AccountActivity"
android:theme="@style/Theme.Transparent" android:theme="@style/Theme.Transparent"
android:configChanges="orientation|screenSize"/> android:configChanges="orientation|screenSize"/>
<activity <activity
android:name="com.samsung.android.sdk.iap.lib2.activity.PaymentActivity" android:name="com.samsung.android.sdk.iap.lib.activity.PaymentActivity"
android:theme="@style/Theme.Empty" android:theme="@style/Theme.Empty"
android:configChanges="orientation|screenSize|smallestScreenSize|screenLayout|keyboard|keyboardHidden|locale|uiMode|fontScale|density"/> android:configChanges="orientation|screenSize|smallestScreenSize|screenLayout|keyboard|keyboardHidden|locale|uiMode|fontScale|density"/>

View File

@ -1,13 +1,13 @@
package com.samsung.android.sdk.iap.lib2.activity; package com.samsung.android.sdk.iap.lib.activity;
import android.app.Activity; import android.app.Activity;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.util.Log; import android.util.Log;
import com.samsung.android.sdk.iap.lib2.helper.HelperDefine; import com.samsung.android.sdk.iap.lib.helper.HelperDefine;
import com.samsung.android.sdk.iap.lib2.helper.HelperUtil; import com.samsung.android.sdk.iap.lib.helper.HelperUtil;
import com.samsung.android.sdk.iap.lib2.helper.IapHelper; import com.samsung.android.sdk.iap.lib.helper.IapHelper;
/** /**
* Created by sangbum7.kim on 2018-03-06. * Created by sangbum7.kim on 2018-03-06.
@ -16,11 +16,12 @@ import com.samsung.android.sdk.iap.lib2.helper.IapHelper;
public class AccountActivity extends Activity { public class AccountActivity extends Activity {
private static final String TAG = AccountActivity.class.getSimpleName(); private static final String TAG = AccountActivity.class.getSimpleName();
com.samsung.android.sdk.iap.lib2.helper.IapHelper mIapHelper = null; IapHelper mIapHelper = null;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
mIapHelper = IapHelper.getInstance(this); mIapHelper = IapHelper.getInstance(this);
// ==================================================================== // ====================================================================
// 1. If IAP package is installed and valid, start SamsungAccount // 1. If IAP package is installed and valid, start SamsungAccount

View File

@ -1,4 +1,4 @@
package com.samsung.android.sdk.iap.lib2.activity; package com.samsung.android.sdk.iap.lib.activity;
import android.app.Activity; import android.app.Activity;
import android.app.Dialog; import android.app.Dialog;
@ -8,25 +8,25 @@ import android.util.Log;
import android.widget.Toast; import android.widget.Toast;
import com.samsung.android.sdk.iap.lib.R; import com.samsung.android.sdk.iap.lib.R;
import com.samsung.android.sdk.iap.lib2.helper.HelperDefine; import com.samsung.android.sdk.iap.lib.dialog.BaseDialogFragment;
import com.samsung.android.sdk.iap.lib2.dialog.BaseDialogFragment; import com.samsung.android.sdk.iap.lib.helper.HelperDefine;
import com.samsung.android.sdk.iap.lib2.helper.HelperUtil; import com.samsung.android.sdk.iap.lib.helper.HelperUtil;
import com.samsung.android.sdk.iap.lib2.helper.IapHelper; import com.samsung.android.sdk.iap.lib.helper.IapHelper;
import com.samsung.android.sdk.iap.lib2.vo.ErrorVo; import com.samsung.android.sdk.iap.lib.vo.ErrorVo;
import com.samsung.android.sdk.iap.lib2.vo.PurchaseVo; import com.samsung.android.sdk.iap.lib.vo.PurchaseVo;
public abstract class BaseActivity extends Activity { public abstract class BaseActivity extends Activity {
private static final String TAG = BaseActivity.class.getSimpleName(); private static final String TAG = BaseActivity.class.getSimpleName();
protected com.samsung.android.sdk.iap.lib2.vo.ErrorVo mErrorVo = new com.samsung.android.sdk.iap.lib2.vo.ErrorVo(); protected ErrorVo mErrorVo = new ErrorVo();
private Dialog mProgressDialog = null; private Dialog mProgressDialog = null;
protected com.samsung.android.sdk.iap.lib2.vo.PurchaseVo mPurchaseVo = null; protected PurchaseVo mPurchaseVo = null;
/** /**
* Helper Class between IAPService and 3rd Party Application * Helper Class between IAPService and 3rd Party Application
*/ */
com.samsung.android.sdk.iap.lib2.helper.IapHelper mIapHelper = null; IapHelper mIapHelper = null;
/** /**
* Flag value to show successful pop-up. Error pop-up appears whenever it fails or not. * Flag value to show successful pop-up. Error pop-up appears whenever it fails or not.
@ -64,15 +64,15 @@ public abstract class BaseActivity extends Activity {
public boolean checkAppsPackage(Activity _activity) { public boolean checkAppsPackage(Activity _activity) {
// 1. If Galaxy Store is installed // 1. If Galaxy Store is installed
// ==================================================================== // ====================================================================
if (com.samsung.android.sdk.iap.lib2.helper.HelperUtil.isInstalledAppsPackage(this)) { if (HelperUtil.isInstalledAppsPackage(this)) {
// 1) If Galaxy Store is enabled // 1) If Galaxy Store is enabled
// ================================================================ // ================================================================
if (!com.samsung.android.sdk.iap.lib2.helper.HelperUtil.isEnabledAppsPackage(this)) { if (!HelperUtil.isEnabledAppsPackage(this)) {
com.samsung.android.sdk.iap.lib2.helper.HelperUtil.showEnableGalaxyStoreDialog(_activity); HelperUtil.showEnableGalaxyStoreDialog(_activity);
// ================================================================ // ================================================================
// 2) If Galaxy Store is valid // 2) If Galaxy Store is valid
// ================================================================ // ================================================================
} else if (com.samsung.android.sdk.iap.lib2.helper.HelperUtil.isValidAppsPackage(this)) { } else if (HelperUtil.isValidAppsPackage(this)) {
return true; return true;
} else { } else {
// Set error to notify result to third-party application // Set error to notify result to third-party application
@ -84,7 +84,7 @@ public abstract class BaseActivity extends Activity {
R.string.dream_ph_body_contact_p1sscustomer_servicep2ss_for_more_information_n_nerror_code_c_p3ss), R.string.dream_ph_body_contact_p1sscustomer_servicep2ss_for_more_information_n_nerror_code_c_p3ss),
"", "", ERROR_ISSUER_IAP_CLIENT + ERROR_CODE_INVALID_GALAXY_STORE); "", "", ERROR_ISSUER_IAP_CLIENT + ERROR_CODE_INVALID_GALAXY_STORE);
mErrorVo.setError(HelperDefine.IAP_PAYMENT_IS_CANCELED, errorString); mErrorVo.setError(HelperDefine.IAP_PAYMENT_IS_CANCELED, errorString);
com.samsung.android.sdk.iap.lib2.helper.HelperUtil.showInvalidGalaxyStoreDialog(this); HelperUtil.showInvalidGalaxyStoreDialog(this);
} }
// ================================================================ // ================================================================
@ -92,7 +92,7 @@ public abstract class BaseActivity extends Activity {
// 2. If Galaxy Store is not installed // 2. If Galaxy Store is not installed
// ==================================================================== // ====================================================================
} else { } else {
com.samsung.android.sdk.iap.lib2.helper.HelperUtil.installAppsPackage(this); HelperUtil.installAppsPackage(this);
} }
// ==================================================================== // ====================================================================
return false; return false;
@ -161,12 +161,12 @@ public abstract class BaseActivity extends Activity {
else { else {
Log.e(TAG, "finishPurchase: " + mErrorVo.dump()); Log.e(TAG, "finishPurchase: " + mErrorVo.dump());
if (mShowErrorDialog) { if (mShowErrorDialog) {
com.samsung.android.sdk.iap.lib2.helper.HelperUtil.showIapErrorDialog( HelperUtil.showIapErrorDialog(
this, this,
getString(R.string.dream_ph_pheader_couldnt_complete_purchase), getString(R.string.dream_ph_pheader_couldnt_complete_purchase),
mErrorVo.getErrorString(), mErrorVo.getErrorString(),
mErrorVo.getErrorDetailsString(), mErrorVo.getErrorDetailsString(),
new com.samsung.android.sdk.iap.lib2.dialog.BaseDialogFragment.OnClickListener() { new BaseDialogFragment.OnClickListener() {
@Override @Override
public void onClick() { public void onClick() {
finish(); finish();

View File

@ -1,12 +1,12 @@
package com.samsung.android.sdk.iap.lib2.activity; package com.samsung.android.sdk.iap.lib.activity;
import android.app.Activity; import android.app.Activity;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import com.samsung.android.sdk.iap.lib2.helper.HelperDefine; import com.samsung.android.sdk.iap.lib.helper.HelperDefine;
import com.samsung.android.sdk.iap.lib2.helper.HelperUtil; import com.samsung.android.sdk.iap.lib.helper.HelperUtil;
import com.samsung.android.sdk.iap.lib2.helper.IapHelper; import com.samsung.android.sdk.iap.lib.helper.IapHelper;
/** /**
* Created by sangbum7.kim on 2018-03-07. * Created by sangbum7.kim on 2018-03-07.
@ -27,12 +27,12 @@ public class CheckPackageActivity extends Activity {
int DialogType = extras.getInt("DialogType"); int DialogType = extras.getInt("DialogType");
switch (DialogType) { switch (DialogType) {
case HelperDefine.DIALOG_TYPE_INVALID_PACKAGE: { case HelperDefine.DIALOG_TYPE_INVALID_PACKAGE: {
com.samsung.android.sdk.iap.lib2.helper.HelperUtil.showInvalidGalaxyStoreDialog(this); HelperUtil.showInvalidGalaxyStoreDialog(this);
mFinishFlag = false; mFinishFlag = false;
} }
break; break;
case HelperDefine.DIALOG_TYPE_DISABLE_APPLICATION: { case HelperDefine.DIALOG_TYPE_DISABLE_APPLICATION: {
com.samsung.android.sdk.iap.lib2.helper.HelperUtil.showEnableGalaxyStoreDialog(this); HelperUtil.showEnableGalaxyStoreDialog(this);
mFinishFlag = false; mFinishFlag = false;
} }
break; break;

View File

@ -1,12 +1,16 @@
package com.samsung.android.sdk.iap.lib2.activity; package com.samsung.android.sdk.iap.lib.activity;
import android.app.Activity; import android.app.Activity;
import android.content.ActivityNotFoundException;
import android.content.Intent; import android.content.Intent;
import android.net.Uri;
import android.os.Bundle; import android.os.Bundle;
import android.text.TextUtils;
import com.samsung.android.sdk.iap.lib2.helper.HelperDefine; import com.samsung.android.sdk.iap.lib.R;
import com.samsung.android.sdk.iap.lib2.dialog.BaseDialogFragment; import com.samsung.android.sdk.iap.lib.dialog.BaseDialogFragment;
import com.samsung.android.sdk.iap.lib2.helper.HelperUtil; import com.samsung.android.sdk.iap.lib.helper.HelperDefine;
import com.samsung.android.sdk.iap.lib.helper.HelperUtil;
/** /**
* Created by sangbum7.kim on 2018-03-05. * Created by sangbum7.kim on 2018-03-05.

View File

@ -1,4 +1,4 @@
package com.samsung.android.sdk.iap.lib2.activity; package com.samsung.android.sdk.iap.lib.activity;
import android.content.ComponentName; import android.content.ComponentName;
import android.content.Context; import android.content.Context;
@ -9,9 +9,9 @@ import android.util.Log;
import android.widget.Toast; import android.widget.Toast;
import com.samsung.android.sdk.iap.lib.R; import com.samsung.android.sdk.iap.lib.R;
import com.samsung.android.sdk.iap.lib2.helper.HelperDefine; import com.samsung.android.sdk.iap.lib.helper.HelperDefine;
import com.samsung.android.sdk.iap.lib2.helper.HelperListenerManager; import com.samsung.android.sdk.iap.lib.helper.HelperListenerManager;
import com.samsung.android.sdk.iap.lib2.listener.OnPaymentListener; import com.samsung.android.sdk.iap.lib.listener.OnPaymentListener;
public class PaymentActivity extends BaseActivity { public class PaymentActivity extends BaseActivity {
private static final String TAG = PaymentActivity.class.getSimpleName(); private static final String TAG = PaymentActivity.class.getSimpleName();
@ -56,7 +56,7 @@ public class PaymentActivity extends BaseActivity {
super.preDestory(); super.preDestory();
if (isFinishing()) { if (isFinishing()) {
OnPaymentListener onPaymentListener = OnPaymentListener onPaymentListener =
com.samsung.android.sdk.iap.lib2.helper.HelperListenerManager.getInstance().getOnPaymentListener(); HelperListenerManager.getInstance().getOnPaymentListener();
HelperListenerManager.getInstance().setOnPaymentListener(null); HelperListenerManager.getInstance().setOnPaymentListener(null);
if (null != onPaymentListener) { if (null != onPaymentListener) {
onPaymentListener.onPayment(mErrorVo, mPurchaseVo); onPaymentListener.onPayment(mErrorVo, mPurchaseVo);

View File

@ -1,4 +1,4 @@
package com.samsung.android.sdk.iap.lib2.dialog; package com.samsung.android.sdk.iap.lib.dialog;
import android.app.ActionBar; import android.app.ActionBar;
import android.app.Dialog; import android.app.Dialog;
@ -8,6 +8,7 @@ import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.text.TextUtils; import android.text.TextUtils;
import android.text.method.LinkMovementMethod; import android.text.method.LinkMovementMethod;
import android.util.Log;
import android.util.TypedValue; import android.util.TypedValue;
import android.view.Gravity; import android.view.Gravity;
import android.view.View; import android.view.View;

View File

@ -1,4 +1,4 @@
package com.samsung.android.sdk.iap.lib2.helper; package com.samsung.android.sdk.iap.lib.helper;
/** /**
* Created by sangbum7.kim on 2017-07-17. * Created by sangbum7.kim on 2017-07-17.

View File

@ -1,12 +1,12 @@
package com.samsung.android.sdk.iap.lib2.helper; package com.samsung.android.sdk.iap.lib.helper;
import com.samsung.android.sdk.iap.lib2.listener.OnConsumePurchasedItemsListener; import com.samsung.android.sdk.iap.lib.helper.task.ConsumePurchasedItemsTask;
import com.samsung.android.sdk.iap.lib2.listener.OnGetOwnedListListener; import com.samsung.android.sdk.iap.lib.helper.task.GetOwnedListTask;
import com.samsung.android.sdk.iap.lib2.listener.OnGetProductsDetailsListener; import com.samsung.android.sdk.iap.lib.helper.task.GetProductsDetailsTask;
import com.samsung.android.sdk.iap.lib2.listener.OnPaymentListener; import com.samsung.android.sdk.iap.lib.listener.OnConsumePurchasedItemsListener;
import com.samsung.android.sdk.iap.lib2.helper.task.ConsumePurchasedItemsTask; import com.samsung.android.sdk.iap.lib.listener.OnGetOwnedListListener;
import com.samsung.android.sdk.iap.lib2.helper.task.GetOwnedListTask; import com.samsung.android.sdk.iap.lib.listener.OnGetProductsDetailsListener;
import com.samsung.android.sdk.iap.lib2.helper.task.GetProductsDetailsTask; import com.samsung.android.sdk.iap.lib.listener.OnPaymentListener;
/** /**
* Created by sangbum7.kim on 2017-08-29. * Created by sangbum7.kim on 2017-08-29.

View File

@ -1,4 +1,4 @@
package com.samsung.android.sdk.iap.lib2.helper; package com.samsung.android.sdk.iap.lib.helper;
import android.app.Activity; import android.app.Activity;
import android.content.ComponentName; import android.content.ComponentName;
@ -14,9 +14,9 @@ import android.text.Html;
import android.util.Log; import android.util.Log;
import com.samsung.android.sdk.iap.lib.R; import com.samsung.android.sdk.iap.lib.R;
import com.samsung.android.sdk.iap.lib2.activity.BaseActivity; import com.samsung.android.sdk.iap.lib.activity.BaseActivity;
import com.samsung.android.sdk.iap.lib2.dialog.BaseDialogFragment; import com.samsung.android.sdk.iap.lib.dialog.BaseDialogFragment;
import com.samsung.android.sdk.iap.lib2.vo.ErrorVo; import com.samsung.android.sdk.iap.lib.vo.ErrorVo;
/** /**
* Created by sangbum7.kim on 2017-08-17. * Created by sangbum7.kim on 2017-08-17.

View File

@ -1,4 +1,4 @@
package com.samsung.android.sdk.iap.lib2.helper; package com.samsung.android.sdk.iap.lib.helper;
import android.content.ComponentName; import android.content.ComponentName;
import android.content.Context; import android.content.Context;
@ -12,20 +12,20 @@ import android.util.Log;
import com.samsung.android.iap.IAPConnector; import com.samsung.android.iap.IAPConnector;
import com.samsung.android.sdk.iap.lib.R; import com.samsung.android.sdk.iap.lib.R;
import com.samsung.android.sdk.iap.lib2.activity.CheckPackageActivity; import com.samsung.android.sdk.iap.lib.activity.CheckPackageActivity;
import com.samsung.android.sdk.iap.lib2.activity.PaymentActivity; import com.samsung.android.sdk.iap.lib.activity.PaymentActivity;
import com.samsung.android.sdk.iap.lib2.listener.OnConsumePurchasedItemsListener; import com.samsung.android.sdk.iap.lib.helper.task.ConsumePurchasedItemsTask;
import com.samsung.android.sdk.iap.lib2.listener.OnGetOwnedListListener; import com.samsung.android.sdk.iap.lib.helper.task.GetOwnedListTask;
import com.samsung.android.sdk.iap.lib2.listener.OnGetProductsDetailsListener; import com.samsung.android.sdk.iap.lib.helper.task.GetProductsDetailsTask;
import com.samsung.android.sdk.iap.lib2.listener.OnPaymentListener; import com.samsung.android.sdk.iap.lib.listener.OnConsumePurchasedItemsListener;
import com.samsung.android.sdk.iap.lib2.service.BaseService; import com.samsung.android.sdk.iap.lib.listener.OnGetOwnedListListener;
import com.samsung.android.sdk.iap.lib2.service.ConsumePurchasedItems; import com.samsung.android.sdk.iap.lib.listener.OnGetProductsDetailsListener;
import com.samsung.android.sdk.iap.lib2.service.OwnedProduct; import com.samsung.android.sdk.iap.lib.listener.OnPaymentListener;
import com.samsung.android.sdk.iap.lib2.service.ProductsDetails; import com.samsung.android.sdk.iap.lib.service.BaseService;
import com.samsung.android.sdk.iap.lib2.vo.ErrorVo; import com.samsung.android.sdk.iap.lib.service.ConsumePurchasedItems;
import com.samsung.android.sdk.iap.lib2.helper.task.ConsumePurchasedItemsTask; import com.samsung.android.sdk.iap.lib.service.OwnedProduct;
import com.samsung.android.sdk.iap.lib2.helper.task.GetOwnedListTask; import com.samsung.android.sdk.iap.lib.service.ProductsDetails;
import com.samsung.android.sdk.iap.lib2.helper.task.GetProductsDetailsTask; import com.samsung.android.sdk.iap.lib.vo.ErrorVo;
import java.util.ArrayList; import java.util.ArrayList;
@ -46,9 +46,9 @@ public class IapHelper extends HelperDefine {
// AsyncTask for API // AsyncTask for API
// ======================================================================== // ========================================================================
private com.samsung.android.sdk.iap.lib2.helper.task.GetProductsDetailsTask mGetProductsDetailsTask = null; private GetProductsDetailsTask mGetProductsDetailsTask = null;
private com.samsung.android.sdk.iap.lib2.helper.task.GetOwnedListTask mGetOwnedListTask = null; private GetOwnedListTask mGetOwnedListTask = null;
private com.samsung.android.sdk.iap.lib2.helper.task.ConsumePurchasedItemsTask mConsumePurchasedItemsTask = null; private ConsumePurchasedItemsTask mConsumePurchasedItemsTask = null;
// ======================================================================== // ========================================================================
private ArrayList<BaseService> mServiceQueue = new ArrayList<BaseService>(); private ArrayList<BaseService> mServiceQueue = new ArrayList<BaseService>();
@ -267,7 +267,7 @@ public class IapHelper extends HelperDefine {
if (mIapConnector == null || mContext == null) { if (mIapConnector == null || mContext == null) {
return false; return false;
} else { } else {
mGetProductsDetailsTask = new com.samsung.android.sdk.iap.lib2.helper.task.GetProductsDetailsTask(_baseService, mGetProductsDetailsTask = new GetProductsDetailsTask(_baseService,
mIapConnector, mIapConnector,
mContext, mContext,
_productIDs, _productIDs,
@ -344,7 +344,7 @@ public class IapHelper extends HelperDefine {
if (mIapConnector == null || mContext == null) { if (mIapConnector == null || mContext == null) {
return false; return false;
} else { } else {
mGetOwnedListTask = new com.samsung.android.sdk.iap.lib2.helper.task.GetOwnedListTask(_baseService, mGetOwnedListTask = new GetOwnedListTask(_baseService,
mIapConnector, mIapConnector,
mContext, mContext,
_productType, _productType,
@ -417,7 +417,7 @@ public class IapHelper extends HelperDefine {
mConsumePurchasedItemsTask.cancel(true); mConsumePurchasedItemsTask.cancel(true);
} }
mConsumePurchasedItemsTask = new com.samsung.android.sdk.iap.lib2.helper.task.ConsumePurchasedItemsTask(_baseService, mConsumePurchasedItemsTask = new ConsumePurchasedItemsTask(_baseService,
mIapConnector, mIapConnector,
mContext, mContext,
_purchaseIds, _purchaseIds,

View File

@ -1,4 +1,4 @@
package com.samsung.android.sdk.iap.lib2.helper.task; package com.samsung.android.sdk.iap.lib.helper.task;
import android.content.Context; import android.content.Context;
import android.os.AsyncTask; import android.os.AsyncTask;
@ -6,8 +6,9 @@ import android.util.Log;
import com.samsung.android.iap.IAPConnector; import com.samsung.android.iap.IAPConnector;
import com.samsung.android.sdk.iap.lib.R; import com.samsung.android.sdk.iap.lib.R;
import com.samsung.android.sdk.iap.lib2.service.BaseService; import com.samsung.android.sdk.iap.lib.helper.HelperDefine;
import com.samsung.android.sdk.iap.lib2.vo.ErrorVo; import com.samsung.android.sdk.iap.lib.service.BaseService;
import com.samsung.android.sdk.iap.lib.vo.ErrorVo;
/** /**
* Created by sangbum7.kim on 2017-09-01. * Created by sangbum7.kim on 2017-09-01.

View File

@ -1,4 +1,4 @@
package com.samsung.android.sdk.iap.lib2.helper.task; package com.samsung.android.sdk.iap.lib.helper.task;
import android.content.Context; import android.content.Context;
import android.os.Bundle; import android.os.Bundle;
@ -6,9 +6,9 @@ import android.util.Log;
import com.samsung.android.iap.IAPConnector; import com.samsung.android.iap.IAPConnector;
import com.samsung.android.sdk.iap.lib.R; import com.samsung.android.sdk.iap.lib.R;
import com.samsung.android.sdk.iap.lib2.helper.HelperDefine; import com.samsung.android.sdk.iap.lib.helper.HelperDefine;
import com.samsung.android.sdk.iap.lib2.service.ConsumePurchasedItems; import com.samsung.android.sdk.iap.lib.service.ConsumePurchasedItems;
import com.samsung.android.sdk.iap.lib2.vo.ConsumeVo; import com.samsung.android.sdk.iap.lib.vo.ConsumeVo;
import java.util.ArrayList; import java.util.ArrayList;

View File

@ -1,4 +1,4 @@
package com.samsung.android.sdk.iap.lib2.helper.task; package com.samsung.android.sdk.iap.lib.helper.task;
import android.content.Context; import android.content.Context;
import android.os.Bundle; import android.os.Bundle;
@ -6,9 +6,9 @@ import android.util.Log;
import com.samsung.android.iap.IAPConnector; import com.samsung.android.iap.IAPConnector;
import com.samsung.android.sdk.iap.lib.R; import com.samsung.android.sdk.iap.lib.R;
import com.samsung.android.sdk.iap.lib2.helper.HelperDefine; import com.samsung.android.sdk.iap.lib.helper.HelperDefine;
import com.samsung.android.sdk.iap.lib2.service.OwnedProduct; import com.samsung.android.sdk.iap.lib.service.OwnedProduct;
import com.samsung.android.sdk.iap.lib2.vo.OwnedProductVo; import com.samsung.android.sdk.iap.lib.vo.OwnedProductVo;
import java.util.ArrayList; import java.util.ArrayList;

View File

@ -1,4 +1,4 @@
package com.samsung.android.sdk.iap.lib2.helper.task; package com.samsung.android.sdk.iap.lib.helper.task;
import android.content.Context; import android.content.Context;
import android.os.Bundle; import android.os.Bundle;
@ -6,9 +6,9 @@ import android.util.Log;
import com.samsung.android.iap.IAPConnector; import com.samsung.android.iap.IAPConnector;
import com.samsung.android.sdk.iap.lib.R; import com.samsung.android.sdk.iap.lib.R;
import com.samsung.android.sdk.iap.lib2.helper.HelperDefine; import com.samsung.android.sdk.iap.lib.helper.HelperDefine;
import com.samsung.android.sdk.iap.lib2.service.ProductsDetails; import com.samsung.android.sdk.iap.lib.service.ProductsDetails;
import com.samsung.android.sdk.iap.lib2.vo.ProductVo; import com.samsung.android.sdk.iap.lib.vo.ProductVo;
import java.util.ArrayList; import java.util.ArrayList;

View File

@ -1,13 +1,13 @@
package com.samsung.android.sdk.iap.lib2.listener; package com.samsung.android.sdk.iap.lib.listener;
import com.samsung.android.sdk.iap.lib2.helper.task.GetOwnedListTask; import com.samsung.android.sdk.iap.lib.helper.task.GetOwnedListTask;
import com.samsung.android.sdk.iap.lib2.vo.ConsumeVo; import com.samsung.android.sdk.iap.lib.vo.ConsumeVo;
import com.samsung.android.sdk.iap.lib2.vo.ErrorVo; import com.samsung.android.sdk.iap.lib.vo.ErrorVo;
import java.util.ArrayList; import java.util.ArrayList;
/** /**
* Callback Interface used with {@link com.samsung.android.sdk.iap.lib2.helper.task.GetOwnedListTask} * Callback Interface used with {@link GetOwnedListTask}
*/ */
public interface OnConsumePurchasedItemsListener { public interface OnConsumePurchasedItemsListener {
/** /**

View File

@ -0,0 +1,20 @@
package com.samsung.android.sdk.iap.lib.listener;
import com.samsung.android.sdk.iap.lib.helper.task.GetOwnedListTask;
import com.samsung.android.sdk.iap.lib.vo.ErrorVo;
import com.samsung.android.sdk.iap.lib.vo.OwnedProductVo;
import java.util.ArrayList;
/**
* Callback Interface used with {@link GetOwnedListTask}
*/
public interface OnGetOwnedListListener {
/**
* Callback method to be invoked when {@link GetOwnedListTask} has been finished.
*
* @param _errorVO
* @param _ownedList
*/
void onGetOwnedProducts(ErrorVo _errorVO, ArrayList<OwnedProductVo> _ownedList);
}

View File

@ -0,0 +1,20 @@
package com.samsung.android.sdk.iap.lib.listener;
import com.samsung.android.sdk.iap.lib.helper.task.GetProductsDetailsTask;
import com.samsung.android.sdk.iap.lib.vo.ErrorVo;
import com.samsung.android.sdk.iap.lib.vo.ProductVo;
import java.util.ArrayList;
/**
* Callback Interface used with {@link GetProductsDetailsTask}
*/
public interface OnGetProductsDetailsListener {
/**
* Callback method to be invoked when {@link GetProductsDetailsTask} has been finished.
*
* @param _errorVO
* @param _productList
*/
void onGetProducts(ErrorVo _errorVO, ArrayList<ProductVo> _productList);
}

View File

@ -1,4 +1,4 @@
package com.samsung.android.sdk.iap.lib2.listener; package com.samsung.android.sdk.iap.lib.listener;
/** /**
* Callback Interface to be invoked when bind to IAPService has been finished. * Callback Interface to be invoked when bind to IAPService has been finished.

View File

@ -1,7 +1,7 @@
package com.samsung.android.sdk.iap.lib2.listener; package com.samsung.android.sdk.iap.lib.listener;
import com.samsung.android.sdk.iap.lib2.vo.ErrorVo; import com.samsung.android.sdk.iap.lib.vo.ErrorVo;
import com.samsung.android.sdk.iap.lib2.vo.PurchaseVo; import com.samsung.android.sdk.iap.lib.vo.PurchaseVo;
/** /**
* Callback Interface to be invoked when payment has been finished. * Callback Interface to be invoked when payment has been finished.

View File

@ -1,4 +1,4 @@
package com.samsung.android.sdk.iap.lib2.listener; package com.samsung.android.sdk.iap.lib.listener;
/** /**
* Created by sangbum7.kim on 2018-02-28. * Created by sangbum7.kim on 2018-02-28.

View File

@ -1,15 +1,15 @@
package com.samsung.android.sdk.iap.lib2.service; package com.samsung.android.sdk.iap.lib.service;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.util.Log; import android.util.Log;
import com.samsung.android.sdk.iap.lib.R; import com.samsung.android.sdk.iap.lib.R;
import com.samsung.android.sdk.iap.lib2.helper.HelperDefine; import com.samsung.android.sdk.iap.lib.activity.AccountActivity;
import com.samsung.android.sdk.iap.lib2.activity.AccountActivity; import com.samsung.android.sdk.iap.lib.activity.DialogActivity;
import com.samsung.android.sdk.iap.lib2.activity.DialogActivity; import com.samsung.android.sdk.iap.lib.helper.HelperDefine;
import com.samsung.android.sdk.iap.lib2.helper.IapHelper; import com.samsung.android.sdk.iap.lib.helper.IapHelper;
import com.samsung.android.sdk.iap.lib2.vo.ErrorVo; import com.samsung.android.sdk.iap.lib.vo.ErrorVo;
/** /**
* Created by sangbum7.kim on 2018-02-28. * Created by sangbum7.kim on 2018-02-28.
@ -18,8 +18,8 @@ import com.samsung.android.sdk.iap.lib2.vo.ErrorVo;
public abstract class BaseService { public abstract class BaseService {
private static final String TAG = BaseService.class.getSimpleName(); private static final String TAG = BaseService.class.getSimpleName();
protected com.samsung.android.sdk.iap.lib2.vo.ErrorVo mErrorVo = new com.samsung.android.sdk.iap.lib2.vo.ErrorVo(); protected ErrorVo mErrorVo = new ErrorVo();
protected com.samsung.android.sdk.iap.lib2.helper.IapHelper mIapHelper = null; protected IapHelper mIapHelper = null;
protected Context mContext = null; protected Context mContext = null;
public BaseService(IapHelper _iapHelper, Context _context) { public BaseService(IapHelper _iapHelper, Context _context) {
@ -28,7 +28,7 @@ public abstract class BaseService {
mErrorVo.setError(HelperDefine.IAP_ERROR_INITIALIZATION, mContext.getString(R.string.mids_sapps_pop_unknown_error_occurred)); mErrorVo.setError(HelperDefine.IAP_ERROR_INITIALIZATION, mContext.getString(R.string.mids_sapps_pop_unknown_error_occurred));
} }
public com.samsung.android.sdk.iap.lib2.vo.ErrorVo getErrorVo() { public ErrorVo getErrorVo() {
return mErrorVo; return mErrorVo;
} }

View File

@ -1,13 +1,13 @@
package com.samsung.android.sdk.iap.lib2.service; package com.samsung.android.sdk.iap.lib.service;
import android.content.Context; import android.content.Context;
import android.util.Log; import android.util.Log;
import com.samsung.android.sdk.iap.lib.R; import com.samsung.android.sdk.iap.lib.R;
import com.samsung.android.sdk.iap.lib2.helper.HelperDefine; import com.samsung.android.sdk.iap.lib.helper.HelperDefine;
import com.samsung.android.sdk.iap.lib2.helper.IapHelper; import com.samsung.android.sdk.iap.lib.helper.IapHelper;
import com.samsung.android.sdk.iap.lib2.listener.OnConsumePurchasedItemsListener; import com.samsung.android.sdk.iap.lib.listener.OnConsumePurchasedItemsListener;
import com.samsung.android.sdk.iap.lib2.vo.ConsumeVo; import com.samsung.android.sdk.iap.lib.vo.ConsumeVo;
import java.util.ArrayList; import java.util.ArrayList;
@ -18,9 +18,9 @@ import java.util.ArrayList;
public class ConsumePurchasedItems extends BaseService { public class ConsumePurchasedItems extends BaseService {
private static final String TAG = ConsumePurchasedItems.class.getSimpleName(); private static final String TAG = ConsumePurchasedItems.class.getSimpleName();
private com.samsung.android.sdk.iap.lib2.listener.OnConsumePurchasedItemsListener mOnConsumePurchasedItemsListener = null; private OnConsumePurchasedItemsListener mOnConsumePurchasedItemsListener = null;
private static String mPurchaseIds = ""; private static String mPurchaseIds = "";
protected ArrayList<com.samsung.android.sdk.iap.lib2.vo.ConsumeVo> mConsumeList = null; protected ArrayList<ConsumeVo> mConsumeList = null;
public ConsumePurchasedItems(IapHelper _iapHelper, Context _context, OnConsumePurchasedItemsListener _onConsumePurchasedItemsListener) { public ConsumePurchasedItems(IapHelper _iapHelper, Context _context, OnConsumePurchasedItemsListener _onConsumePurchasedItemsListener) {
super(_iapHelper, _context); super(_iapHelper, _context);

View File

@ -1,13 +1,13 @@
package com.samsung.android.sdk.iap.lib2.service; package com.samsung.android.sdk.iap.lib.service;
import android.content.Context; import android.content.Context;
import android.util.Log; import android.util.Log;
import com.samsung.android.sdk.iap.lib.R; import com.samsung.android.sdk.iap.lib.R;
import com.samsung.android.sdk.iap.lib2.helper.HelperDefine; import com.samsung.android.sdk.iap.lib.helper.HelperDefine;
import com.samsung.android.sdk.iap.lib2.helper.IapHelper; import com.samsung.android.sdk.iap.lib.helper.IapHelper;
import com.samsung.android.sdk.iap.lib2.listener.OnGetOwnedListListener; import com.samsung.android.sdk.iap.lib.listener.OnGetOwnedListListener;
import com.samsung.android.sdk.iap.lib2.vo.OwnedProductVo; import com.samsung.android.sdk.iap.lib.vo.OwnedProductVo;
import java.util.ArrayList; import java.util.ArrayList;
@ -18,9 +18,9 @@ import java.util.ArrayList;
public class OwnedProduct extends BaseService { public class OwnedProduct extends BaseService {
private static final String TAG = OwnedProduct.class.getSimpleName(); private static final String TAG = OwnedProduct.class.getSimpleName();
private com.samsung.android.sdk.iap.lib2.listener.OnGetOwnedListListener mOnGetOwnedListListener = null; private OnGetOwnedListListener mOnGetOwnedListListener = null;
private static String mProductType = ""; private static String mProductType = "";
protected ArrayList<com.samsung.android.sdk.iap.lib2.vo.OwnedProductVo> mOwnedList = null; protected ArrayList<OwnedProductVo> mOwnedList = null;
public OwnedProduct(IapHelper _iapHelper, Context _context, OnGetOwnedListListener _onGetOwnedListListener) { public OwnedProduct(IapHelper _iapHelper, Context _context, OnGetOwnedListListener _onGetOwnedListListener) {
super(_iapHelper, _context); super(_iapHelper, _context);

View File

@ -1,13 +1,13 @@
package com.samsung.android.sdk.iap.lib2.service; package com.samsung.android.sdk.iap.lib.service;
import android.content.Context; import android.content.Context;
import android.util.Log; import android.util.Log;
import com.samsung.android.sdk.iap.lib.R; import com.samsung.android.sdk.iap.lib.R;
import com.samsung.android.sdk.iap.lib2.helper.HelperDefine; import com.samsung.android.sdk.iap.lib.helper.HelperDefine;
import com.samsung.android.sdk.iap.lib2.helper.IapHelper; import com.samsung.android.sdk.iap.lib.helper.IapHelper;
import com.samsung.android.sdk.iap.lib2.listener.OnGetProductsDetailsListener; import com.samsung.android.sdk.iap.lib.listener.OnGetProductsDetailsListener;
import com.samsung.android.sdk.iap.lib2.vo.ProductVo; import com.samsung.android.sdk.iap.lib.vo.ProductVo;
import java.util.ArrayList; import java.util.ArrayList;
@ -18,9 +18,9 @@ import java.util.ArrayList;
public class ProductsDetails extends BaseService { public class ProductsDetails extends BaseService {
private static final String TAG = ProductsDetails.class.getSimpleName(); private static final String TAG = ProductsDetails.class.getSimpleName();
private com.samsung.android.sdk.iap.lib2.listener.OnGetProductsDetailsListener mOnGetProductsDetailsListener = null; private OnGetProductsDetailsListener mOnGetProductsDetailsListener = null;
private static String mProductIds = ""; private static String mProductIds = "";
protected ArrayList<com.samsung.android.sdk.iap.lib2.vo.ProductVo> mProductsDetails = null; protected ArrayList<ProductVo> mProductsDetails = null;
public ProductsDetails(IapHelper _iapHelper, Context _context, OnGetProductsDetailsListener _onGetProductsDetailsListener) { public ProductsDetails(IapHelper _iapHelper, Context _context, OnGetProductsDetailsListener _onGetProductsDetailsListener) {
super(_iapHelper, _context); super(_iapHelper, _context);

View File

@ -1,4 +1,4 @@
package com.samsung.android.sdk.iap.lib2.vo; package com.samsung.android.sdk.iap.lib.vo;
import android.text.format.DateFormat; import android.text.format.DateFormat;

View File

@ -1,4 +1,4 @@
package com.samsung.android.sdk.iap.lib2.vo; package com.samsung.android.sdk.iap.lib.vo;
import android.util.Log; import android.util.Log;

View File

@ -1,6 +1,6 @@
package com.samsung.android.sdk.iap.lib2.vo; package com.samsung.android.sdk.iap.lib.vo;
import com.samsung.android.sdk.iap.lib2.helper.HelperDefine; import com.samsung.android.sdk.iap.lib.helper.HelperDefine;
public class ErrorVo { public class ErrorVo {
private int mErrorCode = HelperDefine.IAP_PAYMENT_IS_CANCELED; private int mErrorCode = HelperDefine.IAP_PAYMENT_IS_CANCELED;

View File

@ -1,4 +1,4 @@
package com.samsung.android.sdk.iap.lib2.vo; package com.samsung.android.sdk.iap.lib.vo;
import android.util.Base64; import android.util.Base64;

View File

@ -1,4 +1,4 @@
package com.samsung.android.sdk.iap.lib2.vo; package com.samsung.android.sdk.iap.lib.vo;
import org.json.JSONException; import org.json.JSONException;
import org.json.JSONObject; import org.json.JSONObject;

View File

@ -1,4 +1,4 @@
package com.samsung.android.sdk.iap.lib2.vo; package com.samsung.android.sdk.iap.lib.vo;
import android.util.Base64; import android.util.Base64;

View File

@ -1,20 +0,0 @@
package com.samsung.android.sdk.iap.lib2.listener;
import com.samsung.android.sdk.iap.lib2.helper.task.GetOwnedListTask;
import com.samsung.android.sdk.iap.lib2.vo.ErrorVo;
import com.samsung.android.sdk.iap.lib2.vo.OwnedProductVo;
import java.util.ArrayList;
/**
* Callback Interface used with {@link com.samsung.android.sdk.iap.lib2.helper.task.GetOwnedListTask}
*/
public interface OnGetOwnedListListener {
/**
* Callback method to be invoked when {@link GetOwnedListTask} has been finished.
*
* @param _errorVO
* @param _ownedList
*/
void onGetOwnedProducts(ErrorVo _errorVO, ArrayList<OwnedProductVo> _ownedList);
}

View File

@ -1,20 +0,0 @@
package com.samsung.android.sdk.iap.lib2.listener;
import com.samsung.android.sdk.iap.lib2.helper.task.GetProductsDetailsTask;
import com.samsung.android.sdk.iap.lib2.vo.ErrorVo;
import com.samsung.android.sdk.iap.lib2.vo.ProductVo;
import java.util.ArrayList;
/**
* Callback Interface used with {@link com.samsung.android.sdk.iap.lib2.helper.task.GetProductsDetailsTask}
*/
public interface OnGetProductsDetailsListener {
/**
* Callback method to be invoked when {@link GetProductsDetailsTask} has been finished.
*
* @param _errorVO
* @param _productList
*/
void onGetProducts(ErrorVo _errorVO, ArrayList<ProductVo> _productList);
}

View File

@ -1,18 +1,12 @@
//apply plugin: 'com.android.library' apply plugin: 'com.android.library'
//apply plugin: 'img-optimizer' apply plugin: 'img-optimizer'
//apply plugin: 'kotlin-android' apply plugin: 'kotlin-android'
//apply plugin: 'kotlin-android-extensions' apply plugin: 'kotlin-android-extensions'
plugins {
id 'com.android.library'
id 'kotlin-android'
id 'kotlin-parcelize'
id 'img-optimizer'
}
android { android {
namespace "com.pdlive.shayu" compileSdkVersion rootProject.ext.android.compileSdkVersion
compileSdk rootProject.ext.android.compileSdkVersion buildToolsVersion rootProject.ext.android.buildToolsVersion
packagingOptions { packagingOptions {
pickFirst "lib/armeabi/libyuvutils.so" pickFirst "lib/armeabi/libyuvutils.so"
pickFirst "lib/arm64-v8a/libyuvutils.so" pickFirst "lib/arm64-v8a/libyuvutils.so"
@ -54,11 +48,8 @@ android {
} }
compileOptions { compileOptions {
sourceCompatibility JavaVersion.VERSION_18 sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_18 targetCompatibility JavaVersion.VERSION_1_8
}
buildFeatures {
buildConfig = true
} }
} }
repositories { repositories {

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
> package="com.pdlive.shayu">
<queries> <queries>
<package android:name="com.pandoralive.shayu"/> <package android:name="com.pandoralive.shayu"/>
@ -19,7 +19,7 @@
tools:ignore="ExportedContentProvider" /> tools:ignore="ExportedContentProvider" />
</queries> </queries>
<application> <application android:allowBackup="true">
<activity <activity
android:name="com.facebook.FacebookActivity" android:name="com.facebook.FacebookActivity"
android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation" android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"

View File

@ -7,7 +7,7 @@ import android.net.Uri;
import androidx.core.content.FileProvider; import androidx.core.content.FileProvider;
import com.twitter.sdk.android.tweetcomposer.TweetUploadService; import com.twitter.sdk.android.tweetcomposer.TweetUploadService;
import com.yunbao.share.bean.ShareBean; import com.yunbao.share.bean.ShareBuilder;
import com.yunbao.share.receiver.TwitterResultReceiver; import com.yunbao.share.receiver.TwitterResultReceiver;
import java.io.File; import java.io.File;
@ -23,7 +23,7 @@ public abstract class AbsShareInterface {
context.registerReceiver(new TwitterResultReceiver(), filter); context.registerReceiver(new TwitterResultReceiver(), filter);
} }
public abstract void share(ShareBean builder, ICallback callback); public abstract void share(ShareBuilder builder, ICallback callback);
public Uri fileToUri(File file){ public Uri fileToUri(File file){
return FileProvider.getUriForFile(mContext, return FileProvider.getUriForFile(mContext,

View File

@ -1,11 +1,8 @@
package com.yunbao.share.adapters; package com.yunbao.share.adapters;
import android.content.Context;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.CompoundButton;
import android.widget.ImageView;
import android.widget.RadioButton; import android.widget.RadioButton;
import android.widget.TextView; import android.widget.TextView;
@ -14,7 +11,6 @@ import androidx.recyclerview.widget.RecyclerView;
import com.pdlive.shayu.R; import com.pdlive.shayu.R;
import com.yunbao.common.glide.ImgLoader; import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.utils.ViewUtils;
import com.yunbao.common.views.weight.ClipPathCircleImage; import com.yunbao.common.views.weight.ClipPathCircleImage;
import java.util.ArrayList; import java.util.ArrayList;
@ -26,36 +22,18 @@ import io.rong.imlib.model.Conversation;
public class InternalShareAdapter extends RecyclerView.Adapter<InternalShareAdapter.ViewHolder> { public class InternalShareAdapter extends RecyclerView.Adapter<InternalShareAdapter.ViewHolder> {
List<SingleConversation> listData = new ArrayList<>(); List<SingleConversation> listData = new ArrayList<>();
int selectPosition = -1; int selectPosition = -1;
private int isEmpty = -233;
private Context mContext;
public InternalShareAdapter(Context mContext) {
this.mContext = mContext;
}
@NonNull @NonNull
@Override @Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
if (viewType == isEmpty) {
return new EmptyViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.view_layout_msg, parent, false));
}
return new ViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_internal_user, parent, false)); return new ViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_internal_user, parent, false));
} }
@Override @Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) { public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
if (getItemViewType(position) == isEmpty) return;
holder.bind(listData.get(position), position); holder.bind(listData.get(position), position);
} }
@Override
public int getItemViewType(int position) {
if (listData.get(position).mCore.getTargetId().equals("isEmpty_-233-pdl-5YK76YC8")) {
return isEmpty;
}
return super.getItemViewType(position);
}
@Override @Override
public int getItemCount() { public int getItemCount() {
return listData.size(); return listData.size();
@ -65,11 +43,6 @@ public class InternalShareAdapter extends RecyclerView.Adapter<InternalShareAdap
if (listData == null) { if (listData == null) {
listData = new ArrayList<>(); listData = new ArrayList<>();
} }
if (listData.isEmpty()) {
Conversation conversation = new Conversation();
conversation.setTargetId("isEmpty_-233-pdl-5YK76YC8");
listData.add(new SingleConversation(mContext, conversation));
}
this.listData = listData; this.listData = listData;
notifyDataSetChanged(); notifyDataSetChanged();
@ -79,19 +52,6 @@ public class InternalShareAdapter extends RecyclerView.Adapter<InternalShareAdap
return selectPosition; return selectPosition;
} }
public List<SingleConversation> getListData() {
return listData;
}
public class EmptyViewHolder extends ViewHolder {
public EmptyViewHolder(@NonNull View itemView) {
super(itemView);
ViewUtils.findViewById(itemView, R.id.imageView, ImageView.class).setImageResource(R.mipmap.ic_addressbook_not_search);
ViewUtils.findViewById(itemView, R.id.textView, TextView.class).setText(R.string.not_data_message_address_book_list);
}
}
public class ViewHolder extends RecyclerView.ViewHolder { public class ViewHolder extends RecyclerView.ViewHolder {
ClipPathCircleImage mAvatar; ClipPathCircleImage mAvatar;
TextView userName; TextView userName;
@ -115,10 +75,6 @@ public class InternalShareAdapter extends RecyclerView.Adapter<InternalShareAdap
} else { } else {
radioButton.setChecked(false); radioButton.setChecked(false);
} }
radioButton.setOnClickListener(view -> {
selectPosition = position;
notifyDataSetChanged();
});
itemView.setOnClickListener(view -> { itemView.setOnClickListener(view -> {
selectPosition = position; selectPosition = position;
notifyDataSetChanged(); notifyDataSetChanged();

View File

@ -1,6 +1,7 @@
package com.yunbao.share.adapters; package com.yunbao.share.adapters;
import android.content.Context; import android.content.Context;
import android.os.Environment;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
@ -14,7 +15,7 @@ import androidx.recyclerview.widget.RecyclerView;
import com.pdlive.shayu.R; import com.pdlive.shayu.R;
import com.yunbao.share.ICallback; import com.yunbao.share.ICallback;
import com.yunbao.share.bean.ShareBean; import com.yunbao.share.bean.ShareBuilder;
import com.yunbao.share.platform.FacebookShare; import com.yunbao.share.platform.FacebookShare;
import com.yunbao.share.platform.Instagram; import com.yunbao.share.platform.Instagram;
import com.yunbao.share.platform.Internal; import com.yunbao.share.platform.Internal;
@ -23,30 +24,21 @@ import com.yunbao.share.platform.MessengerShare;
import com.yunbao.share.platform.TwitterShare; import com.yunbao.share.platform.TwitterShare;
import com.yunbao.share.platform.WhatsApp; import com.yunbao.share.platform.WhatsApp;
import java.io.File;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
public class ShareAppAdapter extends RecyclerView.Adapter<ShareAppAdapter.AppViewHolder> { public class ShareAppAdapter extends RecyclerView.Adapter<ShareAppAdapter.AppViewHolder> {
private Context mContext; private Context mContext;
private List<ShareBean> list; private List<ShareBuilder> list;
ShareCallback shareCallback; ShareCallback shareCallback;
private onShareListener onShareListener;
public ShareAppAdapter.onShareListener getOnShareListener() {
return onShareListener;
}
public void setOnShareListener(ShareAppAdapter.onShareListener onShareListener) {
this.onShareListener = onShareListener;
}
public ShareAppAdapter(Context mContext) { public ShareAppAdapter(Context mContext) {
list = new ArrayList<>(); list = new ArrayList<>();
this.mContext = mContext; this.mContext = mContext;
} }
public void setList(List<ShareBean> list) { public void setList(List<ShareBuilder> list) {
this.list = list; this.list = list;
notifyDataSetChanged(); notifyDataSetChanged();
} }
@ -59,28 +51,27 @@ public class ShareAppAdapter extends RecyclerView.Adapter<ShareAppAdapter.AppVie
@Override @Override
public void onBindViewHolder(@NonNull AppViewHolder holder, int position) { public void onBindViewHolder(@NonNull AppViewHolder holder, int position) {
ShareBean builder = list.get(position); ShareBuilder builder = list.get(position);
System.out.println("------type------>" + builder.getType());
switch (builder.getType()) { switch (builder.getType()) {
case ShareBean.APP_FACEBOOK: case ShareBuilder.APP_FACEBOOK:
holder.setData(builder, R.mipmap.icon_share_facebook, R.string.dialog_share_app_facebook); holder.setData(builder, R.mipmap.icon_share_facebook, R.string.dialog_share_app_facebook);
break; break;
case ShareBean.APP_LINE: case ShareBuilder.APP_LINE:
holder.setData(builder, R.mipmap.icon_share_line, R.string.dialog_share_app_line); holder.setData(builder, R.mipmap.icon_share_line, R.string.dialog_share_app_line);
break; break;
case ShareBean.APP_TWITTER: case ShareBuilder.APP_TWITTER:
holder.setData(builder, R.mipmap.icon_share_twitter, R.string.dialog_share_app_twitter); holder.setData(builder, R.mipmap.icon_share_twitter, R.string.dialog_share_app_twitter);
break; break;
case ShareBean.APP_WHATSAPP: case ShareBuilder.APP_WHATSAPP:
holder.setData(builder, R.mipmap.icon_share_whatsapp, R.string.dialog_share_app_whatsapp); holder.setData(builder, R.mipmap.icon_share_whatsapp, R.string.dialog_share_app_whatsapp);
break; break;
case ShareBean.APP_MESSENGER: case ShareBuilder.APP_MESSENGER:
holder.setData(builder, R.mipmap.icon_share_messenger, R.string.dialog_share_app_messenger); holder.setData(builder, R.mipmap.icon_share_messenger, R.string.dialog_share_app_messenger);
break; break;
case ShareBean.APP_INSTAGRAM: case ShareBuilder.APP_INSTAGRAM:
holder.setData(builder, R.mipmap.icon_share_instagram, R.string.dialog_share_app_instagram); holder.setData(builder, R.mipmap.icon_share_instagram, R.string.dialog_share_app_instagram);
break; break;
case ShareBean.APP_INTERNAL: case ShareBuilder.APP_INTERNAL:
holder.setData(builder, R.mipmap.ic_share_friend, R.string.dialog_share_app_internal); holder.setData(builder, R.mipmap.ic_share_friend, R.string.dialog_share_app_internal);
break; break;
} }
@ -108,44 +99,38 @@ public class ShareAppAdapter extends RecyclerView.Adapter<ShareAppAdapter.AppVie
title = itemView.findViewById(R.id.share_app_name); title = itemView.findViewById(R.id.share_app_name);
} }
public void setData(ShareBean bean, @DrawableRes int iconId, @StringRes int appName) { public void setData(ShareBuilder bean, @DrawableRes int iconId, @StringRes int appName) {
icon.setImageResource(iconId); icon.setImageResource(iconId);
title.setText(appName); title.setText(appName);
itemView.setOnClickListener(v -> { itemView.setOnClickListener(v -> {
switch (bean.getType()) { switch (bean.getType()) {
case ShareBean.APP_FACEBOOK: case ShareBuilder.APP_FACEBOOK:
new FacebookShare(itemView.getContext()).share(bean, new ShareCallback()); new FacebookShare(itemView.getContext()).share(bean, new ShareCallback());
break; break;
case ShareBean.APP_LINE: case ShareBuilder.APP_LINE:
new Line(itemView.getContext()).share(bean, new ShareCallback()); new Line(itemView.getContext()).share(bean, new ShareCallback());
break; break;
case ShareBean.APP_TWITTER: case ShareBuilder.APP_TWITTER:
new TwitterShare(itemView.getContext()).share(bean, new ShareCallback()); new TwitterShare(itemView.getContext()).share(bean, new ShareCallback());
break; break;
case ShareBean.APP_WHATSAPP: case ShareBuilder.APP_WHATSAPP:
new WhatsApp(itemView.getContext()).share(bean, new ShareCallback()); new WhatsApp(itemView.getContext()).share(bean, new ShareCallback());
break; break;
case ShareBean.APP_MESSENGER: case ShareBuilder.APP_MESSENGER:
new MessengerShare(itemView.getContext()).share(bean, new ShareCallback()); new MessengerShare(itemView.getContext()).share(bean, new ShareCallback());
break; break;
case ShareBean.APP_INSTAGRAM: case ShareBuilder.APP_INSTAGRAM:
new Instagram(itemView.getContext()).share(bean, new ShareCallback()); new Instagram(itemView.getContext()).share(bean, new ShareCallback());
break; break;
case ShareBean.APP_INTERNAL: case ShareBuilder.APP_INTERNAL:
new Internal(itemView.getContext()).share(bean, shareCallback); new Internal(itemView.getContext()).share(bean, shareCallback);
break; break;
} }
if (onShareListener != null) {
onShareListener.onAddShareCount();
}
}); });
} }
}
public interface onShareListener {
void onAddShareCount();
}
}
public static class ShareCallback implements ICallback { public static class ShareCallback implements ICallback {
@Override @Override

View File

@ -1,276 +0,0 @@
package com.yunbao.share.bean;
import androidx.annotation.NonNull;
import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.utils.StringUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.share.ui.SharePopDialog;
import java.io.File;
public class ShareBean {
public static final int APP_FACEBOOK = 0;
public static final int APP_LINE = 1;
public static final int APP_TWITTER = 2;
public static final int APP_WHATSAPP = 3;
public static final int APP_MESSENGER = 4;
public static final int APP_INSTAGRAM = 5;
public static final int APP_INTERNAL = 6;
private String text;
private String link;
private File file;
private int type;
private String uid;
private String anchorId;
private String anchorName;
private String anchorAvatar;
private int shareType;
private String cover;
private String title;
private String extraData;
public static String createLiveShareLink(String shareUid, String anchorId, String anchorName, String anchorAvatar) {
return String.format(CommonAppConfig.HOST +
"/index.php?g=Appapi&m=home&a=share&uid=%s&user_id=%s&isGoogle=%s",
anchorId,
shareUid,
CommonAppConfig.IS_GOOGLE_PLAY
);
}
public static String createInviteLink(String shareUid) {
return String.format("https://www.pdlive.com/public/app/download/index.html?user_id=%s&isGoogle=%s",
shareUid,
CommonAppConfig.IS_GOOGLE_PLAY
);
}
public static ShareBean builder(int type) {
return new ShareBean(type);
}
private ShareBean(int type) {
this.type = type;
}
public int getShareType() {
return shareType;
}
public void setShareType(int shareType) {
this.shareType = shareType;
}
public void setType(int type) {
this.type = type;
}
public String getCover() {
return cover;
}
public void setCover(String cover) {
this.cover = cover;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public int getType() {
return type;
}
public String getUid() {
return uid;
}
public void setUid(String uid) {
this.uid = uid;
}
public String getAnchorId() {
return anchorId;
}
public void setAnchorId(String anchorId) {
this.anchorId = anchorId;
}
public String getAnchorName() {
return anchorName;
}
public void setAnchorName(String anchorName) {
this.anchorName = anchorName;
}
public String getAnchorAvatar() {
return anchorAvatar;
}
public void setAnchorAvatar(String anchorAvatar) {
this.anchorAvatar = anchorAvatar;
}
public String getExtraData() {
return extraData;
}
public void setExtraData(String extraData) {
this.extraData = extraData;
}
public ShareBean setText(String text) {
this.text = text;
return this;
}
public ShareBean setLink(String link) {
this.link = link;
return this;
}
public ShareBean setFile(File file) {
this.file = file;
return this;
}
public String getText() {
if (StringUtil.isEmpty(text)) {
return getLink();
}
return text + "\n" + getLink();
}
public String getLink() {
if (StringUtil.isEmpty(link)) {
link = createLiveShareLink(uid, anchorId, anchorName, anchorAvatar);
}
return link;
}
public File getFile() {
return file;
}
@NonNull
@Override
public String toString() {
return "ShareBuilder{" +
"text='" + text + '\'' +
", link='" + link + '\'' +
", file=" + file +
'}';
}
/**
* private String text;
* private String link;
* private File file;
* private int type;
* private String uid;
* private String anchorId;
* private String anchorName;
* private String anchorAvatar;
* private int shareType;
* private String cover;
* private String title;
*/
@NonNull
@Override
public ShareBean clone() {
ShareBean bean = new ShareBean(type);
bean.anchorId = anchorId;
bean.anchorName = anchorName;
bean.anchorAvatar = anchorAvatar;
bean.text = text;
bean.link = link;
bean.file = file;
bean.uid = uid;
bean.shareType = shareType;
bean.cover = cover;
bean.title = title;
bean.extraData = extraData;
return bean;
}
public static class ShareBuilder {
ShareBean bean;
public ShareBuilder() {
bean = new ShareBean(APP_FACEBOOK);
}
public ShareBuilder setShareType(int shareType) {
bean.setShareType(shareType);
return this;
}
public ShareBuilder setCover(String cover) {
bean.setCover(cover);
return this;
}
public ShareBuilder setTitle(String title) {
bean.setTitle(title);
return this;
}
public ShareBuilder setUid(String uid) {
bean.setUid(uid);
return this;
}
public ShareBuilder setAnchorId(String anchorId) {
bean.setAnchorId(anchorId);
return this;
}
public ShareBuilder setAnchorName(String anchorName) {
bean.setAnchorName(anchorName);
return this;
}
public ShareBuilder setAnchorAvatar(String anchorAvatar) {
bean.setAnchorAvatar(anchorAvatar);
return this;
}
public ShareBuilder setText(String text) {
bean.setText(text);
return this;
}
public ShareBuilder setLink(String link) {
bean.setLink(link);
return this;
}
public ShareBuilder setFile(File file) {
bean.setFile(file);
return this;
}
public ShareBuilder setExtraData(String extraData) {
bean.setExtraData(extraData);
return this;
}
public ShareBean build() {
return bean;
}
public static ShareBuilder create() {
return new ShareBuilder();
}
}
}

View File

@ -0,0 +1,135 @@
package com.yunbao.share.bean;
import androidx.annotation.NonNull;
import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.CommonAppContext;
import com.yunbao.common.manager.IMLoginManager;
import com.yunbao.common.utils.StringUtil;
import java.io.File;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.Locale;
public class ShareBuilder {
public static final int APP_FACEBOOK = 0;
public static final int APP_LINE = 1;
public static final int APP_TWITTER = 2;
public static final int APP_WHATSAPP = 3;
public static final int APP_MESSENGER = 4;
public static final int APP_INSTAGRAM = 5;
public static final int APP_INTERNAL = 6;
private String text;
private String link;
private File file;
private int type;
private String uid;
private String anchorId;
private String anchorName;
private String anchorAvatar;
public static String createLiveShareLink(String shareUid, String anchorId, String anchorName, String anchorAvatar) {
return String.format(CommonAppConfig.HOST +
"/index.php?g=Appapi&m=home&a=share&uid=%s&user_id=%s&isGoogle=%s",
anchorId,
shareUid,
CommonAppConfig.IS_GOOGLE_PLAY
);
}
public static String createInviteLink(String shareUid) {
return String.format("https://www.pdlive.com/public/app/download/index.html?user_id=%s&isGoogle=%s",
shareUid,
CommonAppConfig.IS_GOOGLE_PLAY
);
}
public static ShareBuilder builder(int type) {
return new ShareBuilder(type);
}
private ShareBuilder(int type) {
this.type = type;
}
public int getType() {
return type;
}
public String getUid() {
return uid;
}
public void setUid(String uid) {
this.uid = uid;
}
public String getAnchorId() {
return anchorId;
}
public void setAnchorId(String anchorId) {
this.anchorId = anchorId;
}
public String getAnchorName() {
return anchorName;
}
public void setAnchorName(String anchorName) {
this.anchorName = anchorName;
}
public String getAnchorAvatar() {
return anchorAvatar;
}
public void setAnchorAvatar(String anchorAvatar) {
this.anchorAvatar = anchorAvatar;
}
public ShareBuilder setText(String text) {
this.text = text;
return this;
}
public ShareBuilder setLink(String link) {
this.link = link;
return this;
}
public ShareBuilder setFile(File file) {
this.file = file;
return this;
}
public String getText() {
if (StringUtil.isEmpty(text)) {
return getLink();
}
return text + "\n" + getLink();
}
public String getLink() {
if (StringUtil.isEmpty(link)) {
link = createLiveShareLink(uid, anchorId, anchorName, anchorAvatar);
}
return link;
}
public File getFile() {
return file;
}
@NonNull
@Override
public String toString() {
return "ShareBuilder{" +
"text='" + text + '\'' +
", link='" + link + '\'' +
", file=" + file +
'}';
}
}

View File

@ -12,9 +12,10 @@ import com.facebook.FacebookException;
import com.facebook.share.Sharer; import com.facebook.share.Sharer;
import com.facebook.share.model.ShareLinkContent; import com.facebook.share.model.ShareLinkContent;
import com.facebook.share.widget.ShareDialog; import com.facebook.share.widget.ShareDialog;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.share.AbsShareInterface; import com.yunbao.share.AbsShareInterface;
import com.yunbao.share.ICallback; import com.yunbao.share.ICallback;
import com.yunbao.share.bean.ShareBean; import com.yunbao.share.bean.ShareBuilder;
public class FacebookShare extends AbsShareInterface { public class FacebookShare extends AbsShareInterface {
public static CallbackManager callbackManager; public static CallbackManager callbackManager;
@ -23,7 +24,7 @@ public class FacebookShare extends AbsShareInterface {
} }
@Override @Override
public void share(ShareBean builder, ICallback callback) { public void share(ShareBuilder builder, ICallback callback) {
callbackManager= CallbackManager.Factory.create(); callbackManager= CallbackManager.Factory.create();
ShareLinkContent content = new ShareLinkContent.Builder() ShareLinkContent content = new ShareLinkContent.Builder()
.setContentUrl(Uri.parse(builder.getLink())) .setContentUrl(Uri.parse(builder.getLink()))

View File

@ -6,7 +6,7 @@ import android.net.Uri;
import com.yunbao.share.AbsShareInterface; import com.yunbao.share.AbsShareInterface;
import com.yunbao.share.ICallback; import com.yunbao.share.ICallback;
import com.yunbao.share.bean.ShareBean; import com.yunbao.share.bean.ShareBuilder;
public class Instagram extends AbsShareInterface { public class Instagram extends AbsShareInterface {
public Instagram(Context context) { public Instagram(Context context) {
@ -14,7 +14,7 @@ public class Instagram extends AbsShareInterface {
} }
@Override @Override
public void share(ShareBean builder, ICallback callback) { public void share(ShareBuilder builder, ICallback callback) {
String type = "image/*"; String type = "image/*";
Intent share = new Intent(Intent.ACTION_SEND); Intent share = new Intent(Intent.ACTION_SEND);
Uri uri = fileToUri(builder.getFile()); Uri uri = fileToUri(builder.getFile());

View File

@ -3,24 +3,20 @@ package com.yunbao.share.platform;
import android.content.Context; import android.content.Context;
import com.yunbao.common.interfaces.OnItemClickListener; import com.yunbao.common.interfaces.OnItemClickListener;
import com.yunbao.common.interfaces.OnSendMessageListener; import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.message.content.MessageChatCardContent;
import com.yunbao.share.AbsShareInterface; import com.yunbao.share.AbsShareInterface;
import com.yunbao.share.ICallback; import com.yunbao.share.ICallback;
import com.yunbao.share.bean.ShareBean; import com.yunbao.share.bean.ShareBuilder;
import com.yunbao.share.ui.AppInternalShareDialog; import com.yunbao.share.ui.AppInternalShareDialog;
import com.yunbao.share.ui.SharePopDialog;
import com.yunbao.share.ui.ShareSuccessNotifyDialog; import com.yunbao.share.ui.ShareSuccessNotifyDialog;
import io.rong.imlib.model.Conversation;
public class Internal extends AbsShareInterface { public class Internal extends AbsShareInterface {
public Internal(Context context) { public Internal(Context context) {
super(context); super(context);
} }
@Override @Override
public void share(ShareBean builder, ICallback callback) { public void share(ShareBuilder builder, ICallback callback) {
new AppInternalShareDialog(mContext) new AppInternalShareDialog(mContext)
.setOnItemClickListener(new OnItemClickListener<String>() { .setOnItemClickListener(new OnItemClickListener<String>() {
@Override @Override
@ -30,36 +26,10 @@ public class Internal extends AbsShareInterface {
return; return;
} }
builder.setUid(toUid); builder.setUid(toUid);
sendMessage(builder);
new ShareSuccessNotifyDialog(mContext, builder) new ShareSuccessNotifyDialog(mContext, builder)
.showDialog(); .showDialog();
callback.onSuccess(); callback.onSuccess();
} }
}).showDialog(); }).showDialog();
} }
void sendMessage(ShareBean builder) {
MessageChatCardContent.sendMessage(Conversation.ConversationType.PRIVATE, builder.getUid(),
MessageChatCardContent.obtain(
builder.getCover(),
builder.getTitle(),
builder.getAnchorAvatar(),
builder.getAnchorName(),
builder.getAnchorId(),
builder.getShareType() + "",
builder.getExtraData()
),
new OnSendMessageListener<Object>() {
@Override
public void onSuccess(String token, Object bean) {
super.onSuccess(token, bean);
}
@Override
public void onError(int status, String msg) {
super.onError(status, msg);
}
}
);
}
} }

View File

@ -6,7 +6,7 @@ import android.net.Uri;
import com.yunbao.share.AbsShareInterface; import com.yunbao.share.AbsShareInterface;
import com.yunbao.share.ICallback; import com.yunbao.share.ICallback;
import com.yunbao.share.bean.ShareBean; import com.yunbao.share.bean.ShareBuilder;
import java.net.URLEncoder; import java.net.URLEncoder;
@ -17,7 +17,7 @@ public class Line extends AbsShareInterface {
} }
@Override @Override
public void share(ShareBean builder, ICallback callback) { public void share(ShareBuilder builder, ICallback callback) {
try { try {
Intent share = new Intent(Intent.ACTION_VIEW, Uri.parse("https://line.me/R/share?text=" + URLEncoder.encode(builder.getText(), "UTF-8"))); Intent share = new Intent(Intent.ACTION_VIEW, Uri.parse("https://line.me/R/share?text=" + URLEncoder.encode(builder.getText(), "UTF-8")));
mContext.startActivity(share); mContext.startActivity(share);

View File

@ -13,9 +13,10 @@ import com.facebook.FacebookSdk;
import com.facebook.share.Sharer; import com.facebook.share.Sharer;
import com.facebook.share.model.ShareLinkContent; import com.facebook.share.model.ShareLinkContent;
import com.facebook.share.widget.MessageDialog; import com.facebook.share.widget.MessageDialog;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.share.AbsShareInterface; import com.yunbao.share.AbsShareInterface;
import com.yunbao.share.ICallback; import com.yunbao.share.ICallback;
import com.yunbao.share.bean.ShareBean; import com.yunbao.share.bean.ShareBuilder;
public class MessengerShare extends AbsShareInterface { public class MessengerShare extends AbsShareInterface {
public static CallbackManager callbackManager; public static CallbackManager callbackManager;
@ -26,7 +27,7 @@ public class MessengerShare extends AbsShareInterface {
} }
@Override @Override
public void share(ShareBean builder, ICallback callback) { public void share(ShareBuilder builder, ICallback callback) {
callbackManager = CallbackManager.Factory.create(); callbackManager = CallbackManager.Factory.create();
ShareLinkContent content = new ShareLinkContent.Builder() ShareLinkContent content = new ShareLinkContent.Builder()
.setContentUrl(Uri.parse(builder.getLink())) .setContentUrl(Uri.parse(builder.getLink()))

View File

@ -7,7 +7,7 @@ import android.net.Uri;
import com.twitter.sdk.android.core.Twitter; import com.twitter.sdk.android.core.Twitter;
import com.yunbao.share.AbsShareInterface; import com.yunbao.share.AbsShareInterface;
import com.yunbao.share.ICallback; import com.yunbao.share.ICallback;
import com.yunbao.share.bean.ShareBean; import com.yunbao.share.bean.ShareBuilder;
import java.net.URLEncoder; import java.net.URLEncoder;
@ -19,7 +19,7 @@ public class TwitterShare extends AbsShareInterface {
} }
@Override @Override
public void share(ShareBean date, ICallback callback) { public void share(ShareBuilder date, ICallback callback) {
/* /*
new TwitterAuthClient().authorize((Activity) mContext, new Callback<TwitterSession>() { new TwitterAuthClient().authorize((Activity) mContext, new Callback<TwitterSession>() {

View File

@ -5,7 +5,7 @@ import android.content.Intent;
import com.yunbao.share.AbsShareInterface; import com.yunbao.share.AbsShareInterface;
import com.yunbao.share.ICallback; import com.yunbao.share.ICallback;
import com.yunbao.share.bean.ShareBean; import com.yunbao.share.bean.ShareBuilder;
public class WhatsApp extends AbsShareInterface { public class WhatsApp extends AbsShareInterface {
public WhatsApp(Context context) { public WhatsApp(Context context) {
@ -13,7 +13,7 @@ public class WhatsApp extends AbsShareInterface {
} }
@Override @Override
public void share(ShareBean builder, ICallback callback) { public void share(ShareBuilder builder, ICallback callback) {
try { try {
Intent sendIntent = new Intent(); Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND); sendIntent.setAction(Intent.ACTION_SEND);

View File

@ -1,34 +1,24 @@
package com.yunbao.share.ui; package com.yunbao.share.ui;
import android.content.Context; import android.content.Context;
import android.net.Uri;
import android.text.Editable;
import android.text.TextUtils;
import android.text.TextWatcher;
import android.util.Log;
import android.widget.EditText; import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.lxj.xpopup.XPopup; import com.lxj.xpopup.XPopup;
import com.pdlive.shayu.R; import com.pdlive.shayu.R;
import com.yunbao.common.bean.UserBean; import com.yunbao.common.bean.MessageChatUserBean;
import com.yunbao.common.dialog.AbsDialogFullScreenPopupWindow; import com.yunbao.common.dialog.AbsDialogFullScreenPopupWindow;
import com.yunbao.common.dialog.DebugDialog;
import com.yunbao.common.http.CommonHttpUtil;
import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.interfaces.OnItemClickListener; import com.yunbao.common.interfaces.OnItemClickListener;
import com.yunbao.common.manager.InstructorRemarkManager;
import com.yunbao.common.utils.AppManager;
import com.yunbao.common.utils.StringUtil;
import com.yunbao.common.utils.ToastUtil; import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.ViewUtils;
import com.yunbao.share.adapters.InternalShareAdapter; import com.yunbao.share.adapters.InternalShareAdapter;
import com.yunbao.share.bean.ShareBuilder;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Iterator;
import java.util.List; import java.util.List;
import io.rong.imkit.conversationlist.model.SingleConversation; import io.rong.imkit.conversationlist.model.SingleConversation;
@ -41,8 +31,8 @@ import io.rong.imkit.widget.refresh.wrapper.RongRefreshHeader;
import io.rong.imlib.IRongCoreCallback; import io.rong.imlib.IRongCoreCallback;
import io.rong.imlib.IRongCoreEnum; import io.rong.imlib.IRongCoreEnum;
import io.rong.imlib.RongCoreClient; import io.rong.imlib.RongCoreClient;
import io.rong.imlib.RongIMClient;
import io.rong.imlib.model.Conversation; import io.rong.imlib.model.Conversation;
import io.rong.imlib.model.UserInfo;
public class AppInternalShareDialog extends AbsDialogFullScreenPopupWindow { public class AppInternalShareDialog extends AbsDialogFullScreenPopupWindow {
EditText search; EditText search;
@ -82,54 +72,19 @@ public class AppInternalShareDialog extends AbsDialogFullScreenPopupWindow {
dismiss(); dismiss();
}); });
findViewById(R.id.btn_share).setOnClickListener(view -> { findViewById(R.id.btn_share).setOnClickListener(view -> {
if (adapter.getSelectPosition() == -1) {
ToastUtil.show(R.string.dialog_share_failure_not_select);
return;
}
if (onItemClickListener != null) { if (onItemClickListener != null) {
onItemClickListener.onItemClick(adapter.getListData().get(adapter.getSelectPosition()).mCore.getTargetId(), adapter.getSelectPosition()); onItemClickListener.onItemClick(listData.get(adapter.getSelectPosition()).mCore.getTargetId(), adapter.getSelectPosition());
} }
dismiss(); dismiss();
}); });
search = findViewById(R.id.search); search = findViewById(R.id.search);
mList = findViewById(R.id.recyclerView); mList = findViewById(R.id.recyclerView);
mRefreshLayout = findViewById(R.id.rc_refresh); mRefreshLayout = findViewById(R.id.rc_refresh);
adapter = new InternalShareAdapter(mContext); adapter = new InternalShareAdapter();
mList.setAdapter(adapter); mList.setAdapter(adapter);
initRefreshView(); initRefreshView();
refreshData(); refreshData();
search.addTextChangedListener(new TextWatcher() {
List<SingleConversation> searchList = new ArrayList<>();
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void afterTextChanged(Editable editable) {
String key = editable.toString();
searchList.clear();
if (StringUtil.isEmpty(key)) {
adapter.setList(listData);
return;
}
for (SingleConversation datum : listData) {
if (datum.mCore.getConversationTitle().contains(key)) {
searchList.add(datum);
}
}
adapter.setList(searchList);
}
});
} }
@ -154,7 +109,6 @@ public class AppInternalShareDialog extends AbsDialogFullScreenPopupWindow {
} }
private void onConversationListRefresh(RefreshLayout refreshLayout) { private void onConversationListRefresh(RefreshLayout refreshLayout) {
search.setText("");
listData.clear(); listData.clear();
startTime = 0; startTime = 0;
refreshData(); refreshData();
@ -162,72 +116,22 @@ public class AppInternalShareDialog extends AbsDialogFullScreenPopupWindow {
private void refreshData() { private void refreshData() {
RongCoreClient.getInstance().getConversationListByPage(new IRongCoreCallback.ResultCallback<List<Conversation>>() { RongCoreClient.getInstance().getConversationListByPage(new IRongCoreCallback.ResultCallback<List<Conversation>>() {
boolean isNeedData = false;
List<String> needUidList = new ArrayList<>();
@Override @Override
public void onSuccess(List<Conversation> conversations) { public void onSuccess(List<Conversation> conversations) {
isNeedData = false;
needUidList.clear();
if (conversations.isEmpty()) { if (conversations.isEmpty()) {
mRefreshLayout.finishLoadMoreWithNoMoreData(); mRefreshLayout.finishLoadMoreWithNoMoreData();
return; return;
} }
List<SingleConversation> tmp = new ArrayList<>(); List<SingleConversation> tmp = new ArrayList<>();
for (Conversation conversation : conversations) { for (Conversation conversation : conversations) {
if(conversation.getTargetId().contains("__system__")){
continue;
}
if (StringUtil.isEmpty(conversation.getPortraitUrl())) {
isNeedData = true;
needUidList.add(conversation.getTargetId());
continue;
}
tmp.add(new SingleConversation(getContext(), conversation)); tmp.add(new SingleConversation(getContext(), conversation));
} }
if (isNeedData) {
checkUserData();
return;
}
startTime = conversations.get(conversations.size() - 1).getSentTime(); startTime = conversations.get(conversations.size() - 1).getSentTime();
listData.addAll(tmp); listData.addAll(tmp);
adapter.setList(listData); adapter.setList(listData);
mRefreshLayout.finishRefresh(true); mRefreshLayout.finishRefresh(true);
} }
private void checkUserData() {
Iterator<String> iterator = needUidList.iterator();
while (iterator.hasNext()) {
String userId = iterator.next();
CommonHttpUtil.getUserBaseinfo(userId, new HttpCallback() {
@Override
public void onSuccess(int code, String msg, String[] info) {
if (code == 0 && info.length > 0 && !TextUtils.equals("__system__", userId)) {
JSONObject obj = JSON.parseObject(info[0]);
UserBean userBean = JSON.toJavaObject(obj, UserBean.class);
needUidList.remove(userBean.getId());
UserInfo userInfo = new UserInfo(userBean.getId(), userBean.getUserNiceName(), Uri.parse(userBean.getAvatar()));
userInfo.setExtra(obj.toString());
RongUserInfoManager.getInstance().refreshUserInfoCache(userInfo);
Conversation conversation=new Conversation();
conversation.setTargetId(userBean.getId());
conversation.setConversationTitle(userBean.getUserNiceName());
conversation.setPortraitUrl(userBean.getAvatar());
SingleConversation singleConversation = new SingleConversation(getContext(), conversation);
listData.add(singleConversation);
if (needUidList.isEmpty()) {
adapter.setList(listData);
mRefreshLayout.finishRefresh(true);
}
} else {
Log.i("刷新用户", "3>" + code + "|" + msg + "|" + info.length);
}
}
});
}
}
@Override @Override
public void onError(IRongCoreEnum.CoreErrorCode e) { public void onError(IRongCoreEnum.CoreErrorCode e) {
ToastUtil.show("出错了:" + e.getMessage()); ToastUtil.show("出错了:" + e.getMessage());

View File

@ -2,12 +2,14 @@ package com.yunbao.share.ui;
import static android.content.Context.CLIPBOARD_SERVICE; import static android.content.Context.CLIPBOARD_SERVICE;
import android.app.Dialog;
import android.content.ClipData; import android.content.ClipData;
import android.content.ClipboardManager; import android.content.ClipboardManager;
import android.content.Context; import android.content.Context;
import android.graphics.Color; import android.graphics.Color;
import android.graphics.LinearGradient; import android.graphics.LinearGradient;
import android.graphics.Shader; import android.graphics.Shader;
import android.view.ViewTreeObserver;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.TextView; import android.widget.TextView;
@ -20,8 +22,10 @@ import com.makeramen.roundedimageview.RoundedImageView;
import com.pdlive.shayu.R; import com.pdlive.shayu.R;
import com.yunbao.common.CommonAppConfig; import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.dialog.AbsDialogPopupWindow; import com.yunbao.common.dialog.AbsDialogPopupWindow;
import com.yunbao.common.utils.DialogUitl;
import com.yunbao.common.utils.ToastUtil; import com.yunbao.common.utils.ToastUtil;
import com.yunbao.share.bean.ShareBean; import com.yunbao.common.utils.WordUtil;
import com.yunbao.share.bean.ShareBuilder;
import com.yunbao.share.adapters.ShareAppAdapter; import com.yunbao.share.adapters.ShareAppAdapter;
import java.util.ArrayList; import java.util.ArrayList;
@ -34,7 +38,7 @@ public class InvitePopDialog extends AbsDialogPopupWindow {
private TextView info; private TextView info;
private TextView link; private TextView link;
private TextView title; private TextView title;
private List<ShareBean> data; private List<ShareBuilder> data;
private String uid; private String uid;
private String anchorId; private String anchorId;
@ -119,18 +123,18 @@ public class InvitePopDialog extends AbsDialogPopupWindow {
private void initData() { private void initData() {
data = new ArrayList<>(); data = new ArrayList<>();
data.add(builder(ShareBean.APP_FACEBOOK)); data.add(builder(ShareBuilder.APP_FACEBOOK));
data.add(builder(ShareBean.APP_LINE)); data.add(builder(ShareBuilder.APP_LINE));
data.add(builder(ShareBean.APP_TWITTER)); data.add(builder(ShareBuilder.APP_TWITTER));
data.add(builder(ShareBean.APP_WHATSAPP)); data.add(builder(ShareBuilder.APP_WHATSAPP));
data.add(builder(ShareBean.APP_MESSENGER)); data.add(builder(ShareBuilder.APP_MESSENGER));
// data.add(builder(ShareBuilder.APP_INSTAGRAM)); // data.add(builder(ShareBuilder.APP_INSTAGRAM));
adapter.setList(data); adapter.setList(data);
} }
private ShareBean builder(int type) { private ShareBuilder builder(int type) {
ShareBean builder = ShareBean.builder(type); ShareBuilder builder = ShareBuilder.builder(type);
builder.setText(getContext().getString(R.string.dialog_invite_info)); builder.setText(getContext().getString(R.string.dialog_invite_info));
builder.setLink(url); builder.setLink(url);
builder.setUid(uid); builder.setUid(uid);

View File

@ -12,51 +12,55 @@ import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import com.lxj.xpopup.XPopup; import com.lxj.xpopup.XPopup;
import com.lxj.xpopup.util.XPopupUtils;
import com.makeramen.roundedimageview.RoundedImageView; import com.makeramen.roundedimageview.RoundedImageView;
import com.pdlive.shayu.R; import com.pdlive.shayu.R;
import com.yunbao.common.dialog.AbsDialogCenterPopupWindow;
import com.yunbao.common.dialog.AbsDialogPopupWindow; import com.yunbao.common.dialog.AbsDialogPopupWindow;
import com.yunbao.common.glide.ImgLoader; import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.utils.StringUtil; import com.yunbao.common.utils.StringUtil;
import com.yunbao.common.utils.ToastUtil; import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil; import com.yunbao.common.utils.WordUtil;
import com.yunbao.share.adapters.ShareAppAdapter; import com.yunbao.share.adapters.ShareAppAdapter;
import com.yunbao.share.bean.ShareBean; import com.yunbao.share.bean.ShareBuilder;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
public class SharePopDialog extends AbsDialogPopupWindow { public class SharePopDialog extends AbsDialogPopupWindow {
public static final int TYPE_LIVE = 1;
public static final int TYPE_DYNAMIC = 0;
public static final int TYPE_VIDEO = 2;
private ShareAppAdapter adapter; private ShareAppAdapter adapter;
private RecyclerView list; private RecyclerView list;
private RoundedImageView avatar; private RoundedImageView avatar;
private TextView info; private TextView info;
private TextView link; private TextView link;
private List<ShareBean> data; private List<ShareBuilder> data;
private String uid;
private String anchorId;
private String anchorName;
private String anchorAvatar;
private String shareLink; private String shareLink;
private int type;
private ShareBean bean;
public onShareListener onShareListener;
public void setOnShareListener(SharePopDialog.onShareListener onShareListener) {
this.onShareListener = onShareListener;
}
public SharePopDialog(@NonNull Context context) { public SharePopDialog(@NonNull Context context) {
super(context); super(context);
} }
public SharePopDialog setShareType(int type) { public SharePopDialog setUid(String uid) {
this.type = type; this.uid = uid;
return this; return this;
} }
public SharePopDialog setShareData(ShareBean build) { public SharePopDialog setAnchorId(String anchorId) {
this.bean = build; this.anchorId = anchorId;
return this;
}
public SharePopDialog setAnchorName(String anchorName) {
this.anchorName = anchorName;
return this;
}
public SharePopDialog setAnchorAvatar(String anchorAvatar) {
this.anchorAvatar = anchorAvatar;
return this; return this;
} }
@ -85,21 +89,13 @@ public class SharePopDialog extends AbsDialogPopupWindow {
info = findViewById(R.id.share_info); info = findViewById(R.id.share_info);
link = findViewById(R.id.share_link); link = findViewById(R.id.share_link);
adapter = new ShareAppAdapter(getContext()); adapter = new ShareAppAdapter(getContext());
adapter.setOnShareStatusListener(new ShareAppAdapter.ShareCallback() { adapter.setOnShareStatusListener(new ShareAppAdapter.ShareCallback(){
@Override @Override
public void onSuccess() { public void onSuccess() {
super.onSuccess(); super.onSuccess();
dismiss(); dismiss();
} }
}); });
adapter.setOnShareListener(new ShareAppAdapter.onShareListener() {
@Override
public void onAddShareCount() {
if (onShareListener != null) {
onShareListener.onShareAddCount();
}
}
});
list.setLayoutManager(new GridLayoutManager(getContext(), 3)); list.setLayoutManager(new GridLayoutManager(getContext(), 3));
list.setAdapter(adapter); list.setAdapter(adapter);
initData(); initData();
@ -107,16 +103,16 @@ public class SharePopDialog extends AbsDialogPopupWindow {
private void initData() { private void initData() {
data = new ArrayList<>(); data = new ArrayList<>();
data.add(builder(ShareBean.APP_FACEBOOK)); data.add(builder(ShareBuilder.APP_FACEBOOK));
data.add(builder(ShareBean.APP_LINE)); data.add(builder(ShareBuilder.APP_LINE));
data.add(builder(ShareBean.APP_TWITTER)); data.add(builder(ShareBuilder.APP_TWITTER));
data.add(builder(ShareBean.APP_WHATSAPP)); data.add(builder(ShareBuilder.APP_WHATSAPP));
data.add(builder(ShareBean.APP_MESSENGER)); data.add(builder(ShareBuilder.APP_MESSENGER));
data.add(builder(ShareBean.APP_INTERNAL)); data.add(builder(ShareBuilder.APP_INTERNAL));
adapter.setList(data); adapter.setList(data);
String url; String url;
if (shareLink == null) { if (shareLink == null) {
url = ShareBean.createLiveShareLink(bean.getUid(), bean.getAnchorId(), bean.getAnchorName(), bean.getAnchorAvatar()).substring(0, 40) + "..."; url = ShareBuilder.createLiveShareLink(uid, anchorId, anchorName, anchorAvatar).substring(0, 40) + "...";
} else { } else {
if (shareLink.length() > 40) { if (shareLink.length() > 40) {
url = shareLink.substring(0, 40) + "..."; url = shareLink.substring(0, 40) + "...";
@ -126,14 +122,20 @@ public class SharePopDialog extends AbsDialogPopupWindow {
} }
url = url + "&isZh=" + (WordUtil.isNewZh() ? "1" : 0); url = url + "&isZh=" + (WordUtil.isNewZh() ? "1" : 0);
link.setText(url); link.setText(url);
info.setText(String.format(getContext().getString(R.string.dialog_share_info), StringUtil.isEmpty(bean.getAnchorName()) ? "" : bean.getAnchorName())); info.setText(String.format(getContext().getString(R.string.dialog_share_info), StringUtil.isEmpty(anchorName) ? "" : anchorName));
ImgLoader.display(getContext(), bean.getAnchorAvatar(), avatar); ImgLoader.display(getContext(), anchorAvatar, avatar);
} }
private ShareBean builder(int type) { private ShareBuilder builder(int type) {
ShareBean builder = bean.clone(); ShareBuilder builder = ShareBuilder.builder(type);
builder.setType(type); builder.setText(String.format(getContext().getString(R.string.dialog_share_info), StringUtil.isEmpty(anchorName) ? "" : anchorName));
builder.setText(String.format(getContext().getString(R.string.dialog_share_info), StringUtil.isEmpty(bean.getAnchorName()) ? "" : bean.getAnchorName())); builder.setUid(uid);
builder.setAnchorId(anchorId);
builder.setAnchorName(anchorName);
builder.setAnchorAvatar(anchorAvatar);
if (shareLink != null) {
builder.setLink(shareLink);
}
return builder; return builder;
} }
@ -142,16 +144,11 @@ public class SharePopDialog extends AbsDialogPopupWindow {
if (shareLink != null) { if (shareLink != null) {
url = shareLink; url = shareLink;
} else { } else {
url = ShareBean.createLiveShareLink(bean.getUid(), bean.getAnchorId(), bean.getAnchorName(), bean.getAnchorAvatar()); url = ShareBuilder.createLiveShareLink(uid, anchorId, anchorName, anchorAvatar);
} }
ClipboardManager cm = (ClipboardManager) getContext().getSystemService(CLIPBOARD_SERVICE); ClipboardManager cm = (ClipboardManager) getContext().getSystemService(CLIPBOARD_SERVICE);
ClipData clipData = ClipData.newPlainText("text", info.getText().toString() + "\n" + url + "&isZh=" + (WordUtil.isNewZh() ? "1" : 0)); ClipData clipData = ClipData.newPlainText("text", info.getText().toString() + "\n" + url + "&isZh=" + (WordUtil.isNewZh() ? "1" : 0));
cm.setPrimaryClip(clipData); cm.setPrimaryClip(clipData);
ToastUtil.show(getContext().getString(com.yunbao.common.R.string.copy_success)); ToastUtil.show(getContext().getString(com.yunbao.common.R.string.copy_success));
} }
public interface onShareListener {
void onShareAddCount();
}
} }

View File

@ -11,17 +11,19 @@ import androidx.annotation.NonNull;
import com.lxj.xpopup.XPopup; import com.lxj.xpopup.XPopup;
import com.lxj.xpopup.enums.PopupAnimation; import com.lxj.xpopup.enums.PopupAnimation;
import com.pdlive.shayu.R; import com.pdlive.shayu.R;
import com.yunbao.common.bean.MessageUserInfoBean;
import com.yunbao.common.custom.RatioRoundImageView; import com.yunbao.common.custom.RatioRoundImageView;
import com.yunbao.common.dialog.AbsDialogCenterPopupWindow;
import com.yunbao.common.dialog.AbsDialogPositionPopupWindow; import com.yunbao.common.dialog.AbsDialogPositionPopupWindow;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.utils.DpUtil; import com.yunbao.common.utils.DpUtil;
import com.yunbao.share.bean.ShareBean; import com.yunbao.common.utils.StringUtil;
import com.yunbao.share.bean.ShareBuilder;
import io.rong.imkit.utils.RouteUtils; import io.rong.imkit.utils.RouteUtils;
import io.rong.imlib.model.Conversation; import io.rong.imlib.model.Conversation;
public class ShareSuccessNotifyDialog extends AbsDialogCenterPopupWindow { public class ShareSuccessNotifyDialog extends AbsDialogPositionPopupWindow {
private ShareBean bean; private ShareBuilder bean;
private DialogInterface.OnDismissListener onDismissListener; private DialogInterface.OnDismissListener onDismissListener;
private TextView anchorName; private TextView anchorName;
@ -32,7 +34,7 @@ public class ShareSuccessNotifyDialog extends AbsDialogCenterPopupWindow {
super(context); super(context);
} }
public ShareSuccessNotifyDialog(@NonNull Context context, ShareBean bean) { public ShareSuccessNotifyDialog(@NonNull Context context, ShareBuilder bean) {
super(context); super(context);
this.bean = bean; this.bean = bean;
} }

View File

@ -95,7 +95,7 @@
android:layout_width="168dp" android:layout_width="168dp"
android:layout_height="54dp" android:layout_height="54dp"
android:layout_marginBottom="20dp" android:layout_marginBottom="20dp"
android:background="@drawable/bg_msg_address_book_user_btn_fan_cuia" android:background="@drawable/bg_msg_address_book_user_btn_fan"
android:gravity="center" android:gravity="center"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"

View File

@ -5,12 +5,11 @@
<string name="dialog_invite_title">Invite Friends</string> <string name="dialog_invite_title">Invite Friends</string>
<string name="dialog_invite_info">Come to PDLIVE to discover more and better live streams.</string> <string name="dialog_invite_info">Come to PDLIVE to discover more and better live streams.</string>
<string name="dialog_share_copy">Copy</string> <string name="dialog_share_copy">Copy</string>
<string name="dialog_share_app_internal">Site friends</string> <string name="dialog_share_app_internal">Friend</string>
<string name="dialog_share_internal_title">Share To</string> <string name="dialog_share_internal_title">Share To</string>
<string name="dialog_share_internal_cancel">cancel</string> <string name="dialog_share_internal_cancel">cancel</string>
<string name="dialog_share_internal_search">Search nickname</string> <string name="dialog_share_internal_search">Search</string>
<string name="dialog_share_internal_list_btn">Send</string> <string name="dialog_share_internal_list_btn">Share</string>
<string name="dialog_share_success">Share success</string> <string name="dialog_share_success">Success</string>
<string name="dialog_share_success_btn">Go chat</string> <string name="dialog_share_success_btn">Chat</string>
<string name="dialog_share_failure_not_select">Please select friends</string>
</resources> </resources>

View File

@ -21,5 +21,4 @@
<string name="dialog_share_internal_list_btn">發送</string> <string name="dialog_share_internal_list_btn">發送</string>
<string name="dialog_share_success">分享成功</string> <string name="dialog_share_success">分享成功</string>
<string name="dialog_share_success_btn">去聊聊</string> <string name="dialog_share_success_btn">去聊聊</string>
<string name="dialog_share_failure_not_select">请选择好友</string>
</resources> </resources>

View File

@ -4,9 +4,11 @@ apply plugin: 'com.google.gms.google-services'
apply plugin: 'com.google.firebase.crashlytics' apply plugin: 'com.google.firebase.crashlytics'
apply plugin: 'com.alibaba.arouter' apply plugin: 'com.alibaba.arouter'
android { android {
namespace "com.pandoralive.shayu"
dexOptions { dexOptions {
jumboMode = true jumboMode = true
}
project.tasks.getByName("tasks").doFirst {
} }
/* applicationVariants.all { variant -> /* applicationVariants.all { variant ->
variant.mergeAssetsProvider.configure { variant.mergeAssetsProvider.configure {
@ -31,7 +33,9 @@ android {
} }
} }
}*/ }*/
compileSdk rootProject.ext.android.compileSdkVersion
compileSdkVersion rootProject.ext.android.compileSdkVersion
buildToolsVersion rootProject.ext.android.buildToolsVersion
packagingOptions { packagingOptions {
pickFirst "lib/armeabi/libyuvutils.so" pickFirst "lib/armeabi/libyuvutils.so"
pickFirst "lib/arm64-v8a/libyuvutils.so" pickFirst "lib/arm64-v8a/libyuvutils.so"
@ -101,11 +105,8 @@ android {
} }
compileOptions { compileOptions {
sourceCompatibility JavaVersion.VERSION_18 sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_18 targetCompatibility JavaVersion.VERSION_1_8
}
buildFeatures {
buildConfig = true
} }
applicationVariants.all { variant -> applicationVariants.all { variant ->
println "清空build文件夹"; println "清空build文件夹";

View File

@ -194,12 +194,9 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
-keep public class com.alibaba.android.arouter.facade.**{*;} -keep public class com.alibaba.android.arouter.facade.**{*;}
-keep class * implements com.alibaba.android.arouter.facade.template.ISyringe{*;} -keep class * implements com.alibaba.android.arouter.facade.template.ISyringe{*;}
# 如果使用了 byType 的方式获取 Service,需添加下面规则,保护接口 # If you use the byType method to obtain Service, add the following rules to protect the interface:
-keep interface * implements com.alibaba.android.arouter.facade.template.IProvider -keep interface * implements com.alibaba.android.arouter.facade.template.IProvider
# 如果使用了 单类注入,即不定义接口实现 IProvider,需添加下面规则,保护实现
-keep class * implements com.alibaba.android.arouter.facade.template.IProvider
# If single-type injection is used, that is, no interface is defined to implement IProvider, the following rules need to be added to protect the implementation # If single-type injection is used, that is, no interface is defined to implement IProvider, the following rules need to be added to protect the implementation
# -keep class * implements com.alibaba.android.arouter.facade.template.IProvider # -keep class * implements com.alibaba.android.arouter.facade.template.IProvider
@ -295,7 +292,3 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
-keep class com.shayu.lib_google.**{*;} -keep class com.shayu.lib_google.**{*;}
-keep class com.shayu.lib_huawei.**{*;} -keep class com.shayu.lib_huawei.**{*;}
-keep class com.qiniu.**{*;}
-keep class com.qiniu.**{public <init>();}
-ignorewarnings

View File

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
> package="myname.pdlive.shayu">
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
<uses-permission <uses-permission
android:name="android.permission.CALL_PHONE" android:name="android.permission.CALL_PHONE"
tools:node="remove" /> tools:node="remove" />

View File

@ -4,7 +4,6 @@ import static com.yunbao.live.socket.SocketClient.mSocketHandler;
import android.app.Activity; import android.app.Activity;
import android.app.ActivityManager; import android.app.ActivityManager;
import android.app.LauncherActivity;
import android.content.Context; import android.content.Context;
import android.net.http.HttpResponseCache; import android.net.http.HttpResponseCache;
import android.os.Build; import android.os.Build;
@ -26,7 +25,6 @@ import com.blankj.utilcode.util.Utils;
import com.facebook.appevents.AppEventsLogger; import com.facebook.appevents.AppEventsLogger;
import com.fm.openinstall.OpenInstall; import com.fm.openinstall.OpenInstall;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.pandoralive.shayu.R;
import com.shayu.phonelive.utils.LogUtils; import com.shayu.phonelive.utils.LogUtils;
import com.tencent.imsdk.v2.V2TIMGroupMemberInfo; import com.tencent.imsdk.v2.V2TIMGroupMemberInfo;
import com.tencent.imsdk.v2.V2TIMManager; import com.tencent.imsdk.v2.V2TIMManager;
@ -34,7 +32,6 @@ import com.tencent.imsdk.v2.V2TIMSimpleMsgListener;
import com.tencent.imsdk.v2.V2TIMUserInfo; import com.tencent.imsdk.v2.V2TIMUserInfo;
import com.umeng.analytics.MobclickAgent; import com.umeng.analytics.MobclickAgent;
import com.umeng.commonsdk.UMConfigure; import com.umeng.commonsdk.UMConfigure;
import com.yalantis.ucrop.UCropActivity;
import com.yunbao.common.BuildConfig; import com.yunbao.common.BuildConfig;
import com.yunbao.common.CommonAppConfig; import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.CommonAppContext; import com.yunbao.common.CommonAppContext;
@ -47,9 +44,7 @@ import com.yunbao.common.manager.imrongcloud.InstructorSendRewardProvider;
import com.yunbao.common.manager.imrongcloud.MessageIMManager; import com.yunbao.common.manager.imrongcloud.MessageIMManager;
import com.yunbao.common.manager.imrongcloud.RecommendLiveRoom; import com.yunbao.common.manager.imrongcloud.RecommendLiveRoom;
import com.yunbao.common.manager.imrongcloud.RongcloudIMManager; import com.yunbao.common.manager.imrongcloud.RongcloudIMManager;
import com.yunbao.common.message.content.MessageChatCardContent;
import com.yunbao.common.message.content.MessageChatTipsContent; import com.yunbao.common.message.content.MessageChatTipsContent;
import com.yunbao.common.provider.MessageChatCardItemProvider;
import com.yunbao.common.provider.MessageChatTipsItemProvider; import com.yunbao.common.provider.MessageChatTipsItemProvider;
import com.yunbao.common.utils.AppManager; import com.yunbao.common.utils.AppManager;
import com.yunbao.common.utils.Bus; import com.yunbao.common.utils.Bus;
@ -58,7 +53,6 @@ import com.yunbao.common.utils.L;
import com.yunbao.common.utils.MessageChatNotifyManager; import com.yunbao.common.utils.MessageChatNotifyManager;
import com.yunbao.common.utils.MessageSayHiNotifyManager; import com.yunbao.common.utils.MessageSayHiNotifyManager;
import com.yunbao.common.utils.SpUtil; import com.yunbao.common.utils.SpUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.live.activity.LiveActivity; import com.yunbao.live.activity.LiveActivity;
import com.yunbao.live.activity.SudGameActivity; import com.yunbao.live.activity.SudGameActivity;
import com.yunbao.live.socket.SocketReceiveBean; import com.yunbao.live.socket.SocketReceiveBean;
@ -66,15 +60,10 @@ import com.yunbao.live.socket.SocketRyClient;
import com.yunbao.live.utils.LiveImDeletUtil; import com.yunbao.live.utils.LiveImDeletUtil;
import com.yunbao.live.views.PortraitLiveManager; import com.yunbao.live.views.PortraitLiveManager;
import com.yunbao.live.views.RecommendLiveRoomProvider; import com.yunbao.live.views.RecommendLiveRoomProvider;
import com.yunbao.main.activity.CompleteUserInfoActivity;
import com.yunbao.main.activity.EntryActivity;
import com.yunbao.main.activity.LoginActivity;
import com.yunbao.main.activity.MainActivity; import com.yunbao.main.activity.MainActivity;
import com.yunbao.main.activity.MainHomeCommunityActivity; import com.yunbao.main.activity.MainHomeCommunityActivity;
import com.yunbao.main.activity.MsgSettActivity; import com.yunbao.main.activity.MsgSettActivity;
import com.yunbao.main.activity.PDLiveConversationActivity; import com.yunbao.main.activity.PDLiveConversationActivity;
import com.yunbao.main.activity.RegisterActivity;
import com.yunbao.video.activity.VideoPlayActivity;
import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.EventBus;
@ -89,9 +78,6 @@ import io.rong.imkit.config.RongConfigCenter;
import io.rong.imlib.RongIMClient; import io.rong.imlib.RongIMClient;
import io.rong.imlib.model.Conversation; import io.rong.imlib.model.Conversation;
import io.rong.imlib.model.MessageContent; import io.rong.imlib.model.MessageContent;
import io.rong.message.HQVoiceMessage;
import io.rong.message.ImageMessage;
import io.rong.message.SightMessage;
import io.rong.message.TextMessage; import io.rong.message.TextMessage;
//import cn.tillusory.sdk.TiSDK; //import cn.tillusory.sdk.TiSDK;
@ -114,7 +100,6 @@ public class AppContext extends CommonAppContext {
@Override @Override
public void onActivityResumed(Activity activity) { public void onActivityResumed(Activity activity) {
Log.e("打招呼定时器", "onActivityResumed: " + activity); Log.e("打招呼定时器", "onActivityResumed: " + activity);
MessageChatNotifyManager.getInstance().restart(activity);
if (activity instanceof LiveActivity) { if (activity instanceof LiveActivity) {
MessageSayHiNotifyManager.getInstance().stop(); MessageSayHiNotifyManager.getInstance().stop();
return; return;
@ -123,37 +108,17 @@ public class AppContext extends CommonAppContext {
MessageSayHiNotifyManager.getInstance().stop(); MessageSayHiNotifyManager.getInstance().stop();
return; return;
} }
if (activity instanceof MainHomeCommunityActivity) { if(activity instanceof MainHomeCommunityActivity){
MessageSayHiNotifyManager.getInstance().stop(); MessageSayHiNotifyManager.getInstance().stop();
return; return;
} }
if (activity instanceof SudGameActivity) { if(activity instanceof SudGameActivity){
MessageSayHiNotifyManager.getInstance().stop(); MessageSayHiNotifyManager.getInstance().stop();
return; return;
} }
if (activity instanceof MainActivity && !MessageSayHiNotifyManager.getInstance().isInit()) { if (activity instanceof MainActivity && !MessageSayHiNotifyManager.getInstance().isInit()) {
return; return;
} }
if (activity instanceof CompleteUserInfoActivity) {
MessageSayHiNotifyManager.getInstance().stop();
return;
}
if (activity instanceof VideoPlayActivity) {
MessageSayHiNotifyManager.getInstance().stop();
return;
}
if (activity instanceof LoginActivity) {
MessageSayHiNotifyManager.getInstance().stop();
return;
}
if (activity instanceof EntryActivity) {
MessageSayHiNotifyManager.getInstance().stop();
return;
}
if (activity instanceof UCropActivity) {
MessageSayHiNotifyManager.getInstance().stop();
return;
}
MessageSayHiNotifyManager.getInstance().reload(); MessageSayHiNotifyManager.getInstance().reload();
} }
@ -255,24 +220,12 @@ public class AppContext extends CommonAppContext {
myMessages.add(RecommendLiveRoom.class); myMessages.add(RecommendLiveRoom.class);
myMessages.add(InstructorSendReward.class); myMessages.add(InstructorSendReward.class);
myMessages.add(MessageChatTipsContent.class); myMessages.add(MessageChatTipsContent.class);
myMessages.add(MessageChatCardContent.class);
RongIMClient.registerMessageType(myMessages); RongIMClient.registerMessageType(myMessages);
// 注册自定义消息模板 // 注册自定义消息模板
RongConfigCenter.conversationConfig().addMessageProvider(new InstructorSendRewardProvider(getApplicationContext())); RongConfigCenter.conversationConfig().addMessageProvider(new InstructorSendRewardProvider(getApplicationContext()));
RongConfigCenter.conversationConfig().addMessageProvider(new RecommendLiveRoomProvider(getApplicationContext())); RongConfigCenter.conversationConfig().addMessageProvider(new RecommendLiveRoomProvider(getApplicationContext()));
RongConfigCenter.conversationConfig().addMessageProvider(new MessageChatTipsItemProvider(getApplicationContext())); RongConfigCenter.conversationConfig().addMessageProvider(new MessageChatTipsItemProvider(getApplicationContext()));
RongConfigCenter.conversationConfig().addMessageProvider(new MessageChatCardItemProvider(getApplicationContext()));
//注册屏蔽push弹窗的类
MessageChatNotifyManager.getInstance().addShieldClass(CompleteUserInfoActivity.class);
MessageChatNotifyManager.getInstance().addShieldClass(PDLiveConversationActivity.class);
MessageChatNotifyManager.getInstance().addShieldClass(LauncherActivity.class);
MessageChatNotifyManager.getInstance().addShieldClass(EntryActivity.class);
MessageChatNotifyManager.getInstance().addShieldClass(LoginActivity.class);
MessageChatNotifyManager.getInstance().addShieldClass(RegisterActivity.class);
MessageChatNotifyManager.getInstance().addShieldClass(UCropActivity.class);
RongcloudIMManager.addRongcloudIMOnReceiveMessageListener(new RongIMClient.OnReceiveMessageWrapperListener() { RongcloudIMManager.addRongcloudIMOnReceiveMessageListener(new RongIMClient.OnReceiveMessageWrapperListener() {
@Override @Override
@ -284,21 +237,7 @@ public class AppContext extends CommonAppContext {
msg.what = Constants.SOCKET_WHAT_BROADCAST; msg.what = Constants.SOCKET_WHAT_BROADCAST;
try { try {
if (!"".equals(message.getContent()) && message.getContent() != null) { if (!"".equals(message.getContent()) && message.getContent() != null) {
TextMessage content; TextMessage content = (TextMessage) message.getContent();
if (message.getContent() instanceof MessageChatCardContent) {
content = new TextMessage(WordUtil.getNewString(R.string.activity_msg_chat_list_card));
} else if (message.getContent() instanceof TextMessage) {
content = (TextMessage) message.getContent();
}else if(message.getContent() instanceof ImageMessage){
content = new TextMessage(WordUtil.getNewString(R.string.rc_conversation_summary_content_image));
}else if(message.getContent() instanceof SightMessage){
content = new TextMessage(WordUtil.getNewString(R.string.rc_conversation_summary_content_sight));
}else if(message.getContent() instanceof HQVoiceMessage){
content = new TextMessage(WordUtil.getNewString(R.string.rc_conversation_summary_content_voice));
}else {
System.out.println("未知消息类型:"+message.getContent().getClass().getSimpleName()+"|"+message.getContent());
return false;
}
if (content.getContent().contains("_method_")) { if (content.getContent().contains("_method_")) {
msg.obj = content.getContent(); msg.obj = content.getContent();
//观众页面 //观众页面
@ -321,35 +260,12 @@ public class AppContext extends CommonAppContext {
} else if (message.getConversationType() == Conversation.ConversationType.PRIVATE) {//私聊信息 } else if (message.getConversationType() == Conversation.ConversationType.PRIVATE) {//私聊信息
EventBus.getDefault().post(message); EventBus.getDefault().post(message);
MessageIMManager.get(sInstance).resetImUnReadMessageCount(sInstance);
if (AppManager.getInstance().getLastActivity() instanceof CompleteUserInfoActivity) {
return false;
}
Log.i("聊天推送", message.getTargetId() + "是否已读:" + message.getReceivedStatus().isRead());
if (message.getReceivedStatus().isRead()) {
return false;
}
RongIMClient.getInstance().getUnreadCount(Conversation.ConversationType.PRIVATE, message.getTargetId(), new RongIMClient.ResultCallback<Integer>() {
@Override
public void onSuccess(Integer integer) {
if (integer > 0) {
Log.i("聊天推送", message.getTargetId() + "是否已读:" + message.getReceivedStatus().isRead() + "|未读数" + integer);
MessageChatNotifyManager.getInstance().push(AppManager.getInstance().getLastActivity() MessageChatNotifyManager.getInstance().push(AppManager.getInstance().getLastActivity()
, message.getTargetId(), , message.getTargetId(),
content.getContent() content.getContent()
); );
} }
} }
@Override
public void onError(RongIMClient.ErrorCode e) {
}
});
}
}
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
@ -442,9 +358,9 @@ public class AppContext extends CommonAppContext {
activity.get().finish(); activity.get().finish();
} }
} }
setFirebaseCrashData();
Process.killProcess(Process.myPid()); Process.killProcess(Process.myPid());
System.exit(0); System.exit(0);
setFirebaseCrashData();
new Handler(Looper.getMainLooper()).postDelayed(() -> { new Handler(Looper.getMainLooper()).postDelayed(() -> {
throw new RuntimeException(e); throw new RuntimeException(e);
}, 100); }, 100);

View File

@ -29,7 +29,6 @@ import androidx.core.app.NotificationManagerCompat;
import com.alibaba.android.arouter.facade.annotation.Route; import com.alibaba.android.arouter.facade.annotation.Route;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.pandoralive.shayu.R;
import com.shayu.phonelive.AppContext; import com.shayu.phonelive.AppContext;
import com.tencent.rtmp.ITXLivePlayListener; import com.tencent.rtmp.ITXLivePlayListener;
import com.tencent.rtmp.TXLiveBase; import com.tencent.rtmp.TXLiveBase;
@ -73,6 +72,7 @@ import java.io.File;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import myname.pdlive.shayu.R;
/** /**
* Created by cxf on 2018/9/17. * Created by cxf on 2018/9/17.

View File

@ -35,7 +35,6 @@ import com.bumptech.glide.request.target.SimpleTarget;
import com.bumptech.glide.request.target.Target; import com.bumptech.glide.request.target.Target;
import com.bumptech.glide.request.transition.Transition; import com.bumptech.glide.request.transition.Transition;
import com.makeramen.roundedimageview.RoundedImageView; import com.makeramen.roundedimageview.RoundedImageView;
import com.pandoralive.shayu.R;
import com.shayu.phonelive.AppContext; import com.shayu.phonelive.AppContext;
import com.shayu.phonelive.activity.LauncherActivity; import com.shayu.phonelive.activity.LauncherActivity;
import com.yunbao.common.bean.NotificationMsgBean; import com.yunbao.common.bean.NotificationMsgBean;
@ -52,6 +51,7 @@ import io.rong.imlib.ConnectChangeReceiver;
import io.rong.push.PushType; import io.rong.push.PushType;
import io.rong.push.notification.PushMessageReceiver; import io.rong.push.notification.PushMessageReceiver;
import io.rong.push.notification.PushNotificationMessage; import io.rong.push.notification.PushNotificationMessage;
import myname.pdlive.shayu.R;
public class CustomMessageReceiver extends PushMessageReceiver { public class CustomMessageReceiver extends PushMessageReceiver {

File diff suppressed because it is too large Load Diff

View File

@ -3,8 +3,8 @@ apply plugin: 'img-optimizer'
android { android {
compileSdk rootProject.ext.android.compileSdkVersion compileSdkVersion rootProject.ext.android.compileSdkVersion
targetSdk rootProject.ext.android.buildToolsVersion buildToolsVersion rootProject.ext.android.buildToolsVersion
packagingOptions { packagingOptions {
pickFirst "lib/armeabi/libyuvutils.so" pickFirst "lib/armeabi/libyuvutils.so"
pickFirst "lib/arm64-v8a/libyuvutils.so" pickFirst "lib/arm64-v8a/libyuvutils.so"
@ -42,8 +42,8 @@ android {
} }
compileOptions { compileOptions {
sourceCompatibility JavaVersion.VERSION_18 sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_18 targetCompatibility JavaVersion.VERSION_1_8
} }
} }
repositories { repositories {

View File

@ -1,4 +1,5 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.yunbao.baidu"
/> />

View File

@ -3,8 +3,8 @@ apply plugin: 'img-optimizer'
android { android {
compileSdk rootProject.ext.android.compileSdkVersion compileSdkVersion rootProject.ext.android.compileSdkVersion
targetSdk rootProject.ext.android.buildToolsVersion buildToolsVersion rootProject.ext.android.buildToolsVersion
packagingOptions { packagingOptions {
pickFirst "lib/armeabi/libyuvutils.so" pickFirst "lib/armeabi/libyuvutils.so"
pickFirst "lib/arm64-v8a/libyuvutils.so" pickFirst "lib/arm64-v8a/libyuvutils.so"
@ -45,8 +45,8 @@ android {
} }
} }
compileOptions { compileOptions {
sourceCompatibility JavaVersion.VERSION_18 sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_18 targetCompatibility JavaVersion.VERSION_1_8
} }
} }
repositories { repositories {

View File

@ -1,2 +1,2 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
/> package="com.yunbao.beauty"/>

View File

@ -4,28 +4,27 @@ apply from: "dependencies.gradle"
buildscript { buildscript {
ext.kotlin_version = '1.8.22' ext.kotlin_version = '1.6.20'
repositories { repositories {
maven { url "https://mvn.mob.com/android" } maven { url "https://mvn.mob.com/android" }
maven { url 'https://maven.aliyun.com/repository/public' } maven { url 'https://maven.aliyun.com/repository/public' }
maven { url 'https://maven.aliyun.com/repository/google' } maven { url 'https://maven.aliyun.com/repository/google' }
maven { url 'https://maven.fabric.io/public' } maven { url 'https://maven.fabric.io/public' }
maven { url 'https://maven.faceunity.com/repository/maven-public/' }// maven { url 'http://maven.faceunity.com/repository/maven-public/' }//
maven { url 'https://repo1.maven.org/maven2/' }// maven { url 'https://repo1.maven.org/maven2/' }//
maven {url 'https://developer.huawei.com/repo/'} maven {url 'https://developer.huawei.com/repo/'}
maven { url "https://jitpack.io" }
google() google()
mavenCentral() mavenCentral()
} }
dependencies { dependencies {
classpath 'com.android.tools.build:gradle:8.3.1' classpath 'com.android.tools.build:gradle:4.0.2'
//png工具 //png工具
classpath 'com.chenenyu:img-optimizer:1.3.0' classpath 'com.chenenyu:img-optimizer:1.3.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.6.20"
classpath 'com.google.gms:google-services:4.3.3' classpath 'com.google.gms:google-services:4.3.3'
classpath 'com.google.firebase:firebase-crashlytics-gradle:2.9.2' classpath 'com.google.firebase:firebase-crashlytics-gradle:2.9.2'
classpath "com.github.jadepeakpoet.ARouter:arouter-register:1.0.3" classpath "com.alibaba:arouter-register:1.0.2"
classpath 'com.huawei.agconnect:agcp:1.5.2.300' classpath 'com.huawei.agconnect:agcp:1.5.2.300'
} }
@ -41,9 +40,9 @@ allprojects {
maven { url "https://mvn.mob.com/android" } maven { url "https://mvn.mob.com/android" }
maven { url 'https://maven.aliyun.com/repository/public' } maven { url 'https://maven.aliyun.com/repository/public' }
maven { url 'https://maven.aliyun.com/repository/google' } maven { url 'https://maven.aliyun.com/repository/google' }
maven { url 'https://developer.huawei.com/repo'}// maven { url 'http://developer.huawei.com/repo'}//
maven { url 'https://maven.fabric.io/public' } maven { url 'https://maven.fabric.io/public' }
maven { url 'https://maven.faceunity.com/repository/maven-public/' }// maven { url 'http://maven.faceunity.com/repository/maven-public/' }//
maven { url "https://jitpack.io" } maven { url "https://jitpack.io" }
maven { url 'https://repo1.maven.org/maven2/' }// maven { url 'https://repo1.maven.org/maven2/' }//
google() // Google's Maven repository google() // Google's Maven repository

View File

@ -3,8 +3,8 @@ apply plugin: 'img-optimizer'
android { android {
namespace "com.yunbao.common" compileSdkVersion rootProject.ext.android.compileSdkVersion
compileSdk rootProject.ext.android.compileSdkVersion buildToolsVersion rootProject.ext.android.buildToolsVersion
defaultConfig { defaultConfig {
minSdkVersion rootProject.ext.android.minSdkVersion minSdkVersion rootProject.ext.android.minSdkVersion
@ -59,11 +59,8 @@ android {
} }
compileOptions { compileOptions {
sourceCompatibility JavaVersion.VERSION_18 sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_18 targetCompatibility JavaVersion.VERSION_1_8
}
buildFeatures {
buildConfig = true
} }
} }
repositories { repositories {
@ -73,7 +70,6 @@ repositories {
} }
dependencies { dependencies {
annotationProcessor rootProject.ext.dependencies["arouter-compiler"] annotationProcessor rootProject.ext.dependencies["arouter-compiler"]
implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar']) implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar'])
@ -169,14 +165,14 @@ dependencies {
//im //im
api 'com.tencent.imsdk:imsdk-plus:5.4.666' api 'com.tencent.imsdk:imsdk-plus:5.4.666'
api 'com.google.code.gson:gson:2.8.8' api 'com.google.code.gson:gson:2.8.8'
api 'cn.rongcloud.sdk:rtc_lib:5.6.9' // api 'cn.rongcloud.sdk:rtc_lib:5.2.0' //
// 5.1.2 // 5.1.2
api 'cn.rongcloud.sdk:im_lib:5.6.10' api 'cn.rongcloud.sdk:im_lib:5.2.0.2'
// 5.1.2 // 5.1.2
api 'cn.rongcloud.sdk:im_kit:5.6.10' // UI api 'cn.rongcloud.sdk:im_kit:5.2.5.4' // UI
// //
api 'cn.rongcloud.sdk:sight:5.6.10' api 'cn.rongcloud.sdk:sight:5.2.5.4'
api 'com.facebook.android:facebook-android-sdk:15.2.0' api 'com.facebook.android:facebook-android-sdk:15.2.0'
implementation 'com.facebook.android:facebook-android-sdk:15.2.0' implementation 'com.facebook.android:facebook-android-sdk:15.2.0'
@ -230,7 +226,7 @@ dependencies {
api project(':lib_google') api project(':lib_google')
//samsung插件包 //samsung插件包
//api project(':IAP6Helper') api project(':IAP6Helper')
// //
api 'com.contrarywind:Android-PickerView:4.1.9' api 'com.contrarywind:Android-PickerView:4.1.9'
@ -243,13 +239,4 @@ dependencies {
api 'com.github.xuexiangjys:XUI:1.1.6' api 'com.github.xuexiangjys:XUI:1.1.6'
api 'com.github.xuexiangjys.XUtil:xutil-core:2.0.0' api 'com.github.xuexiangjys.XUtil:xutil-core:2.0.0'
//ExoPlayer,
api 'com.google.android.exoplayer:exoplayer:2.18.2'
api 'com.google.android.exoplayer:exoplayer-core:2.18.2@aar'
//
api 'com.github.FlyJingFish:GradientTextView:1.2.4'
//
api 'com.github.xiaohaibin:XBanner:androidx_v1.2.6'
} }

Binary file not shown.

View File

@ -23,6 +23,3 @@
# If you keep the line number information, uncomment this to # If you keep the line number information, uncomment this to
# hide the original source file name. # hide the original source file name.
#-renamesourcefileattribute SourceFile #-renamesourcefileattribute SourceFile
-keep class com.qiniu.**{*;}
-keep class com.qiniu.**{public <init>();}
-ignorewarnings

View File

@ -1,13 +1,11 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"> package="com.yunbao.common">
<!-- <uses-permission android:name="android.permission.READ_PHONE_STATE" />--> <!-- <uses-permission android:name="android.permission.READ_PHONE_STATE" />-->
<!-- <uses-permission android:name="android.permission.INTERNET" />--> <!-- <uses-permission android:name="android.permission.INTERNET" />-->
<!-- <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />--> <!-- <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />-->
<application <application android:allowBackup="true">
android:allowBackup="true"
tools:replace="allowBackup">
<!-- <meta-data--> <!-- <meta-data-->
<!-- android:name="com.google.ar.core"--> <!-- android:name="com.google.ar.core"-->
@ -68,7 +66,16 @@
android:screenOrientation="portrait" /> android:screenOrientation="portrait" />
<activity <activity
android:name="com.yunbao.common.activity.VideoPlayActivity" android:name=".activity.CommunitySendActivity"
android:screenOrientation="portrait" />
<activity
android:name=".activity.CommunityDetailsActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustResize" />
<activity
android:name=".activity.UserHomeActivity"
android:screenOrientation="portrait" /> android:screenOrientation="portrait" />
</application> </application>

View File

@ -1,6 +1,5 @@
package com.yunbao.common; package com.yunbao.common;
import android.content.Context;
import android.content.pm.ApplicationInfo; import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo; import android.content.pm.PackageInfo;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
@ -13,7 +12,6 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.yunbao.common.bean.ConfigBean; import com.yunbao.common.bean.ConfigBean;
import com.yunbao.common.bean.FansMedalBean; import com.yunbao.common.bean.FansMedalBean;
import com.yunbao.common.bean.NewCommunityType;
import com.yunbao.common.bean.UserBean; import com.yunbao.common.bean.UserBean;
import com.yunbao.common.bean.UserItemBean; import com.yunbao.common.bean.UserItemBean;
import com.yunbao.common.http.CommonHttpUtil; import com.yunbao.common.http.CommonHttpUtil;
@ -119,46 +117,10 @@ public class CommonAppConfig {
private String mAppName; private String mAppName;
private Boolean mTiBeautyEnable;//是否使用萌颜 true使用萌颜 false 使用基础美颜 private Boolean mTiBeautyEnable;//是否使用萌颜 true使用萌颜 false 使用基础美颜
public static List<NewCommunityType> getCommunityTypeList(boolean isHome, Context mContext) {
List<NewCommunityType> newCommunityTypeList = new ArrayList<>();
if (isHome) {
NewCommunityType type0 = new NewCommunityType();
type0.setId(0);
type0.setTalk_name(mContext.getString(R.string.recomment));
newCommunityTypeList.add(type0);
}
NewCommunityType type17 = new NewCommunityType();
type17.setId(5);
type17.setTalk_name(mContext.getResources().getString(R.string.main_active_type_01));
NewCommunityType type16 = new NewCommunityType();
type16.setId(4);
type16.setTalk_name(mContext.getResources().getString(R.string.main_active_type_02));
NewCommunityType type15 = new NewCommunityType();
type15.setId(3);
type15.setTalk_name(mContext.getResources().getString(R.string.main_active_type_03));
NewCommunityType type14 = new NewCommunityType();
type14.setId(2);
type14.setTalk_name(mContext.getResources().getString(R.string.main_active_type_04));
NewCommunityType type13 = new NewCommunityType();
type13.setId(1);
type13.setTalk_name(mContext.getResources().getString(R.string.main_active_type_05));
newCommunityTypeList.add(type17);
newCommunityTypeList.add(type16);
newCommunityTypeList.add(type15);
newCommunityTypeList.add(type14);
newCommunityTypeList.add(type13);
return newCommunityTypeList;
}
public String getUid() { public String getUid() {
if (TextUtils.isEmpty(mUid)) { if (TextUtils.isEmpty(mUid)) {
String[] uidAndToken = SpUtil.getInstance().getMultiStringValue(new String[]{SpUtil.UID, SpUtil.TOKEN}); String[] uidAndToken = SpUtil.getInstance()
.getMultiStringValue(new String[]{SpUtil.UID, SpUtil.TOKEN});
if (uidAndToken != null) { if (uidAndToken != null) {
if (!TextUtils.isEmpty(uidAndToken[0]) && !TextUtils.isEmpty(uidAndToken[1])) { if (!TextUtils.isEmpty(uidAndToken[0]) && !TextUtils.isEmpty(uidAndToken[1])) {
mUid = uidAndToken[0]; mUid = uidAndToken[0];
@ -349,7 +311,9 @@ public class CommonAppConfig {
mUid = null; mUid = null;
mToken = null; mToken = null;
mLoginIM = false; mLoginIM = false;
SpUtil.getInstance().removeValue(SpUtil.UID, SpUtil.TOKEN, SpUtil.USER_INFO, SpUtil.IM_LOGIN); SpUtil.getInstance().removeValue(
SpUtil.UID, SpUtil.TOKEN, SpUtil.USER_INFO, SpUtil.IM_LOGIN
);
} }
@ -385,7 +349,12 @@ public class CommonAppConfig {
mProvince = null; mProvince = null;
mCity = null; mCity = null;
mDistrict = null; mDistrict = null;
SpUtil.getInstance().removeValue(SpUtil.LOCATION_LNG, SpUtil.LOCATION_LAT, SpUtil.LOCATION_PROVINCE, SpUtil.LOCATION_CITY, SpUtil.LOCATION_DISTRICT); SpUtil.getInstance().removeValue(
SpUtil.LOCATION_LNG,
SpUtil.LOCATION_LAT,
SpUtil.LOCATION_PROVINCE,
SpUtil.LOCATION_CITY,
SpUtil.LOCATION_DISTRICT);
} }

View File

@ -1,10 +1,9 @@
package com.yunbao.main.activity; package com.yunbao.common.activity;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.graphics.Color; import android.graphics.Color;
import android.text.TextUtils;
import android.util.SparseArray; import android.util.SparseArray;
import android.view.View; import android.view.View;
import android.view.WindowManager; import android.view.WindowManager;
@ -25,42 +24,26 @@ import com.alibaba.fastjson.JSONObject;
import com.yunbao.common.CommonAppConfig; import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.Constants; import com.yunbao.common.Constants;
import com.yunbao.common.R; import com.yunbao.common.R;
import com.yunbao.common.activity.AbsActivity;
import com.yunbao.common.adapter.CommentAdapter; import com.yunbao.common.adapter.CommentAdapter;
import com.yunbao.common.bean.ActiveBean; import com.yunbao.common.bean.ActiveBean;
import com.yunbao.common.bean.CommentBean; import com.yunbao.common.bean.CommentBean;
import com.yunbao.common.bean.LiveBean;
import com.yunbao.common.dialog.ImagePreviewDialog; import com.yunbao.common.dialog.ImagePreviewDialog;
import com.yunbao.common.event.FollowEvent;
import com.yunbao.common.glide.ImgLoader; import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.http.CommonHttpUtil; import com.yunbao.common.http.CommonHttpUtil;
import com.yunbao.common.http.HttpCallback; import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.http.LiveHttpUtil;
import com.yunbao.common.http.live.LiveNetManager; import com.yunbao.common.http.live.LiveNetManager;
import com.yunbao.common.interfaces.CommonCallback; import com.yunbao.common.interfaces.CommonCallback;
import com.yunbao.common.manager.OpenAdManager; import com.yunbao.common.manager.OpenAdManager;
import com.yunbao.common.utils.DialogUitl; import com.yunbao.common.utils.DialogUitl;
import com.yunbao.common.utils.LiveRoomCheckLivePresenter;
import com.yunbao.common.utils.RouteUtil; import com.yunbao.common.utils.RouteUtil;
import com.yunbao.common.utils.StringUtil; import com.yunbao.common.utils.StringUtil;
import com.yunbao.common.utils.ToastUtil; import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.views.NineGridLayout; import com.yunbao.common.views.NineGridLayout;
import com.yunbao.common.views.TopGradual; import com.yunbao.common.views.TopGradual;
import com.yunbao.live.activity.LiveAudienceActivity;
import com.yunbao.share.bean.ShareBean;
import com.yunbao.share.ui.SharePopDialog;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
import pl.droidsonroids.gif.GifImageView;
@Route(path = RouteUtil.PATH_COMMUNITY) @Route(path = RouteUtil.PATH_COMMUNITY)
public class CommunityDetailsActivity extends AbsActivity { public class CommunityDetailsActivity extends AbsActivity {
@ -85,8 +68,6 @@ public class CommunityDetailsActivity extends AbsActivity {
private ImageView send; private ImageView send;
private boolean isComment = false; private boolean isComment = false;
private RelativeLayout videoLayout; private RelativeLayout videoLayout;
private GifImageView liveStatus;
private Map<String, String> gotoRoomKey = new HashMap<>();
@Override @Override
protected int getLayoutId() { protected int getLayoutId() {
@ -110,12 +91,9 @@ public class CommunityDetailsActivity extends AbsActivity {
activeId = getIntent().getStringExtra(Constants.TO_COMMUNITY_ID); activeId = getIntent().getStringExtra(Constants.TO_COMMUNITY_ID);
initView(); initView();
initData(); initData();
EventBus.getDefault().register(this);
} }
private void initView() { private void initView() {
setTitle(getResources().getString(com.yunbao.main.R.string.comm_details));
liveStatus = findViewById(R.id.liveStatus);
videoLayout = findViewById(R.id.videoLayout); videoLayout = findViewById(R.id.videoLayout);
send = findViewById(R.id.send); send = findViewById(R.id.send);
comment = findViewById(R.id.comment); comment = findViewById(R.id.comment);
@ -167,12 +145,12 @@ public class CommunityDetailsActivity extends AbsActivity {
public void callback(Integer isAttention) { public void callback(Integer isAttention) {
if (isAttention == 1) { if (isAttention == 1) {
ImgLoader.display(CommunityDetailsActivity.this, R.mipmap.icon_like_followed, followIcon); ImgLoader.display(CommunityDetailsActivity.this, R.mipmap.icon_like_followed, followIcon);
followName.setText(getResources().getString(R.string.following)); followName.setText("已关注");
followName.setTextColor(Color.parseColor("#777777")); followName.setTextColor(Color.parseColor("#777777"));
followLayout.setBackground(getResources().getDrawable(R.drawable.bg_main_com_type_1)); followLayout.setBackground(getResources().getDrawable(R.drawable.bg_main_com_type_1));
} else { } else {
ImgLoader.display(CommunityDetailsActivity.this, R.mipmap.icon_like_follow, followIcon); ImgLoader.display(CommunityDetailsActivity.this, R.mipmap.icon_like_follow, followIcon);
followName.setText(getResources().getString(R.string.follow)); followName.setText("关注");
followName.setTextColor(getResources().getColor(R.color.white)); followName.setTextColor(getResources().getColor(R.color.white));
followLayout.setBackground(getResources().getDrawable(R.drawable.bg_main_com_type)); followLayout.setBackground(getResources().getDrawable(R.drawable.bg_main_com_type));
} }
@ -192,11 +170,11 @@ public class CommunityDetailsActivity extends AbsActivity {
if (activeBean.getIs_love().equals("1")) { if (activeBean.getIs_love().equals("1")) {
activeBean.setIs_love("0"); activeBean.setIs_love("0");
ImgLoader.display(CommunityDetailsActivity.this, R.mipmap.icon_like01, like); ImgLoader.display(CommunityDetailsActivity.this, R.mipmap.icon_like01, like);
likeCount.setText(Integer.parseInt(activeBean.getLove_num()) - 1 + getResources().getString(com.yunbao.main.R.string.person_like)); likeCount.setText(Integer.parseInt(activeBean.getLove_num()) - 1 + "人觉得很赞");
} else { } else {
activeBean.setIs_love("1"); activeBean.setIs_love("1");
ImgLoader.display(CommunityDetailsActivity.this, R.mipmap.icon_like, like); ImgLoader.display(CommunityDetailsActivity.this, R.mipmap.icon_like, like);
likeCount.setText(Integer.parseInt(activeBean.getLove_num()) + 1 + getResources().getString(com.yunbao.main.R.string.person_like)); likeCount.setText(Integer.parseInt(activeBean.getLove_num()) + 1 + "人觉得很赞");
} }
} }
} }
@ -208,16 +186,13 @@ public class CommunityDetailsActivity extends AbsActivity {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
SparseArray<String> array = new SparseArray<>(); SparseArray<String> array = new SparseArray<>();
array.append(0, getResources().getString(R.string.report)); array.append(0, "举报");
array.append(1, getResources().getString(R.string.not_interested)); array.append(1, "不感兴趣");
DialogUitl.showStringArrayDialog(CommunityDetailsActivity.this, array, new DialogUitl.StringArrayDialogCallback() { DialogUitl.showStringArrayDialog(CommunityDetailsActivity.this, array, new DialogUitl.StringArrayDialogCallback() {
@Override @Override
public void onItemClick(String text, int tag) { public void onItemClick(String text, int tag) {
if (activeBean.getUser_id().equals(CommonAppConfig.getInstance().getUid())) {
ToastUtil.show(getResources().getString(com.yunbao.main.R.string.not_blackmail));
} else {
if (tag == 0) { if (tag == 0) {
RouteUtil.forwardCommentReportActivity(activeBean.getId(), "0"); RouteUtil.forwardCommentReportActivity(activeBean.getId(), activeBean.getId());
} else { } else {
CommonHttpUtil.noInterest(activeBean.getUser_id(), new HttpCallback() { CommonHttpUtil.noInterest(activeBean.getUser_id(), new HttpCallback() {
@Override @Override
@ -227,35 +202,6 @@ public class CommunityDetailsActivity extends AbsActivity {
}); });
} }
} }
}
});
}
});
liveStatus.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
LiveHttpUtil.getLiveInfo(activeBean.getUser_id(), new com.yunbao.common.http.HttpCallback() {
@Override
public void onSuccess(int code, String msg, String[] info) {
if (code == 0 && info.length > 0) {
LiveBean liveBean = JSON.parseObject(info[0], LiveBean.class);
if (liveBean == null) {
return;
}
liveBean.setParams(gotoRoomKey);
new LiveRoomCheckLivePresenter(mContext, liveBean.getUid(), liveBean.getStream(), new LiveRoomCheckLivePresenter.NewActionListener() {
@Override
public void onLiveRoomChanged(String liveUid, String stream, int liveType, String liveTypeVal, String liveSdk) {
RouteUtil.forwardLiveAudienceActivity(liveBean, liveType, Integer.parseInt(liveSdk), Integer.parseInt(liveTypeVal));
}
@Override
public void onCheckError(String contextError) {
}
});
}
}
}); });
} }
}); });
@ -292,18 +238,6 @@ public class CommunityDetailsActivity extends AbsActivity {
} }
}); });
findViewById(R.id.share).setOnClickListener(view -> {
String image = null;
if (activeBean.getImg_or_video().equals("1")) {
JSONArray jsonArray = (JSONArray) JSONArray.parse(activeBean.getImg_json());
if (!jsonArray.isEmpty()) {
image = jsonArray.getString(0);
}
} else {
image = activeBean.getVideo() + "?vframe/jpg/offset/0";
}
new SharePopDialog(mContext).setShareType(SharePopDialog.TYPE_DYNAMIC).setShareData(ShareBean.ShareBuilder.create().setShareType(SharePopDialog.TYPE_DYNAMIC).setUid(CommonAppConfig.getInstance().getUid()).setCover(StringUtil.isEmpty(image) ? activeBean.getUser_avatar() : image).setTitle(StringUtil.isEmpty(activeBean.getContent()) ? activeBean.getUser_name() : JSONObject.parseObject(activeBean.getContent()).getString("msg")).setAnchorId(activeBean.getUser_id()).setAnchorName(activeBean.getUser_name()).setAnchorAvatar(activeBean.getUser_avatar()).setExtraData(activeId).build()).showDialog();
});
} }
//回复评论 //回复评论
@ -349,9 +283,9 @@ public class CommunityDetailsActivity extends AbsActivity {
} }
@Override @Override
public void onReport(CommentBean.ReplyComment commentBean) { public void onReport(CommentBean.ReplyComment activeBean) {
//二级回复 举报 //二级回复 举报
RouteUtil.forwardCommentReportActivity(activeBean.getId(), commentBean.getId()); RouteUtil.forwardCommentReportActivity(activeBean.getId(), activeBean.getId());
} }
@Override @Override
@ -369,33 +303,12 @@ public class CommunityDetailsActivity extends AbsActivity {
} }
}); });
commentRecyclerView.setAdapter(commentAdapter); commentRecyclerView.setAdapter(commentAdapter);
replyCount.setText(getResources().getString(R.string.video_comment) + " " + list.size()); replyCount.setText("评论 " + list.size());
} }
} }
}); });
} }
/**
* 监听关注变化事件
*/
@Subscribe(threadMode = ThreadMode.MAIN)
public void onFollowEvent(FollowEvent e) {
if (!TextUtils.isEmpty(activeBean.getUser_id()) && activeBean.getUser_id().equals(e.getToUid())) {
activeBean.setIs_attention(String.valueOf(e.getIsAttention()));
if (e.getIsAttention() == 1) {//关注
ImgLoader.display(CommunityDetailsActivity.this, R.mipmap.icon_like_followed, followIcon);
followName.setText(getResources().getString(R.string.following));
followName.setTextColor(Color.parseColor("#777777"));
followLayout.setBackground(getResources().getDrawable(R.drawable.bg_main_com_type_1));
} else {
ImgLoader.display(CommunityDetailsActivity.this, R.mipmap.icon_like_follow, followIcon);
followName.setText(getResources().getString(R.string.follow));
followName.setTextColor(getResources().getColor(R.color.white));
followLayout.setBackground(getResources().getDrawable(R.drawable.bg_main_com_type));
}
}
}
@SuppressLint("UseCompatLoadingForDrawables") @SuppressLint("UseCompatLoadingForDrawables")
private void initData() { private void initData() {
LiveNetManager.get(mContext).getDynamicInfo(activeId, new com.yunbao.common.http.base.HttpCallback<ActiveBean>() { LiveNetManager.get(mContext).getDynamicInfo(activeId, new com.yunbao.common.http.base.HttpCallback<ActiveBean>() {
@ -418,21 +331,18 @@ public class CommunityDetailsActivity extends AbsActivity {
ImgLoader.display(CommunityDetailsActivity.this, activeBean.getUser_avatar(), avatar); ImgLoader.display(CommunityDetailsActivity.this, activeBean.getUser_avatar(), avatar);
name.setText(activeBean.getUser_name()); name.setText(activeBean.getUser_name());
time.setText(activeBean.getCreate_time()); time.setText(activeBean.getCreate_time());
likeCount.setText(activeBean.getLove_num() + getResources().getString(R.string.person_like)); likeCount.setText(activeBean.getLove_num() + "人觉得很赞");
if (!StringUtil.isEmpty(activeBean.getContent())) { if (!StringUtil.isEmpty(activeBean.getContent())) {
content.setText(String.valueOf(JSONObject.parseObject(activeBean.getContent()).get("msg"))); content.setText(String.valueOf(JSONObject.parseObject(activeBean.getContent()).get("msg")));
} }
if (activeBean.getIs_live().equals("1")) {
liveStatus.setVisibility(View.VISIBLE);
}
if (activeBean.getIs_attention().equals("1")) {//关注 if (activeBean.getIs_attention().equals("1")) {//关注
ImgLoader.display(CommunityDetailsActivity.this, R.mipmap.icon_like_followed, followIcon); ImgLoader.display(CommunityDetailsActivity.this, R.mipmap.icon_like_followed, followIcon);
followName.setText(getResources().getString(R.string.following)); followName.setText("已关注");
followName.setTextColor(Color.parseColor("#777777")); followName.setTextColor(Color.parseColor("#777777"));
followLayout.setBackground(getResources().getDrawable(R.drawable.bg_main_com_type_1)); followLayout.setBackground(getResources().getDrawable(R.drawable.bg_main_com_type_1));
} else { } else {
ImgLoader.display(CommunityDetailsActivity.this, R.mipmap.icon_like_follow, followIcon); ImgLoader.display(CommunityDetailsActivity.this, R.mipmap.icon_like_follow, followIcon);
followName.setText(getResources().getString(R.string.follow)); followName.setText("关注");
followName.setTextColor(getResources().getColor(R.color.white)); followName.setTextColor(getResources().getColor(R.color.white));
followLayout.setBackground(getResources().getDrawable(R.drawable.bg_main_com_type)); followLayout.setBackground(getResources().getDrawable(R.drawable.bg_main_com_type));
} }

View File

@ -1,25 +1,29 @@
package com.yunbao.main.activity; package com.yunbao.common.activity;
import android.Manifest; import android.Manifest;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;
import android.app.Dialog;
import android.content.ClipData; import android.content.ClipData;
import android.content.ContentResolver;
import android.content.Intent; import android.content.Intent;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.database.Cursor;
import android.net.Uri; import android.net.Uri;
import android.os.Build; import android.os.Build;
import android.provider.MediaStore;
import android.view.View; import android.view.View;
import android.widget.EditText; import android.widget.EditText;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import android.widget.RelativeLayout; import android.widget.RelativeLayout;
import android.widget.TextView; import android.widget.TextView;
import android.widget.Toast;
import android.widget.VideoView; import android.widget.VideoView;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.RequiresApi; import androidx.annotation.RequiresApi;
import androidx.core.app.ActivityCompat; import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat; import androidx.core.content.ContextCompat;
import androidx.fragment.app.FragmentActivity;
import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
@ -32,34 +36,33 @@ import com.bigkoo.pickerview.listener.OnTimeSelectListener;
import com.bigkoo.pickerview.view.OptionsPickerView; import com.bigkoo.pickerview.view.OptionsPickerView;
import com.bigkoo.pickerview.view.TimePickerView; import com.bigkoo.pickerview.view.TimePickerView;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.yunbao.common.CommonAppConfig; import com.lzy.okgo.utils.HttpUtils;
import com.yunbao.common.R; import com.yunbao.common.R;
import com.yunbao.common.activity.AbsActivity;
import com.yunbao.common.activity.VideoPlayActivity;
import com.yunbao.common.bean.NewCommunityType; import com.yunbao.common.bean.NewCommunityType;
import com.yunbao.common.custom.ItemDecoration; import com.yunbao.common.custom.ItemDecoration;
import com.yunbao.common.http.CommonHttpUtil; import com.yunbao.common.http.CommonHttpUtil;
import com.yunbao.common.http.HttpCallback; import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.manager.CommunityTypeManager;
import com.yunbao.common.manager.OpenAdManager;
import com.yunbao.common.upload.UploadBean; import com.yunbao.common.upload.UploadBean;
import com.yunbao.common.upload.UploadCallback; import com.yunbao.common.upload.UploadCallback;
import com.yunbao.common.upload.UploadQnImpl; import com.yunbao.common.upload.UploadQnImpl;
import com.yunbao.common.utils.ActiveImageAdapter; import com.yunbao.common.utils.ActiveImageAdapter;
import com.yunbao.common.utils.DateFormatUtil; import com.yunbao.common.utils.DateFormatUtil;
import com.yunbao.common.utils.DialogUitl;
import com.yunbao.common.utils.FilesUtils; import com.yunbao.common.utils.FilesUtils;
import com.yunbao.common.utils.L; import com.yunbao.common.utils.L;
import com.yunbao.common.utils.ProcessImageUtil;
import com.yunbao.common.utils.ProcessResultUtil;
import com.yunbao.common.utils.StringUtil; import com.yunbao.common.utils.StringUtil;
import com.yunbao.common.utils.ToastUtil; import com.yunbao.common.utils.ToastUtil;
import java.io.File; import java.io.File;
import java.net.URI;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import io.rong.imkit.picture.tools.DateUtils;
public class CommunitySendActivity extends AbsActivity { public class CommunitySendActivity extends AbsActivity {
public static final int PERMISSION_REQUEST_CODE_IMG = 0; public static final int PERMISSION_REQUEST_CODE_IMG = 0;
public static final int PERMISSION_REQUEST_CODE_VIDEO = 1; public static final int PERMISSION_REQUEST_CODE_VIDEO = 1;
@ -75,20 +78,19 @@ public class CommunitySendActivity extends AbsActivity {
private List<Uri> uriList = new ArrayList<>(); private List<Uri> uriList = new ArrayList<>();
private File videoFile; private File videoFile;
private ActiveImageAdapter activeImageAdapter; private ActiveImageAdapter activeImageAdapter;
private ImageView videoView; private VideoView videoView;
private RelativeLayout videoViewLayout; private RelativeLayout videoViewLayout;
private ImageView delVideo; private ImageView delVideo;
private TextView talkContent; private TextView talkContent;
private List<String> talkList = new ArrayList<>(); private List<String> talkList = new ArrayList<>();
private TextView submit; private TextView submit;
private boolean isImage; private boolean isImage;
UploadQnImpl mUploadStrategy;
private List<String> imgUrlList = new ArrayList<>(); private List<String> imgUrlList = new ArrayList<>();
private String videoUrl; private String videoUrl;
List<NewCommunityType> newCommunityTypeList = new ArrayList<>(); List<NewCommunityType> newCommunityTypeList = new ArrayList<>();
int talkId = 0; int talkId;
Dialog dialog;
private Uri videoUri;
@Override @Override
protected int getLayoutId() { protected int getLayoutId() {
@ -97,7 +99,7 @@ public class CommunitySendActivity extends AbsActivity {
@Override @Override
protected void main() { protected void main() {
newCommunityTypeList = CommonAppConfig.getCommunityTypeList(false, mContext); newCommunityTypeList = new CommunityTypeManager(mContext).getCommunityTypeList();
content = findViewById(R.id.content); content = findViewById(R.id.content);
submit = findViewById(R.id.submit); submit = findViewById(R.id.submit);
submit.setVisibility(View.VISIBLE); submit.setVisibility(View.VISIBLE);
@ -114,21 +116,6 @@ public class CommunitySendActivity extends AbsActivity {
submit.setOnClickListener(new View.OnClickListener() { submit.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
if (StringUtil.isEmpty(content.getText().toString())) {
ToastUtil.show(mContext.getResources().getString(com.yunbao.main.R.string.please_input_content));
return;
}
if (isImage) {
if (activeImageAdapter.getImageFileList().size() == 0) {
ToastUtil.show(mContext.getResources().getString(com.yunbao.main.R.string.please_input_content));
return;
}
} else {
if (videoFile == null) {
ToastUtil.show(mContext.getResources().getString(com.yunbao.main.R.string.please_input_content));
return;
}
}
List<UploadBean> uploadBeanList = new ArrayList<>(); List<UploadBean> uploadBeanList = new ArrayList<>();
if (isImage) { if (isImage) {
for (int i = 0; i < activeImageAdapter.getImageFileList().size(); i++) { for (int i = 0; i < activeImageAdapter.getImageFileList().size(); i++) {
@ -146,6 +133,7 @@ public class CommunitySendActivity extends AbsActivity {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
videoFile = null; videoFile = null;
videoView.stopPlayback();
videoViewLayout.setVisibility(View.GONE); videoViewLayout.setVisibility(View.GONE);
} }
}); });
@ -165,9 +153,6 @@ public class CommunitySendActivity extends AbsActivity {
@RequiresApi(api = Build.VERSION_CODES.TIRAMISU) @RequiresApi(api = Build.VERSION_CODES.TIRAMISU)
@Override @Override
public void onClick(View v) { public void onClick(View v) {
if (videoFile != null) {
return;
}
String permission1 = Manifest.permission.READ_EXTERNAL_STORAGE; String permission1 = Manifest.permission.READ_EXTERNAL_STORAGE;
String permission2 = Manifest.permission.WRITE_EXTERNAL_STORAGE; String permission2 = Manifest.permission.WRITE_EXTERNAL_STORAGE;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
@ -187,9 +172,6 @@ public class CommunitySendActivity extends AbsActivity {
videoLayout.setOnClickListener(new View.OnClickListener() { videoLayout.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
if (imgUrlList.size() > 0) {
return;
}
String permission1 = Manifest.permission.READ_EXTERNAL_STORAGE; String permission1 = Manifest.permission.READ_EXTERNAL_STORAGE;
String permission2 = Manifest.permission.WRITE_EXTERNAL_STORAGE; String permission2 = Manifest.permission.WRITE_EXTERNAL_STORAGE;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
@ -218,13 +200,12 @@ public class CommunitySendActivity extends AbsActivity {
activeImageAdapter.setActionListener(new ActiveImageAdapter.ActionListener() { activeImageAdapter.setActionListener(new ActiveImageAdapter.ActionListener() {
@Override @Override
public void onAddClick() { public void onAddClick() {
openImageChooserActivity();
} }
@Override @Override
public void onItemClick(int position) { public void onItemClick(int position) {
activeImageAdapter.deleteItem(position);
activeImageAdapter.notifyItemRemoved(position);
} }
@Override @Override
@ -234,26 +215,29 @@ public class CommunitySendActivity extends AbsActivity {
@Override @Override
public void onDel(int position) { public void onDel(int position) {
activeImageAdapter.deleteItem(position);
}
});
videoView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(CommunitySendActivity.this, VideoPlayActivity.class);
intent.putExtra("videoUri", videoUri);
startActivity(intent);
} }
}); });
} }
private void submit() { private void submit() {
if (isImage) {
if (imgUrlList.size() == 0) {
ToastUtil.show("请选择图片或者视频");
return;
}
} else {
if (StringUtil.isEmpty(videoUrl)) {
ToastUtil.show("请选择图片或者视频");
return;
}
}
String imgUrl = ""; String imgUrl = "";
if (isImage) { if (isImage) {
imgUrl = new Gson().toJson(imgUrlList); imgUrl = new Gson().toJson(imgUrlList);
} }
String tempTime = ""; String tempTime = "";
if (!chooseTime.getText().toString().equals("立即發表") && !chooseTime.getText().toString().equals("Now")) { if (!chooseTime.getText().toString().equals("立即发表")) {
tempTime = chooseTime.getText().toString(); tempTime = chooseTime.getText().toString();
} }
JSONObject jsonObject = new JSONObject(); JSONObject jsonObject = new JSONObject();
@ -261,11 +245,8 @@ public class CommunitySendActivity extends AbsActivity {
CommonHttpUtil.pushCommunity(isImage, jsonObject.toString(), String.valueOf(talkId), imgUrl, videoUrl, tempTime, new HttpCallback() { CommonHttpUtil.pushCommunity(isImage, jsonObject.toString(), String.valueOf(talkId), imgUrl, videoUrl, tempTime, new HttpCallback() {
@Override @Override
public void onSuccess(int code, String msg, String[] info) { public void onSuccess(int code, String msg, String[] info) {
if (dialog != null) {
dialog.dismiss();
}
ToastUtil.show(msg);
if (code == 0) { if (code == 0) {
ToastUtil.show("发布成功");
finish(); finish();
} }
} }
@ -284,7 +265,7 @@ public class CommunitySendActivity extends AbsActivity {
talkContent.setText(talkList.get(options1)); talkContent.setText(talkList.get(options1));
talkContent.setVisibility(View.VISIBLE); talkContent.setVisibility(View.VISIBLE);
} }
}).setTitleText(getResources().getString(R.string.choose_topic)).setContentTextSize(16).build(); }).setTitleText("选择话题").setContentTextSize(16).build();
pickerView.setPicker(talkList, null, null); pickerView.setPicker(talkList, null, null);
pickerView.show(); pickerView.show();
} }
@ -308,43 +289,30 @@ public class CommunitySendActivity extends AbsActivity {
} }
} }
TimePickerView timePickerView;
public void showTimeChooseDialog() { public void showTimeChooseDialog() {
Calendar startCalendar = Calendar.getInstance(); TimePickerView timePickerView = new TimePickerBuilder(CommunitySendActivity.this, new OnTimeSelectListener() {
startCalendar.set(1990, 1, 1);
Calendar endCalendar = Calendar.getInstance();
Calendar calendar = Calendar.getInstance();
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH); // Calendar.MONTH 从0开始计数
int day = calendar.get(Calendar.DAY_OF_MONTH);
int hour = calendar.get(Calendar.HOUR_OF_DAY); // 使用24小时制
int minute = calendar.get(Calendar.MINUTE);
int second = calendar.get(Calendar.SECOND);
endCalendar.set(year, month, day, hour, minute, second);
timePickerView = new TimePickerBuilder(CommunitySendActivity.this, new OnTimeSelectListener() {
@SuppressLint("SetTextI18n") @SuppressLint("SetTextI18n")
@Override @Override
public void onTimeSelect(Date date, View v) { public void onTimeSelect(Date date, View v) {
if (date.getTime() > new Date().getTime()) {
ToastUtil.show(getResources().getString(com.yunbao.main.R.string.time_cannot_be_greater_than_the_current_time));
timePickerView.show();
} else {
chooseTime.setText(DateFormatUtil.getTimeStrings(date.getTime())); chooseTime.setText(DateFormatUtil.getTimeStrings(date.getTime()));
} }
}
}).setType(new boolean[]{true, true, true, true, true, false})// 默认全部显示 }).setType(new boolean[]{true, true, true, true, true, false})// 默认全部显示
.setCancelText(getResources().getString(R.string.cancel))//取消按钮文字 .setCancelText("Cancel")//取消按钮文字
.setSubmitText(getResources().getString(R.string.back_community_sure))//确认按钮文字 .setSubmitText("Sure")//确认按钮文字
.setTitleSize(20)//标题文字大小 .setTitleSize(20)//标题文字大小
.setTitleText("")//标题文字 .setTitleText("Title")//标题文字
.setOutSideCancelable(true)//点击屏幕点在控件外部范围时是否取消显示 .setOutSideCancelable(false)//点击屏幕点在控件外部范围时是否取消显示
.isCyclic(false)//是否循环滚动 .isCyclic(true)//是否循环滚动
.setDate(endCalendar).setRangDate(startCalendar, endCalendar).setLabel("", "", "", "", "", "")//默认设置为年月日时分秒 .setLabel("", "", "", "", "", "")//默认设置为年月日时分秒
.isCenterLabel(false) //是否只显示中间选中项的label文字false则每项item全部都带有label .isCenterLabel(false) //是否只显示中间选中项的label文字false则每项item全部都带有label
.build(); .build();
timePickerView.show(); timePickerView.show();
timePickerView.setOnDismissListener(new OnDismissListener() {
@Override
public void onDismiss(Object o) {
}
});
} }
private void openImageChooserActivity() { private void openImageChooserActivity() {
@ -391,77 +359,35 @@ public class CommunitySendActivity extends AbsActivity {
} }
isImage = true; isImage = true;
} else if (requestCode == CHOOSE_VIDEO && resultCode == RESULT_OK && data != null) { } else if (requestCode == CHOOSE_VIDEO && resultCode == RESULT_OK && data != null) {
videoUri = data.getData(); Uri uri = data.getData();
videoFile = new File(Objects.requireNonNull(FilesUtils.getPath(mContext, videoUri))); videoFile = new File(Objects.requireNonNull(FilesUtils.getPath(mContext, uri)));
videoView.setImageBitmap(FilesUtils.getVideoThumbnail(videoFile.getPath())); videoView.setVideoURI(uri);
videoView.start();
videoViewLayout.setVisibility(View.VISIBLE); videoViewLayout.setVisibility(View.VISIBLE);
isImage = false; isImage = false;
} }
} }
int uplaodIndex = 0;
List<UploadBean> uploadBeans;
private void uploadFile(List<UploadBean> uploadBeans, boolean isImg) { private void uploadFile(List<UploadBean> uploadBeans, boolean isImg) {
uplaodIndex = 0; if (mUploadStrategy == null) {
imgUrlList = new ArrayList<>(); mUploadStrategy = new UploadQnImpl(mContext);
dialog = DialogUitl.loadingDialog(mContext, mContext.getResources().getString(com.yunbao.main.R.string.uploading));
dialog.show();
this.uploadBeans = uploadBeans;
if (uploadBeans != null && !uploadBeans.isEmpty()) {
uploadFile(uploadBeans.get(0), isImg);
} }
} mUploadStrategy.upload(uploadBeans, true, new UploadCallback() {
private void uploadFile(UploadBean uploadBean, boolean isImg) {
if (isImg) {
UploadQnImpl mUploadStrategy = new UploadQnImpl(mContext);
List<UploadBean> tempList = new ArrayList<>();
tempList.add(uploadBean);
mUploadStrategy.upload(tempList, true, new UploadCallback() {
@Override @Override
public void onFinish(List<UploadBean> list, boolean success) { public void onFinish(List<UploadBean> list, boolean success) {
if (!success) { if (!success) {
dialog.dismiss();
ToastUtil.show(mContext.getResources().getString(com.yunbao.main.R.string.upload_fail));
return; return;
} }
uplaodIndex++; if (isImage) {
imgUrlList.add(list.get(0).getRemoteAccessUrl()); for (int i = 0; i < list.size(); i++) {
if (uplaodIndex != uploadBeans.size()) { imgUrlList.add(list.get(i).getRemoteAccessUrl());
uploadFile(uploadBeans.get(uplaodIndex), isImg); }
} else { } else {
submit();
}
L.e(new Gson().toJson(list));
}
}, isImg);
} else {
UploadQnImpl mUploadStrategy = new UploadQnImpl(mContext);
List<UploadBean> tempList = new ArrayList<>();
tempList.add(uploadBeans.get(uplaodIndex));
mUploadStrategy.upload(tempList, true, new UploadCallback() {
@Override
public void onFinish(List<UploadBean> list, boolean success) {
if (!success) {
dialog.dismiss();
ToastUtil.show(mContext.getResources().getString(com.yunbao.main.R.string.upload_fail));
return;
}
videoUrl = list.get(0).getRemoteAccessUrl(); videoUrl = list.get(0).getRemoteAccessUrl();
}
submit(); submit();
L.e(new Gson().toJson(list)); L.e(new Gson().toJson(list));
} }
}, isImg); }, isImg);
} }
}
@Override
protected void onDestroy() {
super.onDestroy();
if (dialog != null) {
dialog.dismiss();
}
}
} }

View File

@ -0,0 +1,759 @@
package com.yunbao.common.activity;
import android.Manifest;
import android.annotation.SuppressLint;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.database.Cursor;
import android.graphics.Color;
import android.graphics.Outline;
import android.net.Uri;
import android.os.Build;
import android.provider.MediaStore;
import android.util.SparseArray;
import android.view.View;
import android.view.ViewOutlineProvider;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.ScrollView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import androidx.viewpager.widget.ViewPager;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.alibaba.fastjson.JSONArray;
import com.google.gson.Gson;
import com.makeramen.roundedimageview.RoundedImageView;
import com.ms.banner.Banner;
import com.xuexiang.xui.widget.flowlayout.FlowTagLayout;
import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.Constants;
import com.yunbao.common.R;
import com.yunbao.common.adapter.LabelTagAdapter;
import com.yunbao.common.adapter.UserCommunityAdapter;
import com.yunbao.common.adapter.UserHomeImgAdapter;
import com.yunbao.common.bean.ActiveBean;
import com.yunbao.common.bean.ActiveOtherBean;
import com.yunbao.common.bean.HomeUserExhibitInfoBean;
import com.yunbao.common.bean.HomeUserInfoBean;
import com.yunbao.common.bean.LabelBean;
import com.yunbao.common.bean.UserHomeImgBean;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.http.CommonHttpUtil;
import com.yunbao.common.http.base.HttpCallback;
import com.yunbao.common.http.live.LiveNetManager;
import com.yunbao.common.interfaces.CommonCallback;
import com.yunbao.common.upload.UploadBean;
import com.yunbao.common.upload.UploadCallback;
import com.yunbao.common.upload.UploadQnImpl;
import com.yunbao.common.utils.DialogUitl;
import com.yunbao.common.utils.FilesUtils;
import com.yunbao.common.utils.L;
import com.yunbao.common.utils.RouteUtil;
import com.yunbao.common.utils.StringUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.views.UserHomeImgsViewHolder;
import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
import pl.droidsonroids.gif.GifImageView;
@Route(path = RouteUtil.PATH_USER_HOME)
public class UserHomeActivity extends AbsActivity {
private final int CHOOSE_IMG = 100;//Android 5.0以下的
public static final int PERMISSION_REQUEST_CODE_IMG = 0;
private String uid;
private Banner mBanner;
private RecyclerView imgsRecyclerView;
private UserHomeImgAdapter userHomeImgAdapter;
private List<String> bannerImgList = new ArrayList<>();
private List<UserHomeImgBean> tempList;
private RoundedImageView avatar;
private TextView userName;
private TextView fansCount;
private TextView likeCount;
private LinearLayout followLayout;
private ImageView followIcon;
private TextView followName;
private TextView userId;
private TextView userStatus;
private ImageView userStatusIcon;
private ImageView user_sex;
private ImageView authorIcon;
private ImageView levelIcon;
private LinearLayout authenticationLayout;
private TextView signature;
private LinearLayout moreLayout;
private TextView moreText;
private ImageView moreIcon;
private HomeUserInfoBean userInfo;
private RecyclerView communityRecyclerView;
private LinearLayout itemLayout01;
private LinearLayout itemLayout02;
private LinearLayout itemLayout03;
private LinearLayout itemLayout04;
private FlowTagLayout myFlowTag; //我的标签
private LabelTagAdapter myAdapter;
private boolean isShowcase;
private boolean isAnchor;
private boolean isMe;
private RelativeLayout userPresidentLayout;
private TextView userPresidentName;
private RoundedImageView fansImg1;
private RoundedImageView fansImg2;
private RoundedImageView fansImg3;
private List<RoundedImageView> fansImgViewList = new ArrayList<>();
private RoundedImageView guardImg1;
private RoundedImageView guardImg2;
private RoundedImageView guardImg3;
private List<RoundedImageView> guardImgViewList = new ArrayList<>();
private RoundedImageView giftImg1;
private RoundedImageView giftImg2;
private RoundedImageView giftImg3;
private List<RoundedImageView> giftImgViewList = new ArrayList<>();
private RoundedImageView honorImg1;
private RoundedImageView honorImg2;
private RoundedImageView honorImg3;
private List<RoundedImageView> honorImgViewList = new ArrayList<>();
private TextView giftCount;
private List<String> tagList;
private GifImageView liveStatus;
private TextView topName;
private LinearLayout topLayout;
private ScrollView scrollView;
private RelativeLayout topImgLayout;
private ImageView imgUp;
private ImageView imgLabel;
private LinearLayout bottomEditLayout;
private UploadQnImpl mUploadStrategy;
private List<ActiveBean> videoList = new ArrayList<>();
@Override
protected int getLayoutId() {
return R.layout.activity_user_home;
}
@Override
protected void create() {
super.create();
}
@Override
protected void main() {
uid = getIntent().getStringExtra(Constants.TO_UID);
if (StringUtil.isEmpty(uid)) {
ToastUtil.show("用户不存在");
finish();
return;
}
initView();
getUseData();
getCommunityList();
}
private void getCommunityList() {
CommonHttpUtil.getOtherDynamicList(uid, new com.yunbao.common.http.HttpCallback() {
@Override
public void onSuccess(int code, String msg, String[] info) {
List<ActiveOtherBean> beanList = JSONArray.parseArray(Arrays.toString(info), ActiveOtherBean.class);
UserCommunityAdapter userCommunityAdapter = new UserCommunityAdapter(mContext, beanList);
userCommunityAdapter.setOnItemClickListener(new UserCommunityAdapter.onItemClickListener() {
@Override
public void onImgItem(ActiveOtherBean bean, int position) {
if (bean.getImg_or_video().equals("1")) {
RouteUtil.forwardCommunity(bean.getId());
} else {
int playPosition = 0;
for (int i = 0; i < videoList.size(); i++) {
if (videoList.get(i).getId().equals(bean.getId())) {
playPosition = i;
}
}
RouteUtil.forwardVideoActivity();
}
}
@Override
public void onVideoItem(String activeBean, int position) {
}
});
communityRecyclerView.setAdapter(userCommunityAdapter);
}
});
}
@SuppressLint({"SetTextI18n", "UseCompatLoadingForDrawables"})
private void initData(HomeUserInfoBean userInfoBean) {
userInfo = userInfoBean;
if (!userInfo.getCheckBlack().get(0).getU2t().equals("0")) {
ToastUtil.show("已拉黑,无法查看");
finish();
return;
}
if (!StringUtil.isEmpty(userInfo.getUserHomeTopInfo().getUser_president_name())) {
userPresidentLayout.setVisibility(View.VISIBLE);
userPresidentName.setText(userInfo.getUserHomeTopInfo().getUser_president_name());
}
isAnchor = userInfo.getUserHomeTopInfo().getIs_anchor() == 1;
isMe = CommonAppConfig.getInstance().getUserBean().getId().equals(String.valueOf(userInfo.getUserHomeTopInfo().getUser_id()));
ImgLoader.display(UserHomeActivity.this, userInfo.getUserHomeTopInfo().getUser_avatar(), avatar);
topName.setText(userInfo.getUserHomeTopInfo().getUser_name()); //用户名称-顶部
userName.setText(userInfo.getUserHomeTopInfo().getUser_name());//用户名称
fansCount.setText(String.valueOf(userInfo.getUserHomeTopInfo().getUser_fans_num()));//粉丝数量
likeCount.setText(String.valueOf(userInfo.getUserHomeTopInfo().getUser_love_num()));//关注数量
if (isMe) {
bottomEditLayout.setVisibility(View.VISIBLE);
imgUp.setVisibility(View.VISIBLE);
imgLabel.setVisibility(View.VISIBLE);
followLayout.setVisibility(View.GONE);
}
if (!StringUtil.isEmpty(userInfo.getUserHomeTopInfo().getUser_goodnum())) {
userId.setText("靓号:" + userInfo.getUserHomeTopInfo().getUser_goodnum());//用户靓号
} else {
userId.setText("ID:" + userInfo.getUserHomeTopInfo().getUser_id());//用户ID
}
if (userInfo.getUserHomeTopInfo().getRong_online().equals("0")) {
userStatus.setText("在线");
userStatusIcon.setImageDrawable(getResources().getDrawable(R.mipmap.icon_green));
} else {
userStatus.setText("离线");
userStatusIcon.setImageDrawable(getResources().getDrawable(R.mipmap.icon_gray));
}
if (userInfo.getUserHomeTopInfo().getIs_live() == 1) {
liveStatus.setVisibility(View.VISIBLE);
avatar.setBackground(getResources().getDrawable(R.drawable.bg_live_1));
}
ImgLoader.display(UserHomeActivity.this, Integer.parseInt(String.valueOf(userInfo.getUserHomeTopInfo().getUser_sex())) == 0 ? R.mipmap.icon_man_new : R.mipmap.icon_wumen, user_sex);
ImgLoader.display(UserHomeActivity.this, userInfo.getUserHomeTopInfo().getUser_level_anchor_img(), authorIcon);
ImgLoader.display(UserHomeActivity.this, userInfo.getUserHomeTopInfo().getUser_level_img(), levelIcon);
if (isAnchor) {//是否是主播
authorIcon.setVisibility(View.VISIBLE);
authenticationLayout.setVisibility(View.VISIBLE);
} else {
authorIcon.setVisibility(View.GONE);
authenticationLayout.setVisibility(View.GONE);
}
signature.setText(userInfo.getUserHomeTopInfo().getUser_signature());//个性签名
//标签
myAdapter = new LabelTagAdapter(mContext, new LabelTagAdapter.OnSureOnClickListener() {
@Override
public void sure(LabelBean.Children labelBean) {
}
});
tagList = new ArrayList<>();
if (!StringUtil.isEmpty(userInfo.getUserHomeTopInfo().getAge())) {
tagList.add(userInfo.getUserHomeTopInfo().getAge() + "");
}
if (!StringUtil.isEmpty(userInfo.getUserHomeTopInfo().getHeight())) {
tagList.add(userInfo.getUserHomeTopInfo().getHeight());
}
if (!StringUtil.isEmpty(userInfo.getUserHomeTopInfo().getCareer())) {
tagList.add(userInfo.getUserHomeTopInfo().getCareer());
}
if (userInfo.getUserHomeTopInfo().getCn_label() != null) {
if (userInfo.getUserHomeTopInfo().getCn_label().size() > 0) {
for (int i = 0; i < userInfo.getUserHomeTopInfo().getCn_label().size(); i++) {
if (!StringUtil.isEmpty(userInfo.getUserHomeTopInfo().getCn_label().get(i))) {
tagList.add(userInfo.getUserHomeTopInfo().getCn_label().get(i));
}
}
myFlowTag.setAdapter(myAdapter);
myFlowTag.setTagCheckedMode(FlowTagLayout.FLOW_TAG_CHECKED_NONE);
myAdapter.setData(tagList);
}
}
mBanner.setOutlineProvider(new ViewOutlineProvider() {
@Override
public void getOutline(View view, Outline outline) {
outline.setRoundRect(0, 0, 0, 0, 0);
}
});
mBanner.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
bannerImgList = userInfo.getUserHomeTopInfo().getUser_home_banner();
tempList = new ArrayList<>();
for (int i = 0; i < bannerImgList.size(); i++) {
tempList.add(new UserHomeImgBean(bannerImgList.get(i)));
}
if (tempList.size() > 0) {
tempList.get(0).setShow(true);
}
userHomeImgAdapter = new UserHomeImgAdapter(UserHomeActivity.this, tempList, isMe);
imgsRecyclerView.setLayoutManager(new LinearLayoutManager(mContext, LinearLayoutManager.HORIZONTAL, false));
imgsRecyclerView.setAdapter(userHomeImgAdapter);
userHomeImgAdapter.setOnItemClickListener(new UserHomeImgAdapter.onItemClickListener() {
@Override
public void onImgItem(UserHomeImgBean activeBean, int position) {
L.e("onImgItem:" + position);
mBanner.setCurrentPage(position).start();
for (int i = 0; i < tempList.size(); i++) {
if (i == position) {
tempList.get(i).setShow(true);
} else {
tempList.get(i).setShow(false);
}
}
userHomeImgAdapter.setCommentBeanList(tempList);
}
@Override
public void onImgDel(UserHomeImgBean activeBean, int position) {
bannerImgList.remove(position);
uploadImg(false);
}
});
mBanner.setAutoPlay(false).setPages(bannerImgList, new UserHomeImgsViewHolder()).setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
L.e("onPageSelected:" + position);
for (int i = 0; i < tempList.size(); i++) {
if (i == position) {
tempList.get(i).setShow(true);
} else {
tempList.get(i).setShow(false);
}
}
userHomeImgAdapter.setCommentBeanList(tempList);
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
mBanner.start();
}
private void initView() {
bottomEditLayout = findViewById(R.id.bottomEditLayout);
imgUp = findViewById(R.id.imgUp);
imgLabel = findViewById(R.id.imgLabel);
topImgLayout = findViewById(R.id.topImgLayout);
topLayout = findViewById(R.id.topLayout);
scrollView = findViewById(R.id.scrollView);
topName = findViewById(R.id.topName);
liveStatus = findViewById(R.id.liveStatus);
giftCount = findViewById(R.id.giftCount);
fansImg1 = findViewById(R.id.fansImg1);
fansImg2 = findViewById(R.id.fansImg2);
fansImg3 = findViewById(R.id.fansImg3);
fansImgViewList = new ArrayList<>();
fansImgViewList.add(fansImg1);
fansImgViewList.add(fansImg2);
fansImgViewList.add(fansImg3);
guardImg1 = findViewById(R.id.guardImg1);
guardImg2 = findViewById(R.id.guardImg2);
guardImg3 = findViewById(R.id.guardImg3);
guardImgViewList = new ArrayList<>();
guardImgViewList.add(guardImg1);
guardImgViewList.add(guardImg2);
guardImgViewList.add(guardImg3);
giftImg1 = findViewById(R.id.giftImg1);
giftImg2 = findViewById(R.id.giftImg2);
giftImg3 = findViewById(R.id.giftImg3);
giftImgViewList = new ArrayList<>();
giftImgViewList.add(giftImg1);
giftImgViewList.add(giftImg2);
giftImgViewList.add(giftImg3);
honorImg1 = findViewById(R.id.honorImg1);
honorImg2 = findViewById(R.id.honorImg2);
honorImg3 = findViewById(R.id.honorImg3);
honorImgViewList = new ArrayList<>();
honorImgViewList.add(honorImg1);
honorImgViewList.add(honorImg2);
honorImgViewList.add(honorImg3);
userPresidentLayout = findViewById(R.id.userPresidentLayout);
userPresidentName = findViewById(R.id.userPresidentName);
itemLayout01 = findViewById(R.id.itemLayout01);
itemLayout02 = findViewById(R.id.itemLayout02);
itemLayout03 = findViewById(R.id.itemLayout03);
itemLayout04 = findViewById(R.id.itemLayout04);
communityRecyclerView = findViewById(R.id.communityRecyclerView);
myFlowTag = findViewById(R.id.myFlowTag);
avatar = findViewById(R.id.avatar);
userName = findViewById(R.id.name);
fansCount = findViewById(R.id.fansCount);
likeCount = findViewById(R.id.likeCount);
followLayout = findViewById(R.id.followLayout);
followName = findViewById(R.id.followName);
followIcon = findViewById(R.id.followIcon);
userId = findViewById(R.id.userId);
userStatus = findViewById(R.id.userStatus);
userStatusIcon = findViewById(R.id.userStatusIcon);
user_sex = findViewById(R.id.user_sex);
levelIcon = findViewById(R.id.levelIcon);
authorIcon = findViewById(R.id.authorlIcon);
authenticationLayout = findViewById(R.id.authenticationLayout);
signature = findViewById(R.id.signature);
moreLayout = findViewById(R.id.moreLayout);
moreText = findViewById(R.id.moreText);
moreIcon = findViewById(R.id.moreIcon);
mBanner = findViewById(R.id.banner);
imgsRecyclerView = findViewById(R.id.imgsRecyclerView);
communityRecyclerView = findViewById(R.id.communityRecyclerView);
communityRecyclerView.setLayoutManager(new LinearLayoutManager(mContext, LinearLayoutManager.VERTICAL, false));
communityRecyclerView.setOverScrollMode(View.OVER_SCROLL_NEVER);
findViewById(R.id.back).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
followLayout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
CommonHttpUtil.setAttention(String.valueOf(userInfo.getUserHomeTopInfo().getUser_id()), new CommonCallback<Integer>() {
@Override
public void callback(Integer isAttention) {
if (isAttention == 1) {
ImgLoader.display(UserHomeActivity.this, R.mipmap.icon_like_followed, followIcon);
followName.setText("已关注");
followName.setTextColor(Color.parseColor("#777777"));
followLayout.setBackground(getResources().getDrawable(R.drawable.bg_main_com_type_1));
} else {
ImgLoader.display(UserHomeActivity.this, R.mipmap.icon_like_follow, followIcon);
followName.setText("关注");
followName.setTextColor(getResources().getColor(R.color.white));
followLayout.setBackground(getResources().getDrawable(R.drawable.bg_main_com_type));
}
}
});
}
});
moreLayout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (isShowcase) {
if (isAnchor) {
itemLayout01.setVisibility(View.GONE);
itemLayout02.setVisibility(View.GONE);
itemLayout03.setVisibility(View.GONE);
itemLayout04.setVisibility(View.GONE);
} else {
itemLayout03.setVisibility(View.GONE);
itemLayout04.setVisibility(View.GONE);
}
moreText.setText("查看更多");
ImgLoader.display(mContext, R.mipmap.icon_down, moreIcon);
} else {
if (isAnchor) {
itemLayout01.setVisibility(View.VISIBLE);
itemLayout02.setVisibility(View.VISIBLE);
itemLayout03.setVisibility(View.VISIBLE);
itemLayout04.setVisibility(View.VISIBLE);
} else {
itemLayout01.setVisibility(View.GONE);
itemLayout02.setVisibility(View.GONE);
}
moreText.setText("收起");
ImgLoader.display(mContext, R.mipmap.icon_up, moreIcon);
}
isShowcase = !isShowcase;
}
});
findViewById(R.id.back).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
scrollView.setOnScrollChangeListener(new View.OnScrollChangeListener() {
@Override
public void onScrollChange(View v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {
int height = (int) (topImgLayout.getMeasuredHeight() * 1.2);
if (scrollY <= 0) {
//滑动之前标题栏布局背景颜色为完全透明标题文字完全透明
topLayout.setBackgroundColor(Color.argb(0, 0, 0, 0));
topName.setTextColor(Color.argb(0, 255, 255, 255));
//让mScrollView滑动的距离在0~height之间时颜色发生渐变
} else if (scrollY > 0 && scrollY <= height) {
//获取渐变率
float scale = (float) scrollY / height;
//获取渐变数值
float alpha = (255 * scale);
//布局文本颜色逐渐发生变化
topLayout.setBackgroundColor(Color.argb((int) alpha, 0, 0, 0));
topName.setTextColor(Color.argb((int) alpha, 255, 255, 255));
} else {
//当滑动距离超过height布局文本颜色完全不透明
topLayout.setBackgroundColor(Color.argb(255, 0, 0, 0));
topName.setTextColor(Color.argb(255, 255, 255, 255));
}
}
});
topLayout.setBackgroundColor(Color.argb(0, 0, 0, 0));
topName.setTextColor(Color.argb(0, 255, 255, 255));
}
imgUp.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (bannerImgList.size() < 9) {
selectImg();
}
}
});
bottomEditLayout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
RouteUtil.forwardEditProfileActivity();
}
});
findViewById(R.id.setting).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SparseArray<String> array = new SparseArray<>();
array.append(1, "不感兴趣");
array.append(0, "举报");
array.append(2, "加入黑名单");
DialogUitl.showStringArrayDialog(UserHomeActivity.this, array, new DialogUitl.StringArrayDialogCallback() {
@Override
public void onItemClick(String text, int tag) {
if (tag == 0) {
CommonHttpUtil.noInterest(String.valueOf(userInfo.getUserHomeTopInfo().getUser_id()), new com.yunbao.common.http.HttpCallback() {
@Override
public void onSuccess(int code, String msg, String[] info) {
ToastUtil.show(msg);
}
});
} else if (tag == 1) {
RouteUtil.forwardLiveReportActivity(String.valueOf(userInfo.getUserHomeTopInfo().getUser_id()));
} else {
RouteUtil.forwardLiveReportActivity(String.valueOf(userInfo.getUserHomeTopInfo().getUser_id()));
}
}
});
}
});
}
private void selectImg() {
String permission1 = Manifest.permission.READ_EXTERNAL_STORAGE;
String permission2 = Manifest.permission.WRITE_EXTERNAL_STORAGE;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
permission1 = Manifest.permission.READ_MEDIA_IMAGES;
permission2 = Manifest.permission.READ_MEDIA_VIDEO;
}
int isPermission1 = ContextCompat.checkSelfPermission(mContext, permission1);
int isPermission2 = ContextCompat.checkSelfPermission(mContext, permission2);
if (isPermission1 == PackageManager.PERMISSION_GRANTED && isPermission2 == PackageManager.PERMISSION_GRANTED) {
openImageChooserActivity();
} else {
//申请权限
ActivityCompat.requestPermissions(UserHomeActivity.this, new String[]{permission1, permission2}, PERMISSION_REQUEST_CODE_IMG);
}
}
private void openImageChooserActivity() {
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, false);
startActivityForResult(intent, CHOOSE_IMG);
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == PERMISSION_REQUEST_CODE_IMG) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
openImageChooserActivity();
} else {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, PERMISSION_REQUEST_CODE_IMG);
}
}
}
private void getUseData() {
LiveNetManager.get(mContext).getUserHomeInfo(uid, new HttpCallback<HomeUserInfoBean>() {
@Override
public void onSuccess(HomeUserInfoBean data) {
initData(data);
}
@Override
public void onError(String error) {
}
});
LiveNetManager.get(mContext).getUserExhibitInfoInfo(uid, new HttpCallback<HomeUserExhibitInfoBean>() {
@SuppressLint("SetTextI18n")
@Override
public void onSuccess(HomeUserExhibitInfoBean data) {
//主播粉丝团
if (data.getUserHomeTopInfo().getFans().getList() != null) {
if (data.getUserHomeTopInfo().getFans().getList().size() >= 3) {
for (int i = 0; i < 3; i++) {
ImgLoader.display(mContext, data.getUserHomeTopInfo().getFans().getList().get(i).getAvatar(), fansImgViewList.get(i));
}
} else {
for (int i = 0; i < data.getUserHomeTopInfo().getFans().getList().size(); i++) {
ImgLoader.display(mContext, data.getUserHomeTopInfo().getFans().getList().get(i).getAvatar(), fansImgViewList.get(i));
}
}
}
//主播守护团
if (data.getUserHomeTopInfo().getGuard() != null) {
if (data.getUserHomeTopInfo().getGuard().size() >= 3) {
for (int i = 0; i < 3; i++) {
ImgLoader.display(mContext, data.getUserHomeTopInfo().getGuard().get(i).getAvatar(), guardImgViewList.get(i));
}
} else {
for (int i = 0; i < data.getUserHomeTopInfo().getGuard().size(); i++) {
ImgLoader.display(mContext, data.getUserHomeTopInfo().getGuard().get(i).getAvatar(), guardImgViewList.get(i));
}
}
}
//礼物墙
if (data.getGiftAlreadyWall().getGift_wall() != null) {
if (data.getGiftAlreadyWall().getGift_wall().size() >= 3) {
for (int i = 0; i < 3; i++) {
ImgLoader.display(mContext, data.getGiftAlreadyWall().getGift_wall().get(i).getGifticon(), giftImgViewList.get(i));
}
} else {
for (int i = 0; i < data.getGiftAlreadyWall().getGift_wall().size(); i++) {
ImgLoader.display(mContext, data.getGiftAlreadyWall().getGift_wall().get(i).getGifticon(), giftImgViewList.get(i));
}
}
giftCount.setText(data.getGiftAlreadyWall().getGift_wall().size() + "/36");
}
//荣誉墙
if (data.getUserHomeTopInfo().getDress() != null) {
if (data.getUserHomeTopInfo().getDress().size() >= 3) {
for (int i = 0; i < 3; i++) {
ImgLoader.display(mContext, data.getUserHomeTopInfo().getDress().get(i).getDisplay_src(), honorImgViewList.get(i));
}
} else {
for (int i = 0; i < data.getUserHomeTopInfo().getDress().size(); i++) {
ImgLoader.display(mContext, data.getUserHomeTopInfo().getDress().get(i).getDisplay_src(), honorImgViewList.get(i));
}
}
}
}
@Override
public void onError(String error) {
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK && requestCode == CHOOSE_IMG) {
// 获取用户选择的图片 URI
Uri[] imageUris = null;
if (data != null) {
imageUris = new Uri[]{data.getData()};
File file = new File(Objects.requireNonNull(FilesUtils.getPath(mContext, imageUris[0])));
uploadFile(file);
}
}
}
private void uploadFile(File file) {
if (mUploadStrategy == null) {
mUploadStrategy = new UploadQnImpl(mContext);
}
List<UploadBean> uploadBeans = new ArrayList<>();
UploadBean upVideoBean = new UploadBean(file, UploadBean.IMG);
uploadBeans.add(upVideoBean);
mUploadStrategy.upload(uploadBeans, true, new UploadCallback() {
@Override
public void onFinish(List<UploadBean> list, boolean success) {
if (!success) {
return;
}
bannerImgList.add("https://downs.yaoulive.com/" + list.get(0).getRemoteAccessUrl());
uploadImg(true);
L.e(new Gson().toJson(list));
}
}, true);
}
private void uploadImg(boolean isUp) {
CommonHttpUtil.uploadUserInfoImg(new Gson().toJson(bannerImgList), new com.yunbao.common.http.HttpCallback() {
@Override
public void onSuccess(int code, String msg, String[] info) {
if (code == 0 && info != null) {
if (isUp) {
ToastUtil.show("上传成功");
} else {
ToastUtil.show("删除成功");
}
mBanner.setPages(bannerImgList, new UserHomeImgsViewHolder()).start();
tempList = new ArrayList<>();
for (int i = 0; i < bannerImgList.size(); i++) {
tempList.add(new UserHomeImgBean(bannerImgList.get(i)));
}
if (tempList.size() > 0) {
tempList.get(0).setShow(true);
}
userHomeImgAdapter.setCommentBeanList(tempList);
}
}
});
}
private File uri2File(Uri uri) {
String img_path;
String[] proj = {MediaStore.Images.Media.DATA};
Cursor actualimagecursor = this.managedQuery(uri, proj, null, null, null);
if (actualimagecursor == null) {
img_path = uri.getPath();
} else {
int actual_image_column_index = actualimagecursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
actualimagecursor.moveToFirst();
img_path = actualimagecursor.getString(actual_image_column_index);
}
File file = new File(img_path);
return file;
}
}

View File

@ -1,40 +0,0 @@
package com.yunbao.common.activity;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.VideoView;
import androidx.annotation.Nullable;
import com.yunbao.common.R;
public class VideoPlayActivity extends AbsActivity {
private VideoView videoPlay;
@Override
protected int getLayoutId() {
return R.layout.activity_google_play;
}
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
Uri url = getIntent().getParcelableExtra("videoUri");
super.onCreate(savedInstanceState);
videoPlay = findViewById(R.id.videoPlay);
videoPlay.setVideoURI(url);
videoPlay.start();
findViewById(R.id.back).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
}
@Override
protected void onDestroy() {
super.onDestroy();
}
}

View File

@ -103,15 +103,6 @@ public class CommentAdapter extends RecyclerView.Adapter {
} }
} }
}); });
report1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (onItemClickListener != null) {
CommentBean.ReplyComment bean = (CommentBean.ReplyComment) v.getTag();
onItemClickListener.onReport(bean);
}
}
});
replyTextView.setOnClickListener(new View.OnClickListener() { replyTextView.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
@ -144,7 +135,6 @@ public class CommentAdapter extends RecyclerView.Adapter {
@SuppressLint("SetTextI18n") @SuppressLint("SetTextI18n")
public void setData(CommentBean bean) { public void setData(CommentBean bean) {
del.setTag(bean); del.setTag(bean);
del1.setTag(bean);
report.setTag(bean); report.setTag(bean);
replyTextView.setTag(bean); replyTextView.setTag(bean);
ImgLoader.display(itemView.getContext(), bean.getUser_avatar(), mAvatar); ImgLoader.display(itemView.getContext(), bean.getUser_avatar(), mAvatar);
@ -161,9 +151,8 @@ public class CommentAdapter extends RecyclerView.Adapter {
del.setVisibility(View.GONE); del.setVisibility(View.GONE);
} }
if (bean.getReplyCommentList() != null) { if (bean.getReplyCommentList() != null) {
replyCount.setText(String.format(mContext.getResources().getString(R.string.active_count), String.valueOf(bean.getReplyCommentList().size()))); replyCount.setText("" + bean.getReplyCommentList().size() + "条回复>");
if (bean.getReplyCommentList().size() > 0) { if (bean.getReplyCommentList().size() > 0) {
report1.setTag(bean.getReplyCommentList().get(0));
del1.setTag(bean.getReplyCommentList().get(0)); del1.setTag(bean.getReplyCommentList().get(0));
replyContent.setText(bean.getReplyCommentList().get(0).getContent()); replyContent.setText(bean.getReplyCommentList().get(0).getContent());
ImgLoader.display(itemView.getContext(), bean.getReplyCommentList().get(0).getUser_avatar(), mAvatar01); ImgLoader.display(itemView.getContext(), bean.getReplyCommentList().get(0).getUser_avatar(), mAvatar01);
@ -214,11 +203,10 @@ public class CommentAdapter extends RecyclerView.Adapter {
public void onClick(View v) { public void onClick(View v) {
if (!bean.isShow()) { if (!bean.isShow()) {
recyclerView.setVisibility(View.VISIBLE); recyclerView.setVisibility(View.VISIBLE);
replyCount.setText(mContext.getResources().getString(R.string.close)); replyCount.setText("收起");
} else { } else {
recyclerView.setVisibility(View.GONE); recyclerView.setVisibility(View.GONE);
replyCount.setText(String.format(mContext.getResources().getString(R.string.active_count), String.valueOf(bean.getReplyCommentList().size()))) replyCount.setText("" + bean.getReplyCommentList().size() + "条回复>");
;
} }
bean.setShow(!bean.isShow()); bean.setShow(!bean.isShow());
} }

View File

@ -32,7 +32,7 @@ public class CommentVideoAdapter extends RefreshAdapter<CommentBean> {
this.onItemClickListener = onItemClickListener; this.onItemClickListener = onItemClickListener;
} }
public CommentVideoAdapter(Context content, String authorId, CommentVideoAdapter.onItemClickListener onItemClickListener) { public CommentVideoAdapter(Context content, String authorId,CommentVideoAdapter.onItemClickListener onItemClickListener ) {
super(content); super(content);
this.onItemClickListener = onItemClickListener; this.onItemClickListener = onItemClickListener;
this.mContext = content; this.mContext = content;
@ -94,15 +94,6 @@ public class CommentVideoAdapter extends RefreshAdapter<CommentBean> {
author = itemView.findViewById(R.id.author); author = itemView.findViewById(R.id.author);
del1 = itemView.findViewById(R.id.del1); del1 = itemView.findViewById(R.id.del1);
report1 = itemView.findViewById(R.id.report1); report1 = itemView.findViewById(R.id.report1);
report1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (onItemClickListener != null) {
CommentBean.ReplyComment bean = (CommentBean.ReplyComment) v.getTag();
onItemClickListener.onReport(bean);
}
}
});
report.setOnClickListener(new View.OnClickListener() { report.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
@ -144,11 +135,9 @@ public class CommentVideoAdapter extends RefreshAdapter<CommentBean> {
@SuppressLint("SetTextI18n") @SuppressLint("SetTextI18n")
public void setData(CommentBean bean) { public void setData(CommentBean bean) {
del.setTag(bean); del.setTag(bean);
report1.setTag(bean);
report.setTag(bean); report.setTag(bean);
replyTextView.setTag(bean); replyTextView.setTag(bean);
del1.setTag(bean); ImgLoader.display(itemView.getContext(), bean.getUser_avatar(), mAvatar);
ImgLoader.displayAvatar(itemView.getContext(), bean.getUser_avatar(), mAvatar);
name.setText(bean.getUser_name()); name.setText(bean.getUser_name());
content.setText(bean.getContent()); content.setText(bean.getContent());
if (bean.getUser_id().equals(authorId)) { if (bean.getUser_id().equals(authorId)) {
@ -162,7 +151,7 @@ public class CommentVideoAdapter extends RefreshAdapter<CommentBean> {
del.setVisibility(View.GONE); del.setVisibility(View.GONE);
} }
if (bean.getReplyCommentList() != null) { if (bean.getReplyCommentList() != null) {
replyCount.setText( String.format(mContext.getResources().getString(R.string.active_count), String.valueOf(bean.getReplyCommentList().size()))); replyCount.setText("" + bean.getReplyCommentList().size() + "条回复>");
if (bean.getReplyCommentList().size() > 0) { if (bean.getReplyCommentList().size() > 0) {
del1.setTag(bean.getReplyCommentList().get(0)); del1.setTag(bean.getReplyCommentList().get(0));
replyContent.setText(bean.getReplyCommentList().get(0).getContent()); replyContent.setText(bean.getReplyCommentList().get(0).getContent());
@ -214,10 +203,10 @@ public class CommentVideoAdapter extends RefreshAdapter<CommentBean> {
public void onClick(View v) { public void onClick(View v) {
if (!bean.isShow()) { if (!bean.isShow()) {
recyclerView.setVisibility(View.VISIBLE); recyclerView.setVisibility(View.VISIBLE);
replyCount.setText(mContext.getResources().getString(R.string.close)); replyCount.setText("收起");
} else { } else {
recyclerView.setVisibility(View.GONE); recyclerView.setVisibility(View.GONE);
replyCount.setText( String.format(mContext.getResources().getString(R.string.active_count), String.valueOf(bean.getReplyCommentList().size()))); replyCount.setText("" + bean.getReplyCommentList().size() + "条回复>");
} }
bean.setShow(!bean.isShow()); bean.setShow(!bean.isShow());
} }

View File

@ -1,59 +0,0 @@
package com.yunbao.common.adapter;
import android.content.Context;
import android.graphics.Color;
import android.view.TextureView;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
public class DebugDialogAdapter extends RecyclerView.Adapter<DebugDialogAdapter.DebugViewHolder> {
TreeMap<String, String> paramMap = new TreeMap<>();
private Context mContext;
public DebugDialogAdapter(Context mContext) {
this.mContext = mContext;
}
public void setParamMap(TreeMap<String, String> paramMap) {
this.paramMap = paramMap;
notifyDataSetChanged();
}
@NonNull
@Override
public DebugViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
return new DebugViewHolder(new TextView(mContext));
}
@Override
public void onBindViewHolder(@NonNull DebugViewHolder holder, int position) {
List<String> list = new ArrayList<>(paramMap.keySet());
holder.setData(list.get(position), paramMap.get(list.get(position)));
}
@Override
public int getItemCount() {
return paramMap.size();
}
public class DebugViewHolder extends RecyclerView.ViewHolder {
public DebugViewHolder(@NonNull View itemView) {
super(itemView);
}
public void setData(String tag, String msg) {
((TextView) itemView).setText(tag + ":" + msg);
((TextView) itemView).setTextColor(Color.BLACK);
}
}
}

View File

@ -1,93 +0,0 @@
package com.yunbao.common.adapter;
import android.os.CountDownTimer;
import android.util.SparseArray;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.yunbao.common.R;
import com.yunbao.common.bean.sendMoneyLongListModel;
import com.yunbao.common.views.DragonSendMoneyListViewHolder;
import java.util.ArrayList;
import java.util.List;
public class DragonSendMoneyListAdapter extends RecyclerView.Adapter {
RecyclerView send_money_list;
boolean isAnchor;
SparseArray<CountDownTimer> countDownMap;
boolean isAttention;
public DragonSendMoneyListAdapter setAnchor(boolean anchor) {
isAnchor = anchor;
return this;
}
public DragonSendMoneyListAdapter setAttention(boolean attention) {
isAttention = attention;
return this;
}
public List<sendMoneyLongListModel> getMoneyLongListModels() {
return moneyLongListModels;
}
public DragonSendMoneyListAdapter(RecyclerView send_money_list) {
this.send_money_list = send_money_list;
countDownMap = new SparseArray<>();
}
List<sendMoneyLongListModel> moneyLongListModels = new ArrayList<>();
DragonSendMoneyListViewHolder.DragonSendMoneyListClicksCallBack callBack;
public void setCallBack(DragonSendMoneyListViewHolder.DragonSendMoneyListClicksCallBack callBack) {
this.callBack = callBack;
}
public void setMoneyLongListModels(List<sendMoneyLongListModel> models) {
moneyLongListModels.clear();
moneyLongListModels.addAll(models);
notifyDataSetChanged();
}
@NonNull
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View goodGiftsView = LayoutInflater.from(parent.getContext()).inflate(R.layout.view_dragon_send_money_list, parent, false);
return new DragonSendMoneyListViewHolder(goodGiftsView);
}
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
DragonSendMoneyListViewHolder sendMoneyListViewHolder = (DragonSendMoneyListViewHolder) holder;
// sendMoneyLongListModel model = moneyLongListModels.get(position);
// long mPkTimeCount2 = Long.parseLong(model.getCountdown());
// long time = mPkTimeCount2 * 1000;
// if (sendMoneyListViewHolder.countDownTimer != null) {
// sendMoneyListViewHolder.countDownTimer.cancel();
// }
// if (time > 0) {
//
// }
sendMoneyListViewHolder.setData(moneyLongListModels.get(position), callBack, isAnchor,isAttention);
}
@Override
public int getItemCount() {
return moneyLongListModels.size();
}
@Override
public int getItemViewType(int position) {
return super.getItemViewType(position);
}
}

View File

@ -36,7 +36,7 @@ public class LabelTagAdapter extends BaseTagAdapter<String, TextView> {
@Override @Override
protected void convert(TextView textView, String item, int position) { protected void convert(TextView textView, String item, int position) {
textView.setText("#"+item); textView.setText(item);
} }
public interface OnSureOnClickListener { public interface OnSureOnClickListener {

View File

@ -1,46 +0,0 @@
package com.yunbao.common.adapter;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.yunbao.common.R;
import com.yunbao.common.views.LiveBuyGuardPrivilegeViewHolder;
import java.util.ArrayList;
import java.util.List;
public class LiveBuyGuardPrivilegeAdapter extends RecyclerView.Adapter {
List<String> guardPrivilege = new ArrayList<>();
public void setGuardPrivilege(List<String> privilege) {
guardPrivilege.clear();
guardPrivilege.addAll(privilege);
notifyDataSetChanged();
}
public LiveBuyGuardPrivilegeAdapter(List<String> guardPrivilege) {
this.guardPrivilege = guardPrivilege;
}
@NonNull
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View herdView = LayoutInflater.from(parent.getContext()).inflate(R.layout.view_live_buy_guard_privilege_item, parent, false);
return new LiveBuyGuardPrivilegeViewHolder(herdView);
}
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
LiveBuyGuardPrivilegeViewHolder buyGuardSelectViewHolder = (LiveBuyGuardPrivilegeViewHolder) holder;
buyGuardSelectViewHolder.setData(guardPrivilege.get(position));
}
@Override
public int getItemCount() {
return guardPrivilege.size();
}
}

View File

@ -1,50 +0,0 @@
package com.yunbao.common.adapter;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.yunbao.common.R;
import com.yunbao.common.bean.GuardPriceModel;
import com.yunbao.common.views.LiveBuyGuardSelectViewHolder;
import java.util.ArrayList;
import java.util.List;
public class LiveBuyGuardSelectAdapter extends RecyclerView.Adapter {
List<GuardPriceModel> price = new ArrayList<>();
GuardPriceModel model;
public LiveBuyGuardSelectAdapter(List<GuardPriceModel> price, GuardPriceModel mModel) {
this.price = price;
model = mModel;
}
@NonNull
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View herdView = LayoutInflater.from(parent.getContext()).inflate(R.layout.view_live_buy_guard_slelect_item, parent, false);
return new LiveBuyGuardSelectViewHolder(herdView);
}
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
LiveBuyGuardSelectViewHolder buyGuardSelectViewHolder = (LiveBuyGuardSelectViewHolder) holder;
buyGuardSelectViewHolder.setData(price.get(position), liveBuyGuardSelectClickListener,model);
}
@Override
public int getItemCount() {
return price.size();
}
private LiveBuyGuardSelectViewHolder.LiveBuyGuardSelectClickListener liveBuyGuardSelectClickListener;
public LiveBuyGuardSelectAdapter setLiveBuyGuardSelectClickListener(LiveBuyGuardSelectViewHolder.LiveBuyGuardSelectClickListener liveBuyGuardSelectClickListener) {
this.liveBuyGuardSelectClickListener = liveBuyGuardSelectClickListener;
return this;
}
}

View File

@ -45,6 +45,7 @@ public class SudTitleSelectAdapter extends RecyclerView.Adapter {
} }
} }
}); });
} }
@Override @Override

View File

@ -17,7 +17,6 @@ import com.alibaba.fastjson.JSONObject;
import com.makeramen.roundedimageview.RoundedImageView; import com.makeramen.roundedimageview.RoundedImageView;
import com.yunbao.common.R; import com.yunbao.common.R;
import com.yunbao.common.activity.AbsActivity; import com.yunbao.common.activity.AbsActivity;
import com.yunbao.common.bean.ActiveBean;
import com.yunbao.common.bean.ActiveOtherBean; import com.yunbao.common.bean.ActiveOtherBean;
import com.yunbao.common.dialog.ImagePreviewDialog; import com.yunbao.common.dialog.ImagePreviewDialog;
import com.yunbao.common.glide.ImgLoader; import com.yunbao.common.glide.ImgLoader;
@ -28,19 +27,17 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
public class UserCommunityAdapter extends RecyclerView.Adapter { public class UserCommunityAdapter extends RecyclerView.Adapter {
private List<ActiveBean> commentBeanList; private List<ActiveOtherBean> commentBeanList;
private Context mContext; private Context mContext;
private onItemClickListener onItemClickListener; private onItemClickListener onItemClickListener;
private boolean isMe;
public void setOnItemClickListener(UserCommunityAdapter.onItemClickListener onItemClickListener) { public void setOnItemClickListener(UserCommunityAdapter.onItemClickListener onItemClickListener) {
this.onItemClickListener = onItemClickListener; this.onItemClickListener = onItemClickListener;
} }
public UserCommunityAdapter(Context content, List<ActiveBean> commentBeanList, boolean isMe) { public UserCommunityAdapter(Context content, List<ActiveOtherBean> commentBeanList) {
this.mContext = content; this.mContext = content;
this.commentBeanList = commentBeanList; this.commentBeanList = commentBeanList;
this.isMe = isMe;
} }
@NonNull @NonNull
@ -72,7 +69,6 @@ public class UserCommunityAdapter extends RecyclerView.Adapter {
private TextView likeCount; private TextView likeCount;
private TextView comCount; private TextView comCount;
private TextView shareCount; private TextView shareCount;
private ImageView more_del;
public CommentViewHolder(@NonNull View itemView) { public CommentViewHolder(@NonNull View itemView) {
super(itemView); super(itemView);
@ -86,40 +82,19 @@ public class UserCommunityAdapter extends RecyclerView.Adapter {
likeCount = itemView.findViewById(R.id.likeCount); likeCount = itemView.findViewById(R.id.likeCount);
comCount = itemView.findViewById(R.id.comCount); comCount = itemView.findViewById(R.id.comCount);
shareCount = itemView.findViewById(R.id.shareCount); shareCount = itemView.findViewById(R.id.shareCount);
more_del = itemView.findViewById(R.id.more_del);
more_del.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (onItemClickListener != null) {
onItemClickListener.onItemMore((ActiveBean) v.getTag(), getPosition());
}
}
});
itemView.setOnClickListener(new View.OnClickListener() { itemView.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
if (onItemClickListener != null) { onItemClickListener.onImgItem((ActiveOtherBean) v.getTag(), getPosition());
ActiveBean activeOtherBean = (ActiveBean) v.getTag();
if (activeOtherBean.getImg_or_video().equals("1")) {
onItemClickListener.onImgItem(activeOtherBean, getPosition());
} else {
onItemClickListener.onItemVideo(activeOtherBean, getPosition());
}
}
} }
}); });
} }
@SuppressLint("SetTextI18n") @SuppressLint("SetTextI18n")
public void setData(ActiveBean bean) { public void setData(ActiveOtherBean bean) {
itemView.setTag(bean); itemView.setTag(bean);
mAvatar.setTag(bean); mAvatar.setTag(bean);
more_del.setTag(bean);
if (isMe) {
more_del.setVisibility(View.VISIBLE);
} else {
more_del.setVisibility(View.INVISIBLE);
}
ImgLoader.display(mContext, bean.getUser_avatar(), mAvatar); ImgLoader.display(mContext, bean.getUser_avatar(), mAvatar);
userName.setText(bean.getUser_name()); userName.setText(bean.getUser_name());
time.setText(bean.getCreate_time()); time.setText(bean.getCreate_time());
@ -169,10 +144,8 @@ public class UserCommunityAdapter extends RecyclerView.Adapter {
} }
public interface onItemClickListener { public interface onItemClickListener {
void onImgItem(ActiveBean activeBean, int position); void onImgItem(ActiveOtherBean activeBean, int position);
void onItemMore(ActiveBean activeBean, int position); void onVideoItem(String activeBean, int position);
void onItemVideo(ActiveBean activeBean, int position);
} }
} }

View File

@ -1,76 +0,0 @@
package com.yunbao.common.bean;
import com.google.gson.annotations.SerializedName;
import java.util.List;
public class CareerBean extends BaseModel {
int id;
int pid;
@SerializedName("cn_title")
String titleCn;
@SerializedName("en_title")
String titleEn;
@SerializedName("create_time")
long createTime;
@SerializedName("uplong_time")
long uplongTime;
@SerializedName("children")
List<CareerBean> children;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getPid() {
return pid;
}
public void setPid(int pid) {
this.pid = pid;
}
public String getTitleCn() {
return titleCn;
}
public void setTitleCn(String titleCn) {
this.titleCn = titleCn;
}
public String getTitleEn() {
return titleEn;
}
public void setTitleEn(String titleEn) {
this.titleEn = titleEn;
}
public long getCreateTime() {
return createTime;
}
public void setCreateTime(long createTime) {
this.createTime = createTime;
}
public long getUplongTime() {
return uplongTime;
}
public void setUplongTime(long uplongTime) {
this.uplongTime = uplongTime;
}
public List<CareerBean> getChildren() {
return children;
}
public void setChildren(List<CareerBean> children) {
this.children = children;
}
}

View File

@ -1,48 +0,0 @@
package com.yunbao.common.bean;
import com.google.gson.annotations.SerializedName;
import java.util.List;
public class CheckUpgradesModel extends BaseModel {
/**
* {
* "level": 33, // 等级
* "rewards": [ // 奖励信息
* {
* "id": 1,
* "reward_name": "星之守護等級牌", // 奖励名称
* "image_path": "https://ceshi.yaoulive.com/data/upload/20240304/tequan_1.png" // 图片链接
* },
* {
* "id": 2,
* "reward_name": "人氣票",
* "image_path": "https://ceshi.yaoulive.com/data/upload/20240304/tequan_1.png"
* }
* ]
* }
* }
*/
@SerializedName("level")
private String level;
@SerializedName("rewards")
private List<RewardsModel> rewards;
public String getLevel() {
return level;
}
public CheckUpgradesModel setLevel(String level) {
this.level = level;
return this;
}
public List<RewardsModel> getRewards() {
return rewards;
}
public CheckUpgradesModel setRewards(List<RewardsModel> rewards) {
this.rewards = rewards;
return this;
}
}

View File

@ -43,17 +43,6 @@ public class EnterRoomNewModel extends BaseModel {
private int quickGiftRemainingQuantity;//剩余的小PD礼物数量 private int quickGiftRemainingQuantity;//剩余的小PD礼物数量
@SerializedName("if_viewing_duration_complete") @SerializedName("if_viewing_duration_complete")
private int ifViewingDurationComplete;//通过观看时间获取小PD礼物的次数 private int ifViewingDurationComplete;//通过观看时间获取小PD礼物的次数
@SerializedName("sendMoneyLongStatus")
private SendMoneyLongStatusModel model;
public SendMoneyLongStatusModel getModel() {
return model;
}
public EnterRoomNewModel setModel(SendMoneyLongStatusModel model) {
this.model = model;
return this;
}
public int getQuickGiftRemainingQuantity() { public int getQuickGiftRemainingQuantity() {
return quickGiftRemainingQuantity; return quickGiftRemainingQuantity;

View File

@ -1,16 +0,0 @@
package com.yunbao.common.bean;
import com.google.gson.annotations.SerializedName;
public class FirstLoginBean extends BaseModel{
@SerializedName("status")
int status=-1;//0是第一次登陸1是已經登錄過的
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
}

View File

@ -1,142 +0,0 @@
package com.yunbao.common.bean;
import android.text.TextUtils;
import com.google.gson.annotations.SerializedName;
import java.util.List;
public class GuardDataTipModel extends BaseModel {
/**
* {
* "guard_name": "星之守護", // 守护名称
* "guard_type": 1, // 守护类型
* "close_img": "https://ceshi.yaoulive.com/data/upload/20240304/guard_xing_close.png", // 未开通图标
* "open_img": "https://ceshi.yaoulive.com/data/upload/20240304/guard_xing_open.png", // 已开通图标
* "is_open": true, // 是否开通 .true .false
* "price": { // 价格
* {
* "opening_time": "1個月", // 开通时长
* "original_price": "188000", // 原价
* "discount_price": "", // 折扣价
* "discount": "", // 折扣
* "price_key": 1
* },
* {
* "opening_time": "3個月",
* "original_price": "564000",
* "discount_price": "398000",
* "discount": "7.1折",
* "price_key": 3
* },
* {
* "opening_time": "6個月",
* "original_price": "1128000",
* "discount_price": "738000",
* "discount": "6.5折",
* "price_key": 6
* },
* {
* "opening_time": "12個月",
* "original_price": "2256000",
* "discount_price": "1314000",
* "discount": "5.8折",
* "price_key": 12
* }
* ],
* "guard_privilege": [
* "https://ceshi.yaoulive.com/data/upload/20240304/tequan_1.png",
* "https://ceshi.yaoulive.com/data/upload/20240304/tequan_2.png",
* "https://ceshi.yaoulive.com/data/upload/20240304/tequan_3.png",
* "https://ceshi.yaoulive.com/data/upload/20240304/tequan_1.png",
* "https://ceshi.yaoulive.com/data/upload/20240304/tequan_2.png",
* "https://ceshi.yaoulive.com/data/upload/20240304/tequan_3.png",
* "https://ceshi.yaoulive.com/data/upload/20240304/tequan_1.png",
* "https://ceshi.yaoulive.com/data/upload/20240304/tequan_1.png",
* "https://ceshi.yaoulive.com/data/upload/20240304/tequan_2.png",
* "https://ceshi.yaoulive.com/data/upload/20240304/tequan_3.png"
* ]
* }
*/
@SerializedName("guard_name")
private String guardName;
@SerializedName("guard_type")
private int guardType;
@SerializedName("close_img")
private String closeImg;
@SerializedName("open_img")
private String openImg;
@SerializedName("is_open")
private String isOpen;
@SerializedName("price")
private List<GuardPriceModel> price;
@SerializedName("guard_privilege")
private List<String> guardPrivilege;
public String getGuardName() {
return guardName;
}
public GuardDataTipModel setGuardName(String guardName) {
this.guardName = guardName;
return this;
}
public int getGuardType() {
return guardType;
}
public GuardDataTipModel setGuardType(int guardType) {
this.guardType = guardType;
return this;
}
public String getCloseImg() {
return closeImg;
}
public GuardDataTipModel setCloseImg(String closeImg) {
this.closeImg = closeImg;
return this;
}
public String getOpenImg() {
return openImg;
}
public GuardDataTipModel setOpenImg(String openImg) {
this.openImg = openImg;
return this;
}
public boolean isOpen() {
return TextUtils.equals(isOpen, "1");
}
public String getIsOpen() {
return isOpen;
}
public GuardDataTipModel setIsOpen(String isOpen) {
this.isOpen = isOpen;
return this;
}
public List<GuardPriceModel> getPrice() {
return price;
}
public GuardDataTipModel setPrice(List<GuardPriceModel> price) {
this.price = price;
return this;
}
public List<String> getGuardPrivilege() {
return guardPrivilege;
}
public GuardDataTipModel setGuardPrivilege(List<String> guardPrivilege) {
this.guardPrivilege = guardPrivilege;
return this;
}
}

View File

@ -1,31 +0,0 @@
package com.yunbao.common.bean;
import com.google.gson.annotations.SerializedName;
import java.util.List;
public class GuardGetGuardOpenInfoModel extends BaseModel {
@SerializedName("user_info")
private GuardUserInfoModel userInfo;
@SerializedName("guard_data")
private List<GuardDataTipModel> guardData;
public GuardUserInfoModel getUserInfo() {
return userInfo;
}
public GuardGetGuardOpenInfoModel setUserInfo(GuardUserInfoModel userInfo) {
this.userInfo = userInfo;
return this;
}
public List<GuardDataTipModel> getGuardData() {
return guardData;
}
public GuardGetGuardOpenInfoModel setGuardData(List<GuardDataTipModel> guardData) {
this.guardData = guardData;
return this;
}
}

View File

@ -1,142 +0,0 @@
package com.yunbao.common.bean;
import com.google.gson.annotations.SerializedName;
public class GuardGetGuardUserInfoModel extends BaseModel {
/**
* "info": {
* "uid": "98923", // 用户ID
* "user_avatar": "https://downs.yaoulive.com/20230706/0572c0f694601f4d2695cd210effbe93.jpeg?imageView2/2/w/600/h/600", // 用户头像链接
* "liveuid": "98889", // 主播ID
* "live_avatar": "https://ceshi.yaoulive.com/data/upload/20230522/20230526102906.png", // 主播头像链接
* "guard_type": 0, // 守护类型 0.未开通 1.星之守护 2.王之守护 3.神之守护
* "exp": 0, // 守护经验值
* "level": 0, // 守护等级
* "endtime": 0, // 到期时间
* "user_language": "chinese",
* "live_language": "chinese"
* }
* }
*/
@SerializedName("uid")
private String uid;
@SerializedName("user_avatar")
private String userAvatar;
@SerializedName("liveuid")
private String liveuid;
@SerializedName("live_avatar")
private String liveAvatar;
@SerializedName("guard_type")
private int guardType;
@SerializedName("exp")
private String exp;
@SerializedName("level")
private int level;
@SerializedName("endtime")
private long endtime;
@SerializedName("user_language")
private String userLanguage;
@SerializedName("live_language")
private String liveLanguage;
@SerializedName("is_open")
private String isOpen;
public String getIsOpen() {
return isOpen;
}
public GuardGetGuardUserInfoModel setIsOpen(String isOpen) {
this.isOpen = isOpen;
return this;
}
public String getUid() {
return uid;
}
public GuardGetGuardUserInfoModel setUid(String uid) {
this.uid = uid;
return this;
}
public String getUserAvatar() {
return userAvatar;
}
public GuardGetGuardUserInfoModel setUserAvatar(String userAvatar) {
this.userAvatar = userAvatar;
return this;
}
public String getLiveuid() {
return liveuid;
}
public GuardGetGuardUserInfoModel setLiveuid(String liveuid) {
this.liveuid = liveuid;
return this;
}
public String getLiveAvatar() {
return liveAvatar;
}
public GuardGetGuardUserInfoModel setLiveAvatar(String liveAvatar) {
this.liveAvatar = liveAvatar;
return this;
}
public int getGuardType() {
return guardType;
}
public GuardGetGuardUserInfoModel setGuardType(int guardType) {
this.guardType = guardType;
return this;
}
public String getExp() {
return exp;
}
public GuardGetGuardUserInfoModel setExp(String exp) {
this.exp = exp;
return this;
}
public int getLevel() {
return level;
}
public GuardGetGuardUserInfoModel setLevel(int level) {
this.level = level;
return this;
}
public long getEndtime() {
return endtime;
}
public GuardGetGuardUserInfoModel setEndtime(long endtime) {
this.endtime = endtime;
return this;
}
public String getUserLanguage() {
return userLanguage;
}
public GuardGetGuardUserInfoModel setUserLanguage(String userLanguage) {
this.userLanguage = userLanguage;
return this;
}
public String getLiveLanguage() {
return liveLanguage;
}
public GuardGetGuardUserInfoModel setLiveLanguage(String liveLanguage) {
this.liveLanguage = liveLanguage;
return this;
}
}

View File

@ -1,145 +0,0 @@
package com.yunbao.common.bean;
import com.google.gson.annotations.SerializedName;
public class GuardMaturityDateRemindModel extends BaseModel{
@SerializedName("_method_")
private String method;
@SerializedName("action")
private String action;
@SerializedName("is_overdue")
private int isOverdue;
@SerializedName("days")
private int days;
@SerializedName("uid")
private String uid;
@SerializedName("liveuid")
private String liveuid;
@SerializedName("user_avatar")
private String userAvatar;
@SerializedName("user_nicename")
private String userNicename;
@SerializedName("live_avatar")
private String liveAvatar;
@SerializedName("live_nicename")
private String liveNicename;
@SerializedName("ct")
private String ct;
@SerializedName("guard_type")
private String guardType;
public String getGuardType() {
return guardType;
}
public GuardMaturityDateRemindModel setGuardType(String guardType) {
this.guardType = guardType;
return this;
}
public String getMethod() {
return method;
}
public void setMethod(String method) {
this.method = method;
}
public String getAction() {
return action;
}
public void setAction(String action) {
this.action = action;
}
public int getIsOverdue() {
return isOverdue;
}
public void setIsOverdue(int isOverdue) {
this.isOverdue = isOverdue;
}
public int getDays() {
return days;
}
public void setDays(int days) {
this.days = days;
}
public String getUid() {
return uid;
}
public void setUid(String uid) {
this.uid = uid;
}
public String getLiveuid() {
return liveuid;
}
public void setLiveuid(String liveuid) {
this.liveuid = liveuid;
}
public String getUserAvatar() {
return userAvatar;
}
public void setUserAvatar(String userAvatar) {
this.userAvatar = userAvatar;
}
public String getUserNicename() {
return userNicename;
}
public void setUserNicename(String userNicename) {
this.userNicename = userNicename;
}
public String getLiveAvatar() {
return liveAvatar;
}
public void setLiveAvatar(String liveAvatar) {
this.liveAvatar = liveAvatar;
}
public String getLiveNicename() {
return liveNicename;
}
public void setLiveNicename(String liveNicename) {
this.liveNicename = liveNicename;
}
public String getCt() {
return ct;
}
public void setCt(String ct) {
this.ct = ct;
}
@Override
public String toString() {
return "GuardMaturityDateRemindModel{" +
"method='" + method + '\'' +
", action='" + action + '\'' +
", isOverdue=" + isOverdue +
", days=" + days +
", uid='" + uid + '\'' +
", liveuid='" + liveuid + '\'' +
", userAvatar='" + userAvatar + '\'' +
", userNicename='" + userNicename + '\'' +
", liveAvatar='" + liveAvatar + '\'' +
", liveNicename='" + liveNicename + '\'' +
", ct='" + ct + '\'' +
'}';
}
}

View File

@ -8,17 +8,6 @@ public class GuardModel extends BaseModel {
private String type; private String type;
@SerializedName("endtime") @SerializedName("endtime")
private String endtime; private String endtime;
@SerializedName("guard_type")
private String guardType;
public String getGuardType() {
return guardType;
}
public GuardModel setGuardType(String guardType) {
this.guardType = guardType;
return this;
}
public String getType() { public String getType() {
return type; return type;

View File

@ -1,70 +0,0 @@
package com.yunbao.common.bean;
import com.google.gson.annotations.SerializedName;
public class GuardPriceModel extends BaseModel {
/**
* {
* "opening_time": "1個月", // 开通时长
* "original_price": "188000", // 原价
* "discount_price": "", // 折扣价
* "discount": "", // 折扣
* "price_key": 1
* }
*/
@SerializedName("opening_time")
private String openingTime;
@SerializedName("original_price")
private String originalPrice;
@SerializedName("discount_price")
private String discountPrice;
@SerializedName("discount")
private String discount;
@SerializedName("price_key")
private int priceKey;
public String getOpeningTime() {
return openingTime;
}
public GuardPriceModel setOpeningTime(String openingTime) {
this.openingTime = openingTime;
return this;
}
public String getOriginalPrice() {
return originalPrice;
}
public GuardPriceModel setOriginalPrice(String originalPrice) {
this.originalPrice = originalPrice;
return this;
}
public String getDiscountPrice() {
return discountPrice;
}
public GuardPriceModel setDiscountPrice(String discountPrice) {
this.discountPrice = discountPrice;
return this;
}
public String getDiscount() {
return discount;
}
public GuardPriceModel setDiscount(String discount) {
this.discount = discount;
return this;
}
public int getPriceKey() {
return priceKey;
}
public GuardPriceModel setPriceKey(int priceKey) {
this.priceKey = priceKey;
return this;
}
}

View File

@ -1,142 +0,0 @@
package com.yunbao.common.bean;
import com.google.gson.annotations.SerializedName;
public class GuardUserInfoModel extends BaseModel {
/**
* {
* "user_info": { // 用户开通信息
* "uid": "98888", // 用户ID
* "user_avatar": "https://downs.yaoulive.com/mannine.png", // 用户头像链接
* "liveuid": "98889", // 主播ID
* "live_avatar": "https://ceshi.yaoulive.com/data/upload/20230522/20230526102906.png", // 主播头像链接
* "guard_type": 1, // 守护类型
* "exp": 0, // 经验值
* "level": 1, // 等级
* "endtime": 1710145929, // 到期时间
* "user_language": "chinese", // 用户语言
* "live_language": "chinese" // 主播语言
* }
*/
@SerializedName("uid")
private String uid;
@SerializedName("user_avatar")
private String userAvatar;
@SerializedName("liveuid")
private String liveuid;
@SerializedName("live_avatar")
private String liveAvatar;
@SerializedName("guard_type")
private int guardType;
@SerializedName("exp")
private String exp;
@SerializedName("level")
private String level;
@SerializedName("endtime")
private String endtime;
@SerializedName("user_language")
private String userLanguage;
@SerializedName("live_language")
private String liveLanguage;
@SerializedName("is_open")
private String isOpen;
public String getIsOpen() {
return isOpen;
}
public GuardUserInfoModel setIsOpen(String isOpen) {
this.isOpen = isOpen;
return this;
}
public String getUid() {
return uid;
}
public GuardUserInfoModel setUid(String uid) {
this.uid = uid;
return this;
}
public String getUserAvatar() {
return userAvatar;
}
public GuardUserInfoModel setUserAvatar(String userAvatar) {
this.userAvatar = userAvatar;
return this;
}
public String getLiveuid() {
return liveuid;
}
public GuardUserInfoModel setLiveuid(String liveuid) {
this.liveuid = liveuid;
return this;
}
public String getLiveAvatar() {
return liveAvatar;
}
public GuardUserInfoModel setLiveAvatar(String liveAvatar) {
this.liveAvatar = liveAvatar;
return this;
}
public int getGuardType() {
return guardType;
}
public GuardUserInfoModel setGuardType(int guardType) {
this.guardType = guardType;
return this;
}
public String getExp() {
return exp;
}
public GuardUserInfoModel setExp(String exp) {
this.exp = exp;
return this;
}
public String getLevel() {
return level;
}
public GuardUserInfoModel setLevel(String level) {
this.level = level;
return this;
}
public String getEndtime() {
return endtime;
}
public GuardUserInfoModel setEndtime(String endtime) {
this.endtime = endtime;
return this;
}
public String getUserLanguage() {
return userLanguage;
}
public GuardUserInfoModel setUserLanguage(String userLanguage) {
this.userLanguage = userLanguage;
return this;
}
public String getLiveLanguage() {
return liveLanguage;
}
public GuardUserInfoModel setLiveLanguage(String liveLanguage) {
this.liveLanguage = liveLanguage;
return this;
}
}

Some files were not shown because too many files have changed in this diff Show More