Compare commits
12 Commits
新潘多拉
...
新潘多拉6.8.1_
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0445ab4132 | ||
|
|
380381c3fe | ||
|
|
6322c36906 | ||
|
|
1f09d1a0c4 | ||
|
|
2d5f23519d | ||
|
|
39dc287623 | ||
|
|
eb594fcfce | ||
|
|
4d6e38734d | ||
|
|
55b53fb955 | ||
|
|
c4a24be6f7 | ||
|
|
e0c1e9c64f | ||
|
|
b56a0bcce4 |
@@ -4,7 +4,7 @@
|
||||
>
|
||||
|
||||
<queries>
|
||||
<package android:name="com.newpandora.yo"/>
|
||||
<package android:name="${applicationId}"/>
|
||||
<package android:name="com.facebook.orca"/>
|
||||
|
||||
<package
|
||||
|
||||
@@ -54,6 +54,7 @@
|
||||
|
||||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
<uses-permission android:name="android.permission.WAKE_LOCK" />
|
||||
<uses-permission android:name="android.permission.READ_MEDIA_VISUAL_USER_SELECTED" />
|
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
||||
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
|
||||
<uses-permission android:name="android.permission.NETWORK_PROVIDER" />
|
||||
|
||||
|
Before Width: | Height: | Size: 5.6 KiB |
BIN
app/src/main/res/mipmap-hdpi/ic_launcher.webp
Normal file
|
After Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 3.5 KiB |
BIN
app/src/main/res/mipmap-mdpi/ic_launcher.webp
Normal file
|
After Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 8.2 KiB |
BIN
app/src/main/res/mipmap-xhdpi/ic_launcher.webp
Normal file
|
After Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 15 KiB |
BIN
app/src/main/res/mipmap-xxhdpi/ic_launcher.webp
Normal file
|
After Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 22 KiB |
BIN
app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
Normal file
|
After Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 1.6 MiB After Width: | Height: | Size: 169 KiB |
@@ -1,4 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="app_name">PandoraLive</string>
|
||||
<string name="app_name">FeelWe</string>
|
||||
</resources>
|
||||
@@ -86,6 +86,7 @@ dependencies {
|
||||
implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar'])
|
||||
api files('libs/jcc-bate-0.7.3.jar')
|
||||
compileOnly fileTree(dir: '../libs', include: ['*.aar'])
|
||||
api 'androidx.activity:activity:1.9.1'
|
||||
api rootProject.ext.dependencies["appcompat-androidx"]
|
||||
api rootProject.ext.dependencies["recyclerview-androidx"]
|
||||
api rootProject.ext.dependencies["cardview-androidx"]
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
|
||||
<provider
|
||||
android:name="androidx.core.content.FileProvider"
|
||||
android:authorities="com.newpandora.yo.fileprovider"
|
||||
android:authorities="${applicationId}.fileprovider"
|
||||
android:exported="false"
|
||||
android:grantUriPermissions="true">
|
||||
<meta-data
|
||||
|
||||
@@ -7,8 +7,8 @@ package com.yunbao.common;
|
||||
public class HtmlConfig {
|
||||
|
||||
//登录即代表同意服务和隐私条款
|
||||
public static final String LOGIN_PRIVCAY = CommonAppConfig.HOST + "/index.php?g=portal&m=page&a=index&id=68";
|
||||
public static final String LOGIN_PRIVCAY1 = CommonAppConfig.HOST + "/index.php?g=portal&m=page&a=index&id=67";
|
||||
public static final String LOGIN_PRIVCAY = CommonAppConfig.HOST + "/index.php?g=portal&m=page&a=index&id=717";//隱私條款
|
||||
public static final String LOGIN_PRIVCAY1 = CommonAppConfig.HOST + "/index.php?g=portal&m=page&a=index&id=716";//用戶協議
|
||||
|
||||
//注册用户协议
|
||||
public static final String REG_PRIVCAY1 = CommonAppConfig.HOST + "/index.php?g=portal&m=page&a=index&id=2";
|
||||
|
||||
@@ -132,11 +132,13 @@ public class MainConversationListAdapter extends ConversationListAdapter {
|
||||
int type = super.getItemViewType(position);
|
||||
if (mDataList.size() > position) {
|
||||
String objectName = mDataList.get(position).mCore.getObjectName();
|
||||
Log.i("聊天数据源发现","objectName::"+objectName);
|
||||
if (!StringUtil.isEmpty(objectName) && objectName.startsWith("SEARCH_USER")) {
|
||||
type = TYPE_SEARCH_USER;
|
||||
} else if (!StringUtil.isEmpty(objectName) && objectName.startsWith("SEARCH_CHAT")) {
|
||||
type = TYPE_SEARCH_CHAT;
|
||||
} else if (!StringUtil.isEmpty(objectName) && objectName.startsWith("SEARCH_TITLE")) {
|
||||
Log.i("聊天数据源发现 ","getItemViewTypeSEARCH_TITLE");
|
||||
type = TYPE_SEARCH_TITLE;
|
||||
}
|
||||
} else if (mDataList.isEmpty() || isEmpty() || srcList.isEmpty()) {
|
||||
@@ -156,7 +158,9 @@ public class MainConversationListAdapter extends ConversationListAdapter {
|
||||
} else if (getItemViewType(position) == TYPE_SEARCH_CHAT) {
|
||||
bindChat(holder, position);
|
||||
} else if (getItemViewType(position) == TYPE_SEARCH_TITLE) {
|
||||
Log.i("聊天数据源设置标题头","SEARCH_TITLE::"+position);
|
||||
bindTitle(holder, position);
|
||||
return;
|
||||
} else if (getItemViewType(position) != -200) {
|
||||
bindChatNew(holder, position);
|
||||
super.onBindViewHolder(holder, position);
|
||||
@@ -297,7 +301,8 @@ public class MainConversationListAdapter extends ConversationListAdapter {
|
||||
if (mContext == null)
|
||||
mContext = AppManager.getInstance().getLastActivity();
|
||||
for (BaseUiConversation item : data) {
|
||||
if (urls.contains(item.mCore.getTargetId())) continue;
|
||||
if (urls.contains(item.mCore.getTargetId()) && item.mCore.getTargetId()!=null) continue;
|
||||
// if ( item.mCore.getConversationTitle()==null || item.mCore.getTargetId()==null) continue;
|
||||
if (item.mConversationContent != null && item.mConversationContent.toString().contains("_method_")) {
|
||||
IMCenter.getInstance().deleteMessages(Conversation.ConversationType.PRIVATE,
|
||||
item.mCore.getTargetId(),
|
||||
@@ -316,7 +321,8 @@ public class MainConversationListAdapter extends ConversationListAdapter {
|
||||
IMCenter.getInstance().clearMessagesUnreadStatus(Conversation.ConversationType.PRIVATE, item.mCore.getTargetId(), null);
|
||||
}
|
||||
urls.add(item.mCore.getTargetId());
|
||||
Log.i("聊天数据源", item.mCore.getConversationTitle() + "|" + item.mCore.getPortraitUrl() + "|" + item.mCore.getTargetId());
|
||||
Log.i("聊天数据源", item.mCore.getConversationTitle() + "|" + item.mCore.getPortraitUrl() + "|" + item.mCore.getTargetId() +"|"+item.mCore.getObjectName());
|
||||
|
||||
if (!tmpUids.contains(item.mCore.getTargetId())) {
|
||||
BaseUiConversation cn = new SingleConversation(mContext, item.mCore);
|
||||
srcList.add(cn);
|
||||
@@ -332,21 +338,21 @@ public class MainConversationListAdapter extends ConversationListAdapter {
|
||||
}
|
||||
List<BaseUiConversation> showData = null;
|
||||
if (isSearch) {
|
||||
Log.i("聊天数据源", "FilterData isSearch");
|
||||
showData = UiConversationCodeUtil.FilterData(mFilter, tmp, allDataList);
|
||||
// Log.i("聊天数据源", "FilterData isSearch");
|
||||
showData = tmp ;//UiConversationCodeUtil.FilterData(mFilter, tmp, allDataList);
|
||||
} else {
|
||||
allDataList = tmp;
|
||||
if (mFilter != FILTER_OFFLINE && mFilter != FILTER_ONLINE )
|
||||
{
|
||||
Log.i("聊天数据源", "FilterData notSearch");
|
||||
// Log.i("聊天数据源", "FilterData notSearch");
|
||||
showData = UiConversationCodeUtil.FilterData(mFilter, allDataList);
|
||||
}
|
||||
}
|
||||
if (showData != null && !UiConversationCodeUtil.checkIsSame(showData, mDataList)) {
|
||||
Log.i("聊天数据源", "数据源有变化" + showData.size());
|
||||
// Log.i("聊天数据源", "数据源有变化" + showData.size());
|
||||
super.setDataCollection(showData);
|
||||
} else {
|
||||
Log.i("聊天数据源", "数据源无变化");
|
||||
// Log.i("聊天数据源", "数据源无变化");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
package com.yunbao.common.fragment;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.os.Parcel;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
@@ -28,6 +30,8 @@ import io.rong.imkit.conversationlist.model.SingleConversation;
|
||||
import io.rong.imkit.event.Event;
|
||||
import io.rong.imlib.RongIMClient;
|
||||
import io.rong.imlib.model.Conversation;
|
||||
import io.rong.imlib.model.Message;
|
||||
import io.rong.imlib.model.MessageContent;
|
||||
import io.rong.imlib.model.SearchConversationResult;
|
||||
|
||||
public class MainMessageChatFragment extends ConversationListFragment {
|
||||
@@ -50,7 +54,7 @@ public class MainMessageChatFragment extends ConversationListFragment {
|
||||
mConversationListViewModel.getConversationListLiveData().observe(this.getViewLifecycleOwner(), new Observer<List<BaseUiConversation>>() {
|
||||
@Override
|
||||
public void onChanged(List<BaseUiConversation> uiConversations) {
|
||||
int hashCode = UiConversationCodeUtil.getListHasCode(uiConversations);
|
||||
int hashCode = uiConversations.hashCode();
|
||||
if (listHashCode != hashCode) {
|
||||
Log.i("nwq", "刷新数据");
|
||||
listHashCode = hashCode;
|
||||
@@ -82,6 +86,10 @@ public class MainMessageChatFragment extends ConversationListFragment {
|
||||
}
|
||||
|
||||
public void search(String search) {
|
||||
if (TextUtils.isEmpty(search)){
|
||||
mRefreshLayout.autoRefresh();
|
||||
return;
|
||||
}
|
||||
((MainConversationListAdapter) mAdapter).setSearch();
|
||||
getContactsList(search);
|
||||
}
|
||||
@@ -95,10 +103,11 @@ public class MainMessageChatFragment extends ConversationListFragment {
|
||||
List<String> uidList = new ArrayList<>();
|
||||
|
||||
BaseUiConversation conversation = new SingleConversation(getContext(), new Conversation());
|
||||
conversation.mCore.setMessage(new Message());
|
||||
conversation.mCore.setObjectName("SEARCH_TITLE" + WordUtil.getNewString(R.string.activity_msg_list_title_contacts));
|
||||
Log.i("聊天数据源设置数据", "聊天数据源: " + conversation.mCore.getObjectName());
|
||||
conversation.mCore.setConversationType(Conversation.ConversationType.PRIVATE);
|
||||
list.add(conversation);
|
||||
|
||||
List<BaseUiConversation> data = new ArrayList<>();
|
||||
System.err.println(" ----------------------->" + mAdapter.getData().size());
|
||||
for (BaseUiConversation cn : ((MainConversationListAdapter) mAdapter).getSrcList()) {
|
||||
@@ -137,7 +146,9 @@ public class MainMessageChatFragment extends ConversationListFragment {
|
||||
@Override
|
||||
public void onSuccess(List<SearchConversationResult> searchConversationResults) {
|
||||
BaseUiConversation conversation = new SingleConversation(getContext(), new Conversation());
|
||||
conversation.mCore.setMessage(new Message());
|
||||
conversation.mCore.setObjectName("SEARCH_TITLE" + WordUtil.getNewString(R.string.activity_msg_list_title_chat_records));
|
||||
Log.i("聊天数据源设置数据", "聊天数据源: " + conversation.mCore.getObjectName());
|
||||
conversation.mCore.setConversationType(Conversation.ConversationType.PRIVATE);
|
||||
list.add(conversation);
|
||||
List<BaseUiConversation> data = new ArrayList<>();
|
||||
@@ -155,6 +166,9 @@ public class MainMessageChatFragment extends ConversationListFragment {
|
||||
list.remove(list.size() - 1);
|
||||
}
|
||||
list.addAll(data);
|
||||
for (BaseUiConversation cn : list){
|
||||
Log.i("聊天数据源搜索前的", cn.mCore.getConversationTitle() + "|" + cn.mCore.getPortraitUrl() + "|" + cn.mCore.getTargetId());
|
||||
}
|
||||
((MainConversationListAdapter) mAdapter).setDataCollectionV2(list,true);
|
||||
}
|
||||
|
||||
@@ -172,7 +186,7 @@ public class MainMessageChatFragment extends ConversationListFragment {
|
||||
((MainConversationListAdapter) mAdapter).clear();
|
||||
System.out.println(">!>!>!>!!>" + mConversationListViewModel);
|
||||
subscribeUi();
|
||||
|
||||
mRefreshLayout.autoRefresh();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -417,7 +417,7 @@ public class CommonHttpUtil {
|
||||
.params("purchaseToken", purchaseToken)
|
||||
.params("productId", productId)
|
||||
.params("orderno", orderno)
|
||||
.params("package_name", "com.newpandora.yo")
|
||||
.params("package_name", CommonAppContext.sInstance.getPackageName())
|
||||
.execute(callback);
|
||||
}
|
||||
|
||||
@@ -425,7 +425,7 @@ public class CommonHttpUtil {
|
||||
HttpClient.getInstance().get(CommonHttpConsts.NOTIFY_GOOGLE, CommonHttpConsts.NOTIFY_GOOGLE)
|
||||
.params("purchaseToken", purchaseToken)
|
||||
.params("productId", productId)
|
||||
.params("package_name", "com.newpandora.yo")
|
||||
.params("package_name", CommonAppContext.sInstance.getPackageName())
|
||||
.execute(callback);
|
||||
}
|
||||
|
||||
@@ -434,7 +434,7 @@ public class CommonHttpUtil {
|
||||
.params("purchaseToken", purchaseToken)
|
||||
.params("orderno", orderNo)
|
||||
.params("trade_no", tradeNo)
|
||||
.params("package_name", "com.newpandora.yo")
|
||||
.params("package_name", CommonAppContext.sInstance.getPackageName())
|
||||
.execute(callback);
|
||||
}
|
||||
|
||||
|
||||
@@ -3,13 +3,21 @@ package com.yunbao.common.utils;
|
||||
import android.Manifest;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.ImageDecoder;
|
||||
import android.net.Uri;
|
||||
import android.os.Build;
|
||||
import android.provider.MediaStore;
|
||||
|
||||
|
||||
import androidx.activity.result.ActivityResultLauncher;
|
||||
import androidx.activity.result.PickVisualMediaRequest;
|
||||
import androidx.activity.result.contract.ActivityResultContracts;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.fragment.app.FragmentActivity;
|
||||
import androidx.core.content.FileProvider;
|
||||
|
||||
import com.blankj.utilcode.util.LogUtils;
|
||||
import com.yalantis.ucrop.UCrop;
|
||||
import com.yalantis.ucrop.util.FileUtils;
|
||||
import com.yunbao.common.CommonAppConfig;
|
||||
@@ -39,6 +47,7 @@ public class ProcessImageUtil extends ProcessResultUtil {
|
||||
private ImageResultCallback mResultCallback;
|
||||
private boolean mNeedCrop;//是否需要裁剪
|
||||
private boolean mNeedGif;//允许gif图
|
||||
ActivityResultLauncher<PickVisualMediaRequest> launcher;
|
||||
|
||||
public void setNeedGif(boolean mNeedGif) {
|
||||
this.mNeedGif = mNeedGif;
|
||||
@@ -83,7 +92,7 @@ public class ProcessImageUtil extends ProcessResultUtil {
|
||||
if (mNeedCrop) {
|
||||
Uri uri = null;
|
||||
if (Build.VERSION.SDK_INT >= 24) {
|
||||
uri = FileProvider.getUriForFile(mContext, "com.newpandora.yo.fileprovider", mCameraResult);
|
||||
uri = FileProvider.getUriForFile(mContext, mContext.getPackageName() +".fileprovider", mCameraResult);
|
||||
} else {
|
||||
uri = Uri.fromFile(mCameraResult);
|
||||
}
|
||||
@@ -117,6 +126,19 @@ public class ProcessImageUtil extends ProcessResultUtil {
|
||||
return;
|
||||
}
|
||||
String path = FileUtils.getPath(mContext, intent.getData());
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
|
||||
ImageDecoder.Source source = ImageDecoder.createSource(mContext.getContentResolver(), intent.getData());
|
||||
try {
|
||||
Bitmap bitmap = ImageDecoder.decodeBitmap(source);
|
||||
path=BitmapUtil.getInstance().saveBitmap(bitmap);
|
||||
bitmap.recycle();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
mResultCallback.onFailure();
|
||||
return;
|
||||
}
|
||||
|
||||
}
|
||||
File file = new File(path);
|
||||
if (file.exists()) {
|
||||
mResultCallback.onSuccess(file);
|
||||
@@ -153,6 +175,19 @@ public class ProcessImageUtil extends ProcessResultUtil {
|
||||
}
|
||||
}
|
||||
};
|
||||
launcher = ((AppCompatActivity) mContext).registerForActivityResult(new ActivityResultContracts.PickVisualMedia(), new androidx.activity.result.ActivityResultCallback<Uri>() {
|
||||
@Override
|
||||
public void onActivityResult(Uri result) {
|
||||
LogUtils.e("result:" + result);
|
||||
if (result == null) {
|
||||
mAlumbResultCallback.onFailure();
|
||||
return;
|
||||
}
|
||||
Intent intent = new Intent();
|
||||
intent.setData(result);
|
||||
mAlumbResultCallback.onSuccess(intent);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -173,15 +208,28 @@ public class ProcessImageUtil extends ProcessResultUtil {
|
||||
/**
|
||||
* 相册获取图片
|
||||
*/
|
||||
public void getImageByAlumb() {
|
||||
public void getImageByAlbum() {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
|
||||
showSystemPick();
|
||||
return;
|
||||
}
|
||||
requestPermissions(mAlumbPermissions, mAlumbPermissionCallback);
|
||||
}
|
||||
|
||||
public void getImageByAlumb(boolean needCrop) {
|
||||
public void getImageByAlbum(boolean needCrop) {
|
||||
this.mNeedCrop = needCrop;
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
|
||||
showSystemPick();
|
||||
return;
|
||||
}
|
||||
requestPermissions(mAlumbPermissions, mAlumbPermissionCallback);
|
||||
}
|
||||
|
||||
private void showSystemPick() {
|
||||
PickVisualMediaRequest.Builder builder = new PickVisualMediaRequest.Builder()
|
||||
.setMediaType(ActivityResultContracts.PickVisualMedia.ImageOnly.INSTANCE);
|
||||
launcher.launch(builder.build());
|
||||
}
|
||||
|
||||
/**
|
||||
* 开启摄像头,执行照相
|
||||
@@ -195,7 +243,7 @@ public class ProcessImageUtil extends ProcessResultUtil {
|
||||
mCameraResult = getNewFile();
|
||||
Uri uri = null;
|
||||
if (Build.VERSION.SDK_INT >= 24) {
|
||||
uri = FileProvider.getUriForFile(mContext, "com.newpandora.yo.fileprovider", mCameraResult);
|
||||
uri = FileProvider.getUriForFile(mContext, mContext.getPackageName()+".fileprovider", mCameraResult);
|
||||
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
|
||||
} else {
|
||||
uri = Uri.fromFile(mCameraResult);
|
||||
@@ -255,7 +303,7 @@ public class ProcessImageUtil extends ProcessResultUtil {
|
||||
startActivityForResult(intent, mCropResultCallback);
|
||||
} catch (Exception e) {
|
||||
try {
|
||||
Uri resultUri = FileProvider.getUriForFile(mContext, "com.newpandora.yo.fileprovider", mCorpResult);
|
||||
Uri resultUri = FileProvider.getUriForFile(mContext, mContext.getPackageName()+".fileprovider", mCorpResult);
|
||||
if (resultUri == null || mFragment == null || mContext == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -20,6 +20,9 @@ public class UiConversationCodeUtil {
|
||||
|
||||
|
||||
public static boolean checkIsSame(List<BaseUiConversation> list1, List<BaseUiConversation> list2) {
|
||||
if (list1.isEmpty()){
|
||||
return false;
|
||||
}
|
||||
if (list1.size() != list2.size()) return false;
|
||||
int hashCode1 = getListHasCode(list1);
|
||||
int hashCode2 = getListHasCode(list2);
|
||||
|
||||
@@ -63,7 +63,7 @@ public class VersionUtil {
|
||||
@Override
|
||||
public void onConfirmClick(Dialog dialog, String content) {
|
||||
Intent i = new Intent(android.content.Intent.ACTION_VIEW);
|
||||
i.setData(Uri.parse("https://play.google.com/store/apps/details?id=com.newpandora.yo"));
|
||||
i.setData(Uri.parse("https://play.google.com/store/apps/details?id="+context.getPackageName()));
|
||||
context.startActivity(i);
|
||||
context.finish();
|
||||
}
|
||||
@@ -85,7 +85,7 @@ public class VersionUtil {
|
||||
@Override
|
||||
public void onConfirmClick(Dialog dialog, String content) {
|
||||
Intent i = new Intent(android.content.Intent.ACTION_VIEW);
|
||||
i.setData(Uri.parse("https://play.google.com/store/apps/details?id=com.newpandora.yo"));
|
||||
i.setData(Uri.parse("https://play.google.com/store/apps/details?id="+context.getPackageName()));
|
||||
context.startActivity(i);
|
||||
context.finish();
|
||||
}
|
||||
|
||||
@@ -35,7 +35,9 @@ public class WordUtil {
|
||||
|
||||
public static boolean isNewZh() {
|
||||
return IMLoginManager.get(CommonAppContext.sInstance).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE
|
||||
|| IMLoginManager.get(CommonAppContext.sInstance).getLocaleLanguage() == Locale.TRADITIONAL_CHINESE ;
|
||||
|| IMLoginManager.get(CommonAppContext.sInstance).getLocaleLanguage() == Locale.TRADITIONAL_CHINESE
|
||||
|| IMLoginManager.get(CommonAppContext.sInstance).getLocaleLanguage() == Locale.CHINESE
|
||||
|| IMLoginManager.get(CommonAppContext.sInstance).getLocaleLanguage() == Locale.CHINA;
|
||||
}
|
||||
|
||||
public static String getNewString(int res) {
|
||||
|
||||
@@ -128,7 +128,7 @@ public class APKUpdateCustomPopup extends CenterPopupView {
|
||||
public void onViewClicks() {
|
||||
if (CommonAppConfig.IS_GOOGLE_PLAY == 1) {
|
||||
Intent i = new Intent(android.content.Intent.ACTION_VIEW);
|
||||
i.setData(Uri.parse("https://play.google.com/store/apps/details?id=com.newpandora.yo"));
|
||||
i.setData(Uri.parse("https://play.google.com/store/apps/details?id="+mContext.getPackageName()));
|
||||
mContext.startActivity(i);
|
||||
mContext.finish();
|
||||
} else if (CommonAppConfig.IS_GOOGLE_PLAY == 2) {
|
||||
|
||||
|
Before Width: | Height: | Size: 586 KiB After Width: | Height: | Size: 169 KiB |
@@ -796,8 +796,8 @@
|
||||
<string name="facebook_client_token">6e90a23e0679c8d21b0888d5fa755535</string>
|
||||
|
||||
|
||||
<string name="twitter_key">ui10vIggex2F043HnztYNuA3g</string>
|
||||
<string name="twitter_secret">J8jvBBeJoZbVojbkWUrvsj0K0UUkuV69CqQ7CEobhJn6tvAKpQ</string>
|
||||
<string name="twitter_key">JDd7XEXr0kLcx0KkkJGUbD4MQ</string>
|
||||
<string name="twitter_secret">aq0eV4R1pqMK_AAeKRWnjPr7ErGMGgTPGgZJdm73WeRY-Kluws</string>
|
||||
<string name="twitter_key2">ZWRrZnRUNlBlcHVxMXpsMzVmb2k6MTpjaQ</string>
|
||||
<string name="twitter_secret2">aq0eV4R1pqMK_AAeKRWnjPr7ErGMGgTPGgZJdm73WeRY-Kluws</string>
|
||||
|
||||
@@ -1059,11 +1059,11 @@ Limited ride And limited avatar frame</string>
|
||||
<string name="privacy_terms">Privacy Policy</string>
|
||||
<string name="terms_and_policies">Terms and policies</string>
|
||||
<string name="install_the_application">For details, please read the following message to install the application:</string>
|
||||
<string name="treat_and_protect">Welcome to PandoraLive. For your personal information and privacy, we will adopt the highest standards of treatment and protection.</string>
|
||||
<string name="treat_and_protect">Welcome to FeelWe. For your personal information and privacy, we will adopt the highest standards of treatment and protection.</string>
|
||||
<string name="anti_cheating_services">In order to provide users with better services, our products integrate [Alliance SDK], SDK needs to collect your device information (IMEI/MAC/Android ID/IDFA/OpenUDID/GUID/IP address /SIM card IMSI information, etc.), In order for you to better understand the types and purposes of the data collected by [Alliance SDK] and how to protect your personal information, you can log on to: https://www.umeng.com/page/policy Learn about [Alliance SDK] Privacy Policy [Alliance +] Privacy Policy [Alliance +], a third-party global big data service provider, providing customers with PC/APP/ offline statistics, advertising effect monitoring, message push/micro community/sharing /IM and other operating tools,DIP, global index and industry reports. https://www.umeng.com/page/policy</string>
|
||||
<string name="read_and_agre">Clicking Agree means you have read and agree to all of the above.。</string>
|
||||
<string name="agreement">agreement</string>
|
||||
<string name="come_to">Welcome to PandoraLive.</string>
|
||||
<string name="come_to">Welcome to FeelWe.</string>
|
||||
<string name="live_gift">gift</string>
|
||||
<string name="register_tip_2">User service agreement</string>
|
||||
<string name="live_fans_medal_pri_des">一 Fan privilege 一</string>
|
||||
|
||||
@@ -835,8 +835,9 @@
|
||||
<string name="facebook_app_id">977019710454991</string>
|
||||
<string name="facebook_client_token">6e90a23e0679c8d21b0888d5fa755535</string>
|
||||
|
||||
<string name="twitter_key">ui10vIggex2F043HnztYNuA3g</string>
|
||||
<string name="twitter_secret">J8jvBBeJoZbVojbkWUrvsj0K0UUkuV69CqQ7CEobhJn6tvAKpQ</string>
|
||||
<string name="twitter_key">JDd7XEXr0kLcx0KkkJGUbD4MQ</string>
|
||||
<string name="twitter_secret">aq0eV4R1pqMK_AAeKRWnjPr7ErGMGgTPGgZJdm73WeRY-Kluws</string>
|
||||
|
||||
<string name="twitter_key2">F8t7PgspJ8Xl2k09ccqmnmynf</string>
|
||||
<string name="twitter_secret2">aq0eV4R1pqMK_AAeKRWnjPr7ErGMGgTPGgZJdm73WeRY-Kluws</string>
|
||||
|
||||
@@ -1081,14 +1082,14 @@
|
||||
<string name="and">和</string>
|
||||
<string name="privacy_terms">隱私條款</string>
|
||||
<string name="terms_and_policies">條款和政策</string>
|
||||
<string name="treat_and_protect">歡迎來到PandoraLive,對於您的個人信息及隱私,我們將採用最高標準對待和保護。</string>
|
||||
<string name="treat_and_protect">歡迎來到FeelWe,對於您的個人信息及隱私,我們將採用最高標準對待和保護。</string>
|
||||
<string name="install_the_application">詳情請您閱讀以下安裝應用程序的消息:</string>
|
||||
<string name="anti_cheating_services">為了給用戶提供更好的服務,我們的產品集成[友盟SDK],SDK需要收集您的设备信息(IMEI/MAC/Android ID/IDFA/OpenUDID/GUID/IP地址/SIM 卡 IMSI 信息等),為便於您更好地了解[友盟SDK]采集的數據類型及用途,以及何保護您的個人信息,您可以登陸:https://www.umeng.com/page/policy 了解[友盟SDK]隱私權政策【友盟+】隐私政策【友盟+】,第三方全域大数据服务提供商,为客户提供PC/APP/线下统计,广告效果监测,消息推送/微社区/分享/IM等运营工具,DIP,全域指数与行业报告等。https://www.umeng.com/page/policy</string>
|
||||
<string name="agreement">同意</string>
|
||||
<string name="read_and_agre">點擊同意後即代表您已閱讀並同意以上所有內容。</string>
|
||||
<string name="support_login">本應用會收集位置數據以支持登錄和註冊的功能使用。</string>
|
||||
<string name="come_to">歡迎來到PandoraLive。</string>
|
||||
<string name="sign_up_for">註冊PandoraLive</string>
|
||||
<string name="come_to">歡迎來到FeelWe。</string>
|
||||
<string name="sign_up_for">註冊FeelWe</string>
|
||||
<string name="register_and_log_in">註冊並登錄</string>
|
||||
<string name="enjoy_a_lot">開通貴族,尊享超多特權!</string>
|
||||
<string name="layout_live_anchor_say_ready_title">女神說</string>
|
||||
|
||||
@@ -641,8 +641,8 @@
|
||||
<string name="facebook_app_id">977019710454991</string>
|
||||
<string name="facebook_client_token">6e90a23e0679c8d21b0888d5fa755535</string>
|
||||
|
||||
<string name="twitter_key">ui10vIggex2F043HnztYNuA3g</string>
|
||||
<string name="twitter_secret">J8jvBBeJoZbVojbkWUrvsj0K0UUkuV69CqQ7CEobhJn6tvAKpQ</string>
|
||||
<string name="twitter_key">JDd7XEXr0kLcx0KkkJGUbD4MQ</string>
|
||||
<string name="twitter_secret">aq0eV4R1pqMK_AAeKRWnjPr7ErGMGgTPGgZJdm73WeRY-Kluws</string>
|
||||
|
||||
<string name="user_task_text1">Complete the new person\'s pre task</string>
|
||||
<string name="user_task_text2">Unlock custom features</string>
|
||||
@@ -888,11 +888,11 @@ Limited ride And limited avatar frame</string>
|
||||
<string name="privacy_terms">Privacy Policy</string>
|
||||
<string name="terms_and_policies">Terms and policies</string>
|
||||
<string name="install_the_application">For details, please read the following message to install the application:</string>
|
||||
<string name="treat_and_protect">Welcome to PandoraLive. For your personal information and privacy, we will adopt the highest standards of treatment and protection.</string>
|
||||
<string name="treat_and_protect">Welcome to FeelWe. For your personal information and privacy, we will adopt the highest standards of treatment and protection.</string>
|
||||
<string name="anti_cheating_services">In order to provide users with better services, our products integrate [Alliance SDK], SDK needs to collect your device information (IMEI/MAC/Android ID/IDFA/OpenUDID/GUID/IP address /SIM card IMSI information, etc.), In order for you to better understand the types and purposes of the data collected by [Alliance SDK] and how to protect your personal information, you can log on to: https://www.umeng.com/page/policy Learn about [Alliance SDK] Privacy Policy [Alliance +] Privacy Policy [Alliance +], a third-party global big data service provider, providing customers with PC/APP/ offline statistics, advertising effect monitoring, message push/micro community/sharing /IM and other operating tools,DIP, global index and industry reports. https://www.umeng.com/page/policy</string>
|
||||
<string name="read_and_agre">Clicking Agree means you have read and agree to all of the above.。</string>
|
||||
<string name="agreement">agreement</string>
|
||||
<string name="come_to">Welcome to PandoraLive.</string>
|
||||
<string name="come_to">Welcome to FeelWe.</string>
|
||||
<string name="live_gift">gift</string>
|
||||
<string name="register_tip_2">User service agreement</string>
|
||||
<string name="live_fans_medal_pri_des">一 Fan privilege 一</string>
|
||||
|
||||
@@ -4,8 +4,8 @@ ext {
|
||||
buildToolsVersion: "29.0.2",
|
||||
minSdkVersion : 23,
|
||||
targetSdkVersion : 34,
|
||||
versionCode : 600,
|
||||
versionName : "6.8.0",
|
||||
versionCode : 604,
|
||||
versionName : "6.8.1",
|
||||
namespace : "com.pandoralive.shayu"
|
||||
]
|
||||
manifestPlaceholders = [
|
||||
|
||||
@@ -22,7 +22,7 @@ ext {
|
||||
// "tencent-bugly" : 'com.tencent.bugly:crashreport:2.6.6',//腾讯bugly
|
||||
// "umeng-common" : 'com.umeng.sdk:common:1.5.3',//友盟统计
|
||||
// "umeng-analytics" : 'com.umeng.sdk:analytics:7.5.3',//友盟统计
|
||||
"ucrop" : 'com.github.yalantis:ucrop:2.2.3',//图片裁剪
|
||||
"ucrop" : 'com.github.yalantis:ucrop:2.2.9',//图片裁剪
|
||||
"smartRefreshLayout" : 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0-alpha-20',//下拉刷新上拉加载
|
||||
"magicIndicator" : 'com.github.hackware1993:MagicIndicator:1.6.0',//ViewPager指示器
|
||||
"banner" : 'com.ms:banner:1.0.0',//轮播图
|
||||
|
||||
@@ -24,6 +24,6 @@ android.nonTransitiveRClass=false
|
||||
|
||||
systemProp.http.proxyHost=127.0.0.1
|
||||
systemProp.https.proxyHost=127.0.0.1
|
||||
systemProp.https.proxyPort=10809
|
||||
systemProp.http.proxyPort=10809
|
||||
systemProp.https.proxyPort=9098
|
||||
systemProp.http.proxyPort=9098
|
||||
android.enableR8.fullMode=true
|
||||
@@ -5,13 +5,16 @@ import android.content.ContentResolver;
|
||||
import android.content.Context;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.drawable.BitmapDrawable;
|
||||
import android.hardware.camera2.CameraManager;
|
||||
import android.net.Uri;
|
||||
import android.text.TextUtils;
|
||||
import android.view.SurfaceView;
|
||||
import android.widget.FrameLayout;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.core.content.res.ResourcesCompat;
|
||||
|
||||
import com.blankj.utilcode.util.LogUtils;
|
||||
import com.yunbao.common.CommonAppConfig;
|
||||
import com.yunbao.common.CommonAppContext;
|
||||
import com.yunbao.common.bean.SwTokenModel;
|
||||
@@ -68,6 +71,7 @@ public class SWManager extends BaseCacheManager {
|
||||
private ImageTrackOptions imageTrackOptions = null;
|
||||
|
||||
private onDrPkJoinSuccessListener onDrPkJoinSuccessListener;
|
||||
String openCameraId = "1";
|
||||
|
||||
public void setOnDrPkJoinSuccessListener(SWManager.onDrPkJoinSuccessListener onDrPkJoinSuccessListener) {
|
||||
this.onDrPkJoinSuccessListener = onDrPkJoinSuccessListener;
|
||||
@@ -252,7 +256,20 @@ public class SWManager extends BaseCacheManager {
|
||||
*/
|
||||
public void switchCamera() {
|
||||
if (mRtcEngine != null) {
|
||||
mRtcEngine.switchCamera();
|
||||
if (openCameraId.equals("0")) {
|
||||
mRtcEngine.switchCamera("1");
|
||||
openCameraId = "1";
|
||||
} else {
|
||||
mRtcEngine.switchCamera("0");
|
||||
openCameraId = "0";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void resetCamera() {
|
||||
LogUtils.e("重置摄像头", openCameraId);
|
||||
if (mRtcEngine != null && !TextUtils.isEmpty(openCameraId)) {
|
||||
mRtcEngine.switchCamera(openCameraId);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -524,6 +541,9 @@ public class SWManager extends BaseCacheManager {
|
||||
});
|
||||
}
|
||||
|
||||
public void release() {
|
||||
}
|
||||
|
||||
public interface onRtcEngineListener {
|
||||
void onOpenSuccess(String channel, int uid);
|
||||
|
||||
|
||||
@@ -237,7 +237,7 @@ public class LiveReportAdapter extends RecyclerView.Adapter {
|
||||
if (tag == R.string.camera) {
|
||||
mImageUtil.getImageByCamera();
|
||||
} else {
|
||||
mImageUtil.getImageByAlumb();
|
||||
mImageUtil.getImageByAlbum();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -691,7 +691,7 @@ public class LiveNewReadyRyViewHolder extends AbsViewHolder implements View.OnCl
|
||||
*/
|
||||
private void setAvatar() {
|
||||
if (mLiveSdk == Constants.LIVE_SDK_TX) {
|
||||
mImageUtil.getImageByAlumb();
|
||||
mImageUtil.getImageByAlbum();
|
||||
} else {
|
||||
DialogUitl.showStringArrayDialog(mContext, new Integer[]{
|
||||
R.string.camera, R.string.alumb}, new DialogUitl.StringArrayDialogCallback() {
|
||||
@@ -700,7 +700,7 @@ public class LiveNewReadyRyViewHolder extends AbsViewHolder implements View.OnCl
|
||||
if (tag == R.string.camera) {
|
||||
mImageUtil.getImageByCamera();
|
||||
} else {
|
||||
mImageUtil.getImageByAlumb();
|
||||
mImageUtil.getImageByAlbum();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -673,7 +673,7 @@ public class LiveNewReadySwViewHolder extends AbsViewHolder implements View.OnCl
|
||||
*/
|
||||
private void setAvatar() {
|
||||
if (mLiveSdk == Constants.LIVE_SDK_TX) {
|
||||
mImageUtil.getImageByAlumb();
|
||||
mImageUtil.getImageByAlbum(true);
|
||||
} else {
|
||||
DialogUitl.showStringArrayDialog(mContext, new Integer[]{
|
||||
R.string.camera, R.string.alumb}, new DialogUitl.StringArrayDialogCallback() {
|
||||
@@ -682,7 +682,7 @@ public class LiveNewReadySwViewHolder extends AbsViewHolder implements View.OnCl
|
||||
if (tag == R.string.camera) {
|
||||
mImageUtil.getImageByCamera();
|
||||
} else {
|
||||
mImageUtil.getImageByAlumb();
|
||||
mImageUtil.getImageByAlbum(true);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -504,8 +504,9 @@ public class LivePushSwViewHolder extends AbsRyLivePushViewHolder implements ITX
|
||||
public void onResume() {
|
||||
mPaused = false;
|
||||
Log.i("摄像头", "onResume: " + isNeedOpenCamera);
|
||||
swManager.resetCamera();
|
||||
if (isNeedOpenCamera) {
|
||||
RCRTCEngine.getInstance().getDefaultVideoStream().startCamera(new IRCRTCResultDataCallback<Boolean>() {
|
||||
/*RCRTCEngine.getInstance().getDefaultVideoStream().startCamera(new IRCRTCResultDataCallback<Boolean>() {
|
||||
@Override
|
||||
public void onSuccess(Boolean data) {
|
||||
//设置摄像头最大缩放比例
|
||||
@@ -519,7 +520,7 @@ public class LivePushSwViewHolder extends AbsRyLivePushViewHolder implements ITX
|
||||
public void onFailed(RTCErrorCode errorCode) {
|
||||
Log.i("摄像头", "onFailed: 打开摄像头失败 " + errorCode);
|
||||
}
|
||||
});
|
||||
});*/
|
||||
}
|
||||
}
|
||||
|
||||
@@ -549,6 +550,8 @@ public class LivePushSwViewHolder extends AbsRyLivePushViewHolder implements ITX
|
||||
public void release() {
|
||||
super.release();
|
||||
Bus.getOff(this);
|
||||
onDestroy();
|
||||
SWManager.get().release();
|
||||
LiveHttpUtil.cancel(LiveHttpConsts.LINK_MIC_TX_MIX_STREAM);
|
||||
rtcRoom = null;
|
||||
}
|
||||
|
||||
@@ -35,7 +35,6 @@ import com.yunbao.live.R;
|
||||
import com.yunbao.live.activity.LiveActivity;
|
||||
import com.yunbao.live.activity.LiveChooseClassActivity;
|
||||
import com.yunbao.live.activity.LiveRyAnchorActivity;
|
||||
import com.yunbao.live.activity.LiveRyAnchorActivity;
|
||||
import com.yunbao.live.adapter.LiveReadyShareAdapter;
|
||||
import com.yunbao.common.bean.LiveRoomTypeBean;
|
||||
import com.yunbao.live.dialog.LiveRoomTypeDialogFragment;
|
||||
@@ -262,7 +261,7 @@ public class LiveReadyRyViewHolder extends AbsViewHolder implements View.OnClick
|
||||
*/
|
||||
private void setAvatar() {
|
||||
if (mLiveSdk == Constants.LIVE_SDK_TX) {
|
||||
mImageUtil.getImageByAlumb();
|
||||
mImageUtil.getImageByAlbum();
|
||||
} else {
|
||||
DialogUitl.showStringArrayDialog(mContext, new Integer[]{
|
||||
R.string.camera, R.string.alumb}, new DialogUitl.StringArrayDialogCallback() {
|
||||
@@ -271,7 +270,7 @@ public class LiveReadyRyViewHolder extends AbsViewHolder implements View.OnClick
|
||||
if (tag == R.string.camera) {
|
||||
mImageUtil.getImageByCamera();
|
||||
} else {
|
||||
mImageUtil.getImageByAlumb();
|
||||
mImageUtil.getImageByAlbum();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -285,7 +285,7 @@ public class LiveReadyViewHolder extends AbsViewHolder implements View.OnClickLi
|
||||
*/
|
||||
private void setAvatar() {
|
||||
if (mLiveSdk == Constants.LIVE_SDK_TX) {
|
||||
mImageUtil.getImageByAlumb();
|
||||
mImageUtil.getImageByAlbum();
|
||||
} else {
|
||||
DialogUitl.showStringArrayDialog(mContext, new Integer[]{
|
||||
R.string.camera, R.string.alumb}, new DialogUitl.StringArrayDialogCallback() {
|
||||
@@ -294,7 +294,7 @@ public class LiveReadyViewHolder extends AbsViewHolder implements View.OnClickLi
|
||||
if (tag == R.string.camera) {
|
||||
mImageUtil.getImageByCamera();
|
||||
} else {
|
||||
mImageUtil.getImageByAlumb();
|
||||
mImageUtil.getImageByAlbum();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<item>
|
||||
<shape android:shape="rectangle">
|
||||
<corners android:radius="30dp" />
|
||||
<solid android:color="#ffffff" />
|
||||
<solid android:color="#FFF4F4F4" />
|
||||
</shape>
|
||||
</item>
|
||||
</selector>
|
||||
@@ -218,7 +218,7 @@ public class CompleteUserInfoActivity extends AbsActivity {
|
||||
if (isCamera) {
|
||||
cameraUtil.getImageByCamera();
|
||||
} else {
|
||||
cameraUtil.getImageByAlumb();
|
||||
cameraUtil.getImageByAlbum();
|
||||
}
|
||||
});
|
||||
new XPopup.Builder(mContext).asCustom(userAvatarPopup).show();
|
||||
|
||||
@@ -546,7 +546,7 @@ public class EditProfileActivity extends AbsActivity {
|
||||
if (tag == R.string.camera) {
|
||||
mImageUtil.getImageByCamera();
|
||||
} else if (tag == R.string.alumb) {
|
||||
mImageUtil.getImageByAlumb();
|
||||
mImageUtil.getImageByAlbum(true);
|
||||
} else {
|
||||
RouteUtil.forwardUserAvatarSelect();
|
||||
}
|
||||
|
||||
@@ -118,10 +118,10 @@ import java.util.TimerTask;
|
||||
public class EntryActivity extends AppCompatActivity {
|
||||
|
||||
private VideoView video_view;
|
||||
private ImageView btn_phone, btn_line, btn_twitter;
|
||||
private ImageView btn_line, btn_twitter;
|
||||
private TextView btn_tip, btn_tip1, tv_customer;
|
||||
private TwitterLoginButton tt_login_button;
|
||||
private LinearLayout btn_google, googleLayout;
|
||||
private LinearLayout btn_google, googleLayout,btn_phone;
|
||||
public static Activity activity;
|
||||
private static String mLoginType = Constants.MOB_PHONE;//登录方式
|
||||
public String mPromoCode = "", UserID = "";//推广码
|
||||
@@ -221,19 +221,19 @@ public class EntryActivity extends AppCompatActivity {
|
||||
}
|
||||
|
||||
lt_btn_facebook = findViewById(R.id.lt_btn_facebook);
|
||||
lt_btn_twitter = findViewById(R.id.lt_btn_twitter);
|
||||
//lt_btn_twitter = findViewById(R.id.lt_btn_twitter);
|
||||
btn_tip = findViewById(R.id.btn_tip);
|
||||
btn_tip1 = findViewById(R.id.btn_tip1);
|
||||
|
||||
img_view = findViewById(R.id.img_view);
|
||||
|
||||
btn_google = findViewById(R.id.btn_google);
|
||||
btn_twitter = findViewById(R.id.btn_twitter);
|
||||
tt_login_button = findViewById(R.id.tt_login_button);
|
||||
//btn_twitter = findViewById(R.id.btn_twitter);
|
||||
//tt_login_button = findViewById(R.id.tt_login_button);
|
||||
|
||||
tv_customer = findViewById(R.id.tv_customer);
|
||||
btn_phone = findViewById(R.id.btn_phone);
|
||||
btn_line = findViewById(R.id.btn_line);
|
||||
//btn_line = findViewById(R.id.btn_line);
|
||||
lt_customer = findViewById(R.id.lt_customer);
|
||||
|
||||
btn_tip.getPaint().setFlags(Paint.UNDERLINE_TEXT_FLAG);
|
||||
@@ -334,7 +334,7 @@ public class EntryActivity extends AppCompatActivity {
|
||||
}
|
||||
});
|
||||
|
||||
lt_btn_twitter.setOnClickListener(new View.OnClickListener() {
|
||||
/*lt_btn_twitter.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (isBtnClick()) {
|
||||
@@ -342,9 +342,9 @@ public class EntryActivity extends AppCompatActivity {
|
||||
}
|
||||
verfiy(3);
|
||||
}
|
||||
});
|
||||
});*/
|
||||
|
||||
tt_login_button.setCallback(new Callback<TwitterSession>() {
|
||||
/*tt_login_button.setCallback(new Callback<TwitterSession>() {
|
||||
@Override
|
||||
public void success(Result<TwitterSession> result) {
|
||||
// Do something with result, which provides a TwitterSession for making API calls
|
||||
@@ -373,8 +373,8 @@ public class EntryActivity extends AppCompatActivity {
|
||||
Log.i("Log", "TwitterException = " + exception);
|
||||
ToastUtil.show(getResources().getString(R.string.user_login_outtime));
|
||||
}
|
||||
});
|
||||
findViewById(R.id.btn_line).setOnClickListener(new View.OnClickListener() {
|
||||
});*/
|
||||
/*findViewById(R.id.btn_line).setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
if (isBtnClick()) {
|
||||
@@ -382,7 +382,7 @@ public class EntryActivity extends AppCompatActivity {
|
||||
}
|
||||
verfiy(4);
|
||||
}
|
||||
});
|
||||
});*/
|
||||
|
||||
getUrl();
|
||||
|
||||
@@ -441,10 +441,10 @@ public class EntryActivity extends AppCompatActivity {
|
||||
} else if (loginType == 4) {
|
||||
try {
|
||||
// App-to-app login
|
||||
Intent loginIntent = LineLoginApi.getLoginIntent(findViewById(R.id.btn_line).getContext(), "2006124380", new LineAuthenticationParams.Builder().scopes(Arrays.asList(Scope.PROFILE))
|
||||
/* Intent loginIntent = LineLoginApi.getLoginIntent(findViewById(R.id.btn_line).getContext(), "2006124380", new LineAuthenticationParams.Builder().scopes(Arrays.asList(Scope.PROFILE))
|
||||
// .nonce("<a randomly-generated string>") // nonce can be used to improve security
|
||||
.build());
|
||||
startActivityForResult(loginIntent, 1001);
|
||||
startActivityForResult(loginIntent, 1001);*/
|
||||
} catch (Exception e) {
|
||||
Log.e("ERROR", e.toString());
|
||||
ToastUtil.show(getResources().getString(R.string.user_login_outtime));
|
||||
|
||||
@@ -33,8 +33,6 @@ import com.yunbao.main.R;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.Locale;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
@Route(path = RouteUtil.PATH_FEEDBACK_EDIT_ACTIVITY)
|
||||
public class FeedbackEditActivity extends AbsActivity {
|
||||
@@ -299,7 +297,7 @@ public class FeedbackEditActivity extends AbsActivity {
|
||||
loadingDialog = DialogUitl.loadingDialog(mContext);
|
||||
loadingDialog.show();
|
||||
if (tag == 1) {
|
||||
imageUtil.getImageByAlumb(false);
|
||||
imageUtil.getImageByAlbum(false);
|
||||
} else {
|
||||
imageUtil.getImageByCamera(false);
|
||||
}
|
||||
|
||||
@@ -41,6 +41,7 @@ import androidx.viewpager.widget.ViewPager;
|
||||
import com.alibaba.android.arouter.facade.annotation.Route;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.blankj.utilcode.util.LogUtils;
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
import com.jakewharton.rxbinding3.view.RxView;
|
||||
@@ -137,7 +138,7 @@ import com.yunbao.main.views.MainHomeViewHolder;
|
||||
import com.yunbao.main.views.MainMeViewHolder;
|
||||
import com.yunbao.main.views.MainMessageViewHolder;
|
||||
import com.yunbao.video.utils.VideoStorge;
|
||||
|
||||
import com.yunbao.common.CommonAppContext;
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
import org.greenrobot.eventbus.Subscribe;
|
||||
import org.greenrobot.eventbus.ThreadMode;
|
||||
@@ -224,7 +225,6 @@ public class MainActivity extends AbsActivity implements MainAppBarLayoutListene
|
||||
super.create();
|
||||
getWindow().requestFeature(Window.FEATURE_ACTIVITY_TRANSITIONS);
|
||||
getWindow().setSharedElementEnterTransition(new FullAdToBannerTransition(1, 0.4f, new DecelerateInterpolator()));
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -235,6 +235,11 @@ public class MainActivity extends AbsActivity implements MainAppBarLayoutListene
|
||||
|
||||
@Override
|
||||
protected void main() {
|
||||
LogUtils.e("MainActivity",
|
||||
"语言:"+IMLoginManager.get(CommonAppContext.sInstance).getLocaleLanguage(),
|
||||
"测试文本:"+getString(R.string.hot)
|
||||
);
|
||||
ToastUtil.showDebug("打包时间:"+CommonAppConfig.BUILD_TIME+"\n系统语言:"+IMLoginManager.get(CommonAppContext.sInstance).getLocaleLanguage());
|
||||
//初始化声网
|
||||
SWAuManager.get().initRtcEngine(this);
|
||||
ActivityCompat.postponeEnterTransition(this);
|
||||
@@ -352,6 +357,8 @@ public class MainActivity extends AbsActivity implements MainAppBarLayoutListene
|
||||
frameLayout.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
|
||||
mViewList.add(frameLayout);
|
||||
}
|
||||
mainHomeComViewHolder = new MainHomeComViewHolder(mContext, MainActivity.this, mViewList.get(0));
|
||||
|
||||
mViewPager.setAdapter(new ViewPagerAdapter(mViewList));
|
||||
mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
|
||||
@Override
|
||||
@@ -1281,7 +1288,7 @@ public class MainActivity extends AbsActivity implements MainAppBarLayoutListene
|
||||
return;
|
||||
}
|
||||
if (position == 0) {
|
||||
mainHomeComViewHolder = new MainHomeComViewHolder(mContext, MainActivity.this, parent);
|
||||
//mainHomeComViewHolder = new MainHomeComViewHolder(mContext, MainActivity.this, parent);
|
||||
vh = mainHomeComViewHolder;
|
||||
} else if (position == 1) {
|
||||
mainHomeViewHolder = new MainHomeViewHolder(mContext, parent);
|
||||
|
||||
@@ -409,7 +409,7 @@ public class MessageHiConfigActivity extends AbsActivity {
|
||||
}
|
||||
}
|
||||
});
|
||||
imageUtil.getImageByAlumb();
|
||||
imageUtil.getImageByAlbum();
|
||||
loading = DialogUitl.loadingDialog(mContext);
|
||||
loading.show();
|
||||
}
|
||||
|
||||
@@ -586,7 +586,7 @@ public class MyWebViewActivity extends AbsActivity {
|
||||
if (tag == com.yunbao.main.R.string.camera) {
|
||||
mImageUtil.getImageByCamera();
|
||||
} else {
|
||||
mImageUtil.getImageByAlumb();
|
||||
mImageUtil.getImageByAlbum();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -49,7 +49,7 @@ public class OneLoginActivity extends AbsActivity {
|
||||
if (tag == R.string.camera) {
|
||||
mImageUtil.getImageByCamera();
|
||||
} else {
|
||||
mImageUtil.getImageByAlumb();
|
||||
mImageUtil.getImageByAlbum();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -174,7 +174,12 @@ public class MainStartDialogFragment extends AbsDialogFragment implements View.O
|
||||
boolean isAnchor = IMLoginManager.get(mContext).getUserInfo().anchorUserType();
|
||||
if (isAnchor) {
|
||||
String[] permissions;
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
|
||||
permissions = new String[]{
|
||||
Manifest.permission.CAMERA,
|
||||
Manifest.permission.RECORD_AUDIO
|
||||
};
|
||||
} else if (Build.VERSION.SDK_INT == Build.VERSION_CODES.TIRAMISU) {
|
||||
permissions = new String[]{
|
||||
//Manifest.permission.READ_MEDIA_IMAGES, 去掉选择图片的权限,到里面选择封面的时候再去申请
|
||||
Manifest.permission.CAMERA,
|
||||
@@ -200,7 +205,12 @@ public class MainStartDialogFragment extends AbsDialogFragment implements View.O
|
||||
boolean isAnchor = IMLoginManager.get(mContext).getUserInfo().anchorUserType();
|
||||
if (isAnchor) {
|
||||
String[] permissions;
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
|
||||
permissions = new String[]{
|
||||
Manifest.permission.CAMERA,
|
||||
Manifest.permission.RECORD_AUDIO
|
||||
};
|
||||
} else if (Build.VERSION.SDK_INT == Build.VERSION_CODES.TIRAMISU) {
|
||||
permissions = new String[]{
|
||||
Manifest.permission.READ_MEDIA_IMAGES,
|
||||
Manifest.permission.CAMERA,
|
||||
@@ -239,9 +249,9 @@ public class MainStartDialogFragment extends AbsDialogFragment implements View.O
|
||||
JSONObject obj = JSON.parseObject(info[0]);
|
||||
JSONObject obj1 = JSON.parseObject(info1[0]);
|
||||
try {
|
||||
if(code==201){ //声网
|
||||
if (code == 201) { //声网
|
||||
LiveSwAnchorActivity.forward(mContext, Constants.LIVE_SDK_SW, JSON.parseObject(obj.getString("android"), LiveKsyConfigBean.class));
|
||||
}else if(code==200){//融云
|
||||
} else if (code == 200) {//融云
|
||||
LiveRyAnchorActivity.forward(mContext, obj.getIntValue("live_sdk"), JSON.parseObject(obj.getString("android"), LiveKsyConfigBean.class));
|
||||
}
|
||||
} catch (Exception e) {
|
||||
@@ -316,7 +326,7 @@ public class MainStartDialogFragment extends AbsDialogFragment implements View.O
|
||||
if (i == R.id.btn_close) {
|
||||
} else if (i == R.id.btn_live) {
|
||||
if (isWifiProxy(mContext) || checkVPN((ConnectivityManager) mContext.getSystemService(Context.CONNECTIVITY_SERVICE))) {
|
||||
ToastUtil.show(WordUtil.isNewZh()?"檢測開啓了VPN或者代理,請先關閉VPN或者代理再開播。":
|
||||
ToastUtil.show(WordUtil.isNewZh() ? "檢測開啓了VPN或者代理,請先關閉VPN或者代理再開播。" :
|
||||
"It is detected that VPN or proxy is turned on. Please turn off VPN or proxy before starting the broadcast.");
|
||||
DebugUtils.runDebugCode(() -> mCallback.onLiveClick());
|
||||
} else {
|
||||
@@ -332,6 +342,7 @@ public class MainStartDialogFragment extends AbsDialogFragment implements View.O
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private boolean isWifiProxy(Context context) {
|
||||
final boolean IS_ICS_OR_LATER = Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH;
|
||||
String proxyAddress;
|
||||
@@ -353,6 +364,7 @@ public class MainStartDialogFragment extends AbsDialogFragment implements View.O
|
||||
boolean isVpnConn = networkInfo == null ? false : networkInfo.isConnected();
|
||||
return isVpnConn;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroy() {
|
||||
super.onDestroy();
|
||||
|
||||
@@ -338,7 +338,7 @@ public class MainHttpUtil {
|
||||
public static void getSettingList(HttpCallback callback) {
|
||||
HttpClient.getInstance().get("User.getPerSetting", MainHttpConsts.GET_SETTING_LIST)
|
||||
.params("version", VersionUtil.getVersion())
|
||||
.params("package_name","panduo")
|
||||
.params("package_name","feelWe")
|
||||
.execute(callback);
|
||||
}
|
||||
|
||||
@@ -513,7 +513,7 @@ public class MainHttpUtil {
|
||||
HttpClient.getInstance().get("Login.getCode", MainHttpConsts.GET_REGISTER_CODE)
|
||||
.params("mobile", mobile)
|
||||
.params("sign", sign)
|
||||
.params("source", "1")
|
||||
.params("source", "2")
|
||||
.params("langue", WordUtil.isNewZh()?"chinese":"english")
|
||||
.execute(callback);
|
||||
}
|
||||
@@ -536,7 +536,7 @@ public class MainHttpUtil {
|
||||
.params("Ticket", Ticket)
|
||||
.params("MacAddress", macUitl.getNewMac())
|
||||
.params("Imei", uuid)
|
||||
.params("source", "1")
|
||||
.params("source", "2")
|
||||
.params("langue", WordUtil.isNewZh()?"chinese":"english")
|
||||
.execute(callback);
|
||||
}
|
||||
@@ -646,7 +646,7 @@ public class MainHttpUtil {
|
||||
HttpClient.getInstance().get("Login.getCode", MainHttpConsts.GET_FIND_PWD_CODE)
|
||||
.params("mobile", mobile)
|
||||
.params("country_code", country_code)
|
||||
.params("source", "1")
|
||||
.params("source", "2")
|
||||
.params("langue", WordUtil.isNewZh()?"chinese":"english")
|
||||
.execute(callback);
|
||||
}
|
||||
|
||||
@@ -4,12 +4,14 @@
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@color/white"
|
||||
tools:context=".activity.EntryActivity">
|
||||
|
||||
|
||||
<com.yunbao.main.views.CustomVideoView
|
||||
android:id="@+id/video_view"
|
||||
android:layout_width="match_parent"
|
||||
android:visibility="gone"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_gravity="center" />
|
||||
|
||||
@@ -34,25 +36,26 @@
|
||||
android:layout_marginBottom="21dp">
|
||||
|
||||
<LinearLayout
|
||||
android:visibility="gone"
|
||||
android:id="@+id/lt_btn_facebook"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="54dp"
|
||||
android:layout_marginLeft="42dp"
|
||||
android:layout_marginRight="42dp"
|
||||
android:layout_height="56dp"
|
||||
android:layout_marginLeft="48dp"
|
||||
android:layout_marginRight="48dp"
|
||||
android:background="@drawable/background_227bef"
|
||||
android:gravity="center|left">
|
||||
android:gravity="center_vertical">
|
||||
|
||||
<ImageView
|
||||
android:layout_width="30dp"
|
||||
android:layout_height="30dp"
|
||||
android:layout_width="32dp"
|
||||
android:layout_height="32dp"
|
||||
android:layout_gravity="center"
|
||||
android:layout_marginLeft="54dp"
|
||||
android:layout_marginLeft="20dp"
|
||||
android:src="@mipmap/icon_facebook" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_marginStart="30dp"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="21dp"
|
||||
android:text="@string/user_login_facebook"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="14sp" />
|
||||
@@ -69,29 +72,62 @@
|
||||
<LinearLayout
|
||||
android:id="@+id/btn_google"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="54dp"
|
||||
android:layout_marginLeft="42dp"
|
||||
android:layout_marginRight="42dp"
|
||||
android:layout_height="56dp"
|
||||
android:layout_marginLeft="48dp"
|
||||
android:layout_marginRight="48dp"
|
||||
android:background="@drawable/background_fff_d20"
|
||||
android:gravity="center|left">
|
||||
android:gravity="center_vertical">
|
||||
|
||||
<ImageView
|
||||
android:layout_width="45dp"
|
||||
android:layout_height="45dp"
|
||||
android:layout_width="32dp"
|
||||
android:layout_height="32dp"
|
||||
android:layout_gravity="center"
|
||||
android:layout_marginLeft="54dp"
|
||||
android:layout_marginLeft="20dp"
|
||||
android:src="@mipmap/login_google" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="6dp"
|
||||
android:layout_marginLeft="35dp"
|
||||
android:text="@string/user_login_google"
|
||||
android:textColor="@color/black1"
|
||||
android:textSize="14sp" />
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/phonelayout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:layout_marginBottom="21dp">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/btn_phone"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="54dp"
|
||||
android:layout_marginLeft="48dp"
|
||||
android:layout_marginRight="48dp"
|
||||
android:background="@drawable/background_fff_d20"
|
||||
android:gravity="center_vertical">
|
||||
|
||||
<ImageView
|
||||
android:layout_width="32dp"
|
||||
android:layout_height="32dp"
|
||||
android:layout_gravity="center"
|
||||
android:layout_marginLeft="20dp"
|
||||
android:src="@mipmap/entry_phone" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/login_use_phone"
|
||||
android:layout_marginLeft="35dp"
|
||||
android:textColor="@color/black1"
|
||||
android:textSize="14sp" />
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
|
||||
<!-- <RelativeLayout-->
|
||||
<!-- android:layout_width="match_parent"-->
|
||||
<!-- android:layout_height="wrap_content"-->
|
||||
@@ -141,7 +177,7 @@
|
||||
android:layout_marginRight="25dp"
|
||||
android:orientation="vertical">
|
||||
|
||||
<LinearLayout
|
||||
<!--<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="12dp"
|
||||
@@ -221,7 +257,7 @@
|
||||
</RelativeLayout>
|
||||
|
||||
|
||||
</LinearLayout>
|
||||
</LinearLayout>-->
|
||||
|
||||
|
||||
<LinearLayout
|
||||
@@ -246,14 +282,14 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:layout_marginTop="22dp"
|
||||
android:layout_marginBottom="22dp"
|
||||
android:layout_marginBottom="40dp"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
android:text="@string/next_step_is_consent"
|
||||
android:textColor="#ffb1b1b1"
|
||||
android:textColor="#FF999999"
|
||||
android:textSize="10sp" />
|
||||
|
||||
|
||||
@@ -263,7 +299,7 @@
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginLeft="1dp"
|
||||
android:text="@string/user_protocol2"
|
||||
android:textColor="#ffb1b1b1"
|
||||
android:textColor="#FF000000"
|
||||
android:textSize="10sp" />
|
||||
|
||||
<TextView
|
||||
@@ -271,7 +307,7 @@
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginLeft="1dp"
|
||||
android:text="@string/and"
|
||||
android:textColor="#ffb1b1b1"
|
||||
android:textColor="#FF999999"
|
||||
android:textSize="10sp" />
|
||||
|
||||
<TextView
|
||||
@@ -280,7 +316,7 @@
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginLeft="1dp"
|
||||
android:text="@string/privacy_terms"
|
||||
android:textColor="#ffb1b1b1"
|
||||
android:textColor="#FF000000"
|
||||
android:textSize="10sp" />
|
||||
|
||||
</LinearLayout>
|
||||
@@ -292,8 +328,7 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_centerHorizontal="true"
|
||||
android:layout_marginTop="80dp"
|
||||
android:visibility="gone"
|
||||
android:layout_marginTop="125dp"
|
||||
android:src="@mipmap/white_logo" />
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
@@ -301,7 +336,7 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:visibility="gone"
|
||||
tools:visibility="visible">
|
||||
tools:visibility="gone">
|
||||
|
||||
<View
|
||||
android:id="@+id/view2"
|
||||
|
||||
BIN
main/src/main/res/mipmap-xxxhdpi/entry_phone.webp
Normal file
|
After Width: | Height: | Size: 530 B |
|
Before Width: | Height: | Size: 10 KiB |
BIN
main/src/main/res/mipmap-xxxhdpi/login_google.webp
Normal file
|
After Width: | Height: | Size: 2.0 KiB |
|
Before Width: | Height: | Size: 8.4 KiB After Width: | Height: | Size: 5.9 KiB |
|
Before Width: | Height: | Size: 7.7 KiB After Width: | Height: | Size: 74 KiB |
@@ -156,4 +156,5 @@
|
||||
<string name="live_prank_gift_tips">You can add up to 6, and it is recommended to add 4.</string>
|
||||
|
||||
<string name="live_prank_dialog_gift_type_achieved">Quantity achieved</string>
|
||||
<string name="login_use_phone">Sign in with Phone Number</string>
|
||||
</resources>
|
||||
@@ -106,5 +106,5 @@
|
||||
<string name="activity_feedback_edit_img_select">從相冊選取</string>
|
||||
<string name="activity_feedback_edit_img_camera">拍照</string>
|
||||
<string name="activity_battle_pass_all_get">一鍵領取</string>
|
||||
|
||||
<string name="login_use_phone">使用手機號登錄</string>
|
||||
</resources>
|
||||
@@ -107,4 +107,5 @@
|
||||
<string name="activity_battle_pass_all_get">Receive all</string>
|
||||
<string name="live_room_sud_hint_join">Join</string>
|
||||
<string name="live_dialog_top_guardian_tasks">Guard tasks</string>
|
||||
<string name="login_use_phone">Sign in with Phone Number</string>
|
||||
</resources>
|
||||
|
||||
@@ -6,6 +6,7 @@ import android.content.Context;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.animation.AccelerateInterpolator;
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.google.android.exoplayer2.C;
|
||||
import com.google.android.exoplayer2.DefaultLoadControl;
|
||||
|
||||