parent
c6982b675f
commit
6b376d92c4
@ -0,0 +1,6 @@ |
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<project version="4"> |
||||
<component name="CompilerConfiguration"> |
||||
<bytecodeTargetLevel target="11" /> |
||||
</component> |
||||
</project> |
@ -0,0 +1,27 @@ |
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<project version="4"> |
||||
<component name="GradleMigrationSettings" migrationVersion="1" /> |
||||
<component name="GradleSettings"> |
||||
<option name="linkedExternalProjectsSettings"> |
||||
<GradleProjectSettings> |
||||
<option name="testRunner" value="PLATFORM" /> |
||||
<option name="distributionType" value="DEFAULT_WRAPPED" /> |
||||
<option name="externalProjectPath" value="$PROJECT_DIR$" /> |
||||
<option name="gradleHome" value="$USER_HOME$/.gradle/wrapper/dists/gradle-6.7.1-bin/bwlcbys1h7rz3272sye1xwiv6/gradle-6.7.1" /> |
||||
<option name="modules"> |
||||
<set> |
||||
<option value="$PROJECT_DIR$" /> |
||||
<option value="$PROJECT_DIR$/app" /> |
||||
<option value="$PROJECT_DIR$/calllib" /> |
||||
<option value="$PROJECT_DIR$/common" /> |
||||
<option value="$PROJECT_DIR$/imlib" /> |
||||
<option value="$PROJECT_DIR$/library-player" /> |
||||
<option value="$PROJECT_DIR$/meeting1v1" /> |
||||
<option value="$PROJECT_DIR$/rtclib" /> |
||||
</set> |
||||
</option> |
||||
<option name="resolveModulePerSourceSet" value="false" /> |
||||
</GradleProjectSettings> |
||||
</option> |
||||
</component> |
||||
</project> |
@ -0,0 +1,30 @@ |
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<project version="4"> |
||||
<component name="RemoteRepositoriesConfiguration"> |
||||
<remote-repository> |
||||
<option name="id" value="central" /> |
||||
<option name="name" value="Maven Central repository" /> |
||||
<option name="url" value="https://repo1.maven.org/maven2" /> |
||||
</remote-repository> |
||||
<remote-repository> |
||||
<option name="id" value="jboss.community" /> |
||||
<option name="name" value="JBoss Community repository" /> |
||||
<option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" /> |
||||
</remote-repository> |
||||
<remote-repository> |
||||
<option name="id" value="BintrayJCenter" /> |
||||
<option name="name" value="BintrayJCenter" /> |
||||
<option name="url" value="https://jcenter.bintray.com/" /> |
||||
</remote-repository> |
||||
<remote-repository> |
||||
<option name="id" value="maven" /> |
||||
<option name="name" value="maven" /> |
||||
<option name="url" value="https://jitpack.io" /> |
||||
</remote-repository> |
||||
<remote-repository> |
||||
<option name="id" value="Google" /> |
||||
<option name="name" value="Google" /> |
||||
<option name="url" value="https://dl.google.com/dl/android/maven2/" /> |
||||
</remote-repository> |
||||
</component> |
||||
</project> |
@ -0,0 +1,17 @@ |
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<project version="4"> |
||||
<component name="DesignSurface"> |
||||
<option name="filePathToZoomLevelMap"> |
||||
<map> |
||||
<entry key="..\:/StudioProjects/UnionMedTV/app/src/main/res/layout/activity_hospital_detail.xml" value="0.1988536155202822" /> |
||||
<entry key="..\:/StudioProjects/UnionMedTV/app/src/main/res/layout/item_type_doctor_layout.xml" value="0.14594356261022928" /> |
||||
</map> |
||||
</option> |
||||
</component> |
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_11" default="true" project-jdk-name="11" project-jdk-type="JavaSDK"> |
||||
<output url="file://$PROJECT_DIR$/build/classes" /> |
||||
</component> |
||||
<component name="ProjectType"> |
||||
<option name="id" value="Android" /> |
||||
</component> |
||||
</project> |
@ -0,0 +1,10 @@ |
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<project version="4"> |
||||
<component name="RunConfigurationProducerService"> |
||||
<option name="ignoredProducers"> |
||||
<set> |
||||
<option value="com.android.tools.idea.compose.preview.runconfiguration.ComposePreviewRunConfigurationProducer" /> |
||||
</set> |
||||
</option> |
||||
</component> |
||||
</project> |
@ -0,0 +1,6 @@ |
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<project version="4"> |
||||
<component name="VcsDirectoryMappings"> |
||||
<mapping directory="$PROJECT_DIR$" vcs="Git" /> |
||||
</component> |
||||
</project> |
@ -0,0 +1,308 @@ |
||||
package com.unionmed.unionmedtv.im; |
||||
|
||||
import android.os.Parcel; |
||||
import android.os.Parcelable; |
||||
import android.text.TextUtils; |
||||
import android.util.Log; |
||||
|
||||
import org.json.JSONException; |
||||
import org.json.JSONObject; |
||||
|
||||
import java.io.UnsupportedEncodingException; |
||||
|
||||
import io.rong.common.ParcelUtils; |
||||
import io.rong.imlib.MessageTag; |
||||
import io.rong.imlib.model.MentionedInfo; |
||||
import io.rong.imlib.model.MessageContent; |
||||
import io.rong.imlib.model.UserInfo; |
||||
|
||||
@MessageTag(value = "UMCustomNoticeMessage", flag = MessageTag.STATUS) |
||||
public class CustomNoticeMessageModel extends MessageContent { |
||||
private static final String TAG = "CustomNoticeMessageModel"; |
||||
|
||||
public static final Creator<CustomNoticeMessageModel> CREATOR = new Creator<CustomNoticeMessageModel>() { |
||||
public CustomNoticeMessageModel createFromParcel(Parcel source) { |
||||
return new CustomNoticeMessageModel(source); |
||||
} |
||||
|
||||
public CustomNoticeMessageModel[] newArray(int size) { |
||||
return new CustomNoticeMessageModel[size]; |
||||
} |
||||
}; |
||||
|
||||
private String content; |
||||
private String contentType; |
||||
private String ext; |
||||
private String logo; |
||||
private String text; |
||||
private String title; |
||||
private String url; |
||||
|
||||
|
||||
/** |
||||
* 将本地消息对象序列化为消息数据。 |
||||
* |
||||
* @return 消息数据。 |
||||
*/ |
||||
@Override |
||||
public byte[] encode() { |
||||
JSONObject jsonObj = new JSONObject(); |
||||
try { |
||||
// 消息携带用户信息时, 自定义消息需添加下面代码
|
||||
if (getJSONUserInfo() != null) { |
||||
jsonObj.putOpt("user", getJSONUserInfo()); |
||||
} |
||||
// 用于群组聊天, 消息携带 @ 人信息时, 自定义消息需添加下面代码
|
||||
if (getJsonMentionInfo() != null) { |
||||
jsonObj.putOpt("mentionedInfo", getJsonMentionInfo()); |
||||
} |
||||
// 将所有自定义消息的内容,都序列化至 json 对象中
|
||||
jsonObj.put("content", this.content); |
||||
jsonObj.put("contentType", this.contentType); |
||||
jsonObj.put("logo", this.logo); |
||||
jsonObj.put("text", this.text); |
||||
jsonObj.put("title", this.title); |
||||
jsonObj.put("url", this.url); |
||||
jsonObj.put("ext", this.ext); |
||||
} catch (JSONException e) { |
||||
Log.e(TAG, "JSONException " + e.getMessage()); |
||||
} |
||||
|
||||
try { |
||||
return jsonObj.toString().getBytes("UTF-8"); |
||||
} catch (UnsupportedEncodingException e) { |
||||
Log.e(TAG, "UnsupportedEncodingException ", e); |
||||
} |
||||
return null; |
||||
} |
||||
|
||||
/** |
||||
* 创建 MyMyTextContent(byte[] data) 带有 byte[] 的构造方法用于解析消息内容. |
||||
*/ |
||||
public CustomNoticeMessageModel(byte[] data) { |
||||
if (data == null) { |
||||
return; |
||||
} |
||||
String jsonStr = null; |
||||
try { |
||||
jsonStr = new String(data, "UTF-8"); |
||||
} catch (UnsupportedEncodingException e) { |
||||
Log.e(TAG, "UnsupportedEncodingException ", e); |
||||
} |
||||
if (jsonStr == null) { |
||||
Log.e(TAG, "jsonStr is null "); |
||||
return; |
||||
} |
||||
|
||||
try { |
||||
JSONObject jsonObj = new JSONObject(jsonStr); |
||||
// 消息携带用户信息时, 自定义消息需添加下面代码
|
||||
if (jsonObj.has("user")) { |
||||
setUserInfo(parseJsonToUserInfo(jsonObj.getJSONObject("user"))); |
||||
} |
||||
// 用于群组聊天, 消息携带 @ 人信息时, 自定义消息需添加下面代码
|
||||
if (jsonObj.has("mentionedInfo")) { |
||||
setMentionedInfo(parseJsonToMentionInfo(jsonObj.getJSONObject("mentionedInfo"))); |
||||
} |
||||
// 将所有自定义变量从收到的 json 解析并赋值
|
||||
if (jsonObj.has("content")) { |
||||
content = jsonObj.optString("content"); |
||||
} |
||||
if (jsonObj.has("contentType")) { |
||||
contentType = jsonObj.optString("contentType"); |
||||
} |
||||
if (jsonObj.has("logo")) { |
||||
logo = jsonObj.optString("logo"); |
||||
} |
||||
if (jsonObj.has("text")) { |
||||
text = jsonObj.optString("text"); |
||||
} |
||||
if (jsonObj.has("title")) { |
||||
title = jsonObj.optString("title"); |
||||
} |
||||
if (jsonObj.has("url")) { |
||||
url = jsonObj.optString("url"); |
||||
} |
||||
if (jsonObj.has("ext")) { |
||||
ext = jsonObj.optString("ext"); |
||||
} |
||||
// if (jsonObj.has("ext")) {
|
||||
// setExt(parseJsonToExt(jsonObj.getJSONObject("ext")));
|
||||
// }
|
||||
} catch (JSONException e) { |
||||
Log.e(TAG, "JSONException " + e.getMessage()); |
||||
} |
||||
} |
||||
|
||||
@Override |
||||
public int describeContents() { |
||||
return 0; |
||||
} |
||||
|
||||
@Override |
||||
public void writeToParcel(Parcel dest, int flags) { |
||||
ParcelUtils.writeToParcel(dest, this.getExtra()); |
||||
ParcelUtils.writeToParcel(dest, this.getUserInfo()); |
||||
ParcelUtils.writeToParcel(dest, this.getMentionedInfo()); |
||||
ParcelUtils.writeToParcel(dest, this.isDestruct() ? 1 : 0); |
||||
ParcelUtils.writeToParcel(dest, this.getDestructTime()); |
||||
|
||||
ParcelUtils.writeToParcel(dest, this.content); |
||||
ParcelUtils.writeToParcel(dest, this.contentType); |
||||
ParcelUtils.writeToParcel(dest, this.logo); |
||||
ParcelUtils.writeToParcel(dest, this.text); |
||||
ParcelUtils.writeToParcel(dest, this.title); |
||||
ParcelUtils.writeToParcel(dest, this.url); |
||||
ParcelUtils.writeToParcel(dest, this.ext); |
||||
} |
||||
|
||||
public ExtBean parseJsonToExt(JSONObject jsonObj) { |
||||
ExtBean info = null; |
||||
String roomID = jsonObj.optString("roomID"); |
||||
String GroupID = jsonObj.optString("GroupID"); |
||||
|
||||
if (!TextUtils.isEmpty(roomID) && !TextUtils.isEmpty(GroupID)) { |
||||
info = new ExtBean(roomID, GroupID); |
||||
} |
||||
|
||||
return info; |
||||
} |
||||
|
||||
/** |
||||
* 构造函数。 |
||||
* |
||||
* @param in 初始化传入的 Parcel。 |
||||
*/ |
||||
public CustomNoticeMessageModel(Parcel in) { |
||||
this.setExtra(ParcelUtils.readFromParcel(in)); |
||||
this.setUserInfo((UserInfo) ParcelUtils.readFromParcel(in, UserInfo.class)); |
||||
this.setMentionedInfo((MentionedInfo) ParcelUtils.readFromParcel(in, MentionedInfo.class)); |
||||
this.setDestruct(ParcelUtils.readIntFromParcel(in) == 1); |
||||
this.setDestructTime(ParcelUtils.readLongFromParcel(in)); |
||||
|
||||
this.setContent(ParcelUtils.readFromParcel(in)); |
||||
this.setContentType(ParcelUtils.readFromParcel(in)); |
||||
this.setLogo(ParcelUtils.readFromParcel(in)); |
||||
this.setText(ParcelUtils.readFromParcel(in)); |
||||
this.setTitle(ParcelUtils.readFromParcel(in)); |
||||
this.setUrl(ParcelUtils.readFromParcel(in)); |
||||
this.setExt(ParcelUtils.readFromParcel(in)); |
||||
// this.setExt((ExtBean) ParcelUtils.readFromParcel(in, ExtBean.class));
|
||||
} |
||||
|
||||
|
||||
public String getContent() { |
||||
return content; |
||||
} |
||||
|
||||
public void setContent(String content) { |
||||
this.content = content; |
||||
} |
||||
|
||||
public String getContentType() { |
||||
return contentType; |
||||
} |
||||
|
||||
public void setContentType(String contentType) { |
||||
this.contentType = contentType; |
||||
} |
||||
|
||||
public String getExt() { |
||||
return ext; |
||||
} |
||||
|
||||
public void setExt(String ext) { |
||||
this.ext = ext; |
||||
} |
||||
|
||||
public String getLogo() { |
||||
return logo; |
||||
} |
||||
|
||||
public void setLogo(String logo) { |
||||
this.logo = logo; |
||||
} |
||||
|
||||
public String getText() { |
||||
return text; |
||||
} |
||||
|
||||
public void setText(String text) { |
||||
this.text = text; |
||||
} |
||||
|
||||
public String getTitle() { |
||||
return title; |
||||
} |
||||
|
||||
public void setTitle(String title) { |
||||
this.title = title; |
||||
} |
||||
|
||||
public String getUrl() { |
||||
return url; |
||||
} |
||||
|
||||
public void setUrl(String url) { |
||||
this.url = url; |
||||
} |
||||
|
||||
public static class ExtBean implements Parcelable { |
||||
private String roomID; |
||||
private String groupID; |
||||
|
||||
public String getRoomID() { |
||||
return roomID; |
||||
} |
||||
|
||||
public void setRoomID(String roomID) { |
||||
this.roomID = roomID; |
||||
} |
||||
|
||||
public String getGroupID() { |
||||
return groupID; |
||||
} |
||||
|
||||
public void setGroupID(String groupID) { |
||||
groupID = groupID; |
||||
} |
||||
|
||||
@Override |
||||
public int describeContents() { |
||||
return 0; |
||||
} |
||||
|
||||
@Override |
||||
public void writeToParcel(Parcel dest, int flags) { |
||||
dest.writeString(this.roomID); |
||||
dest.writeString(this.groupID); |
||||
} |
||||
|
||||
public void readFromParcel(Parcel source) { |
||||
this.roomID = source.readString(); |
||||
this.groupID = source.readString(); |
||||
} |
||||
|
||||
public ExtBean(String roomID, String groupID) { |
||||
this.roomID = roomID; |
||||
this.groupID = groupID; |
||||
} |
||||
|
||||
protected ExtBean(Parcel in) { |
||||
this.roomID = in.readString(); |
||||
this.groupID = in.readString(); |
||||
} |
||||
|
||||
public static final Creator<ExtBean> CREATOR = new Creator<ExtBean>() { |
||||
@Override |
||||
public ExtBean createFromParcel(Parcel source) { |
||||
return new ExtBean(source); |
||||
} |
||||
|
||||
@Override |
||||
public ExtBean[] newArray(int size) { |
||||
return new ExtBean[size]; |
||||
} |
||||
}; |
||||
} |
||||
} |
@ -0,0 +1,9 @@ |
||||
<?xml version="1.0" encoding="utf-8"?> |
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" |
||||
xmlns:app="http://schemas.android.com/apk/res-auto" |
||||
android:id="@+id/constraintlayout" |
||||
android:layout_width="match_parent" |
||||
android:layout_height="wrap_content" |
||||
> |
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout> |
@ -0,0 +1,46 @@ |
||||
# Built application files |
||||
*.apk |
||||
*.ap_ |
||||
|
||||
# Files for the Dalvik VM |
||||
*.dex |
||||
|
||||
# Java class files |
||||
*.class |
||||
|
||||
# Genetated files |
||||
bin/ |
||||
gen/ |
||||
|
||||
# OSX files |
||||
.DS_Store |
||||
|
||||
# Android Studio |
||||
*.iml |
||||
.idea |
||||
|
||||
# Gradle files |
||||
.gradle/ |
||||
build/ |
||||
|
||||
# Local configuration file (sdk path , etc) |
||||
local.properties |
||||
project.properties |
||||
|
||||
# Proguard folder generated bg Eclipse |
||||
proguard/ |
||||
|
||||
# Log Files |
||||
*.log |
||||
|
||||
/build |
||||
/captures |
||||
.externalNativeBuild |
||||
/.idea/caches/build_file_checksums.ser |
||||
/.idea/libraries |
||||
/.idea/modules.xml |
||||
/.idea/workspace.xml |
||||
|
||||
src/test/ |
||||
src/androidTest/ |
||||
!<path_to_libs> |
@ -0,0 +1,19 @@ |
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android" |
||||
package="io.rong.calllib"> |
||||
|
||||
<application android:supportsRtl="true"> |
||||
<meta-data |
||||
android:name="rc.calllib" |
||||
android:value="io.rong.calllib.RongCallClient" /> |
||||
</application> |
||||
|
||||
<uses-permission android:name="android.permission.CAMERA" /> |
||||
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /> |
||||
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> |
||||
<uses-permission android:name="android.permission.RECORD_AUDIO" /> |
||||
<uses-permission android:name="android.permission.BLUETOOTH" /> |
||||
<uses-permission android:name="android.permission.INTERNET" /> |
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> |
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> |
||||
|
||||
</manifest> |
@ -0,0 +1,23 @@ |
||||
apply plugin: 'com.android.library' |
||||
|
||||
android { |
||||
compileSdkVersion 31 |
||||
|
||||
defaultConfig { |
||||
minSdkVersion 19 |
||||
targetSdkVersion 31 |
||||
versionName "5.2.1.51" |
||||
} |
||||
|
||||
sourceSets { |
||||
main { |
||||
manifest.srcFile 'AndroidManifest.xml' |
||||
jniLibs.srcDirs = ['libs'] |
||||
} |
||||
} |
||||
} |
||||
|
||||
dependencies { |
||||
api fileTree(dir: 'libs', include: ['*.jar']) |
||||
api project(':rtclib') |
||||
} |
Binary file not shown.
@ -0,0 +1,37 @@ |
||||
plugins { |
||||
id 'com.android.library' |
||||
} |
||||
|
||||
android { |
||||
compileSdkVersion 30 |
||||
defaultConfig { |
||||
minSdkVersion 19 |
||||
targetSdkVersion 27 |
||||
versionCode 1 |
||||
versionName "1.0" |
||||
|
||||
|
||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" |
||||
consumerProguardFiles "consumer-rules.pro" |
||||
|
||||
ndk { |
||||
abiFilters "armeabi-v7a" |
||||
} |
||||
} |
||||
|
||||
buildTypes { |
||||
release { |
||||
minifyEnabled false |
||||
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' |
||||
} |
||||
} |
||||
} |
||||
|
||||
dependencies { |
||||
|
||||
implementation 'androidx.appcompat:appcompat:1.2.0' |
||||
implementation 'com.google.android.material:material:1.3.0' |
||||
testImplementation 'junit:junit:4.+' |
||||
androidTestImplementation 'androidx.test.ext:junit:1.1.2' |
||||
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0' |
||||
} |
@ -0,0 +1 @@ |
||||
o/classes |
Binary file not shown.
@ -0,0 +1,18 @@ |
||||
/** |
||||
* Automatically generated file. DO NOT MODIFY |
||||
*/ |
||||
package cn.rongcloud.demo.common; |
||||
|
||||
public final class BuildConfig { |
||||
public static final boolean DEBUG = Boolean.parseBoolean("true"); |
||||
public static final String LIBRARY_PACKAGE_NAME = "cn.rongcloud.demo.common"; |
||||
/** |
||||
* @deprecated APPLICATION_ID is misleading in libraries. For the library package name use LIBRARY_PACKAGE_NAME |
||||
*/ |
||||
@Deprecated |
||||
public static final String APPLICATION_ID = "cn.rongcloud.demo.common"; |
||||
public static final String BUILD_TYPE = "debug"; |
||||
public static final String FLAVOR = ""; |
||||
public static final int VERSION_CODE = 1; |
||||
public static final String VERSION_NAME = "1.0"; |
||||
} |
@ -0,0 +1,11 @@ |
||||
<?xml version="1.0" encoding="utf-8"?> |
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android" |
||||
package="cn.rongcloud.demo.common" |
||||
android:versionCode="1" |
||||
android:versionName="1.0" > |
||||
|
||||
<uses-sdk |
||||
android:minSdkVersion="19" |
||||
android:targetSdkVersion="27" /> |
||||
|
||||
</manifest> |
@ -0,0 +1 @@ |
||||
[{"outputType":{"type":"AAPT_FRIENDLY_MERGED_MANIFESTS"},"apkData":{"type":"MAIN","splits":[],"versionCode":1,"versionName":"1.0","enabled":true,"outputFile":"common-debug.aar","fullName":"debug","baseName":"debug"},"path":"AndroidManifest.xml","properties":{"packageId":"cn.rongcloud.demo.common","split":""}}] |
@ -0,0 +1 @@ |
||||
{} |
Binary file not shown.
Binary file not shown.
@ -0,0 +1,3 @@ |
||||
#Thu Jul 20 17:13:35 CST 2023 |
||||
D\:\\StudioProjects\\UnionMedTV\\common\\src\\main\\res\\layout\\layout_loading.xml=D\:\\StudioProjects\\UnionMedTV\\common\\build\\intermediates\\packaged_res\\debug\\layout\\layout_loading.xml |
||||
D\:\\StudioProjects\\UnionMedTV\\common\\src\\main\\res\\drawable\\btn_style.xml=D\:\\StudioProjects\\UnionMedTV\\common\\build\\intermediates\\packaged_res\\debug\\drawable\\btn_style.xml |
@ -0,0 +1,11 @@ |
||||
<?xml version="1.0" encoding="utf-8"?> |
||||
<resources> |
||||
<color name="black">#FF000000</color> |
||||
<color name="light_blue">#FF57B5F9</color> |
||||
<color name="purple_700">#FF3700B3</color> |
||||
<color name="white">#FFFFFFFF</color> |
||||
<string name="app_name">common</string> |
||||
<style name="TransparentDialog" parent="Theme.AppCompat.Dialog"> |
||||
<item name="android:windowBackground">@android:color/transparent</item> |
||||
</style> |
||||
</resources> |
@ -0,0 +1,4 @@ |
||||
<?xml version="1.0" encoding="utf-8"?> |
||||
<merger version="3"><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="main$Generated" generated="true" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="D:\StudioProjects\UnionMedTV\common\src\main\res"/><source path="D:\StudioProjects\UnionMedTV\common\build\generated\res\rs\debug"/><source path="D:\StudioProjects\UnionMedTV\common\build\generated\res\resValues\debug"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="main" generated-set="main$Generated" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="D:\StudioProjects\UnionMedTV\common\src\main\res"><file name="btn_style" path="D:\StudioProjects\UnionMedTV\common\src\main\res\drawable\btn_style.xml" qualifiers="" type="drawable"/><file name="layout_loading" path="D:\StudioProjects\UnionMedTV\common\src\main\res\layout\layout_loading.xml" qualifiers="" type="layout"/><file path="D:\StudioProjects\UnionMedTV\common\src\main\res\values\colors.xml" qualifiers=""><color name="black">#FF000000</color><color name="white">#FFFFFFFF</color><color name="light_blue">#FF57B5F9</color><color name="purple_700">#FF3700B3</color></file><file path="D:\StudioProjects\UnionMedTV\common\src\main\res\values\strings.xml" qualifiers=""><string name="app_name">common</string></file><file path="D:\StudioProjects\UnionMedTV\common\src\main\res\values\themes.xml" qualifiers=""><style name="TransparentDialog" parent="Theme.AppCompat.Dialog"> |
||||
<item name="android:windowBackground">@android:color/transparent</item> |
||||
</style></file></source><source path="D:\StudioProjects\UnionMedTV\common\build\generated\res\rs\debug"/><source path="D:\StudioProjects\UnionMedTV\common\build\generated\res\resValues\debug"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="debug$Generated" generated="true" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="D:\StudioProjects\UnionMedTV\common\src\debug\res"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="debug" generated-set="debug$Generated" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="D:\StudioProjects\UnionMedTV\common\src\debug\res"/></dataSet><mergedItems/></merger> |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,11 @@ |
||||
<?xml version="1.0" encoding="utf-8"?> |
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android" |
||||
package="cn.rongcloud.demo.common" |
||||
android:versionCode="1" |
||||
android:versionName="1.0" > |
||||
|
||||
<uses-sdk |
||||
android:minSdkVersion="19" |
||||
android:targetSdkVersion="27" /> |
||||
|
||||
</manifest> |
@ -0,0 +1,10 @@ |
||||
R_DEF: Internal format may change without notice |
||||
local |
||||
color black |
||||
color light_blue |
||||
color purple_700 |
||||
color white |
||||
drawable btn_style |
||||
layout layout_loading |
||||
string app_name |
||||
style TransparentDialog |
@ -0,0 +1,13 @@ |
||||
1<?xml version="1.0" encoding="utf-8"?> |
||||
2<manifest xmlns:android="http://schemas.android.com/apk/res/android" |
||||
3 package="cn.rongcloud.demo.common" |
||||
4 android:versionCode="1" |
||||
5 android:versionName="1.0" > |
||||
6 |
||||
7 <uses-sdk |
||||
8 android:minSdkVersion="19" |
||||
8-->D:\StudioProjects\UnionMedTV\common\src\main\AndroidManifest.xml |
||||
9 android:targetSdkVersion="27" /> |
||||
9-->D:\StudioProjects\UnionMedTV\common\src\main\AndroidManifest.xml |
||||
10 |
||||
11</manifest> |
@ -0,0 +1 @@ |
||||
[{"outputType":{"type":"MERGED_MANIFESTS"},"apkData":{"type":"MAIN","splits":[],"versionCode":1,"versionName":"1.0","enabled":true,"outputFile":"common-debug.aar","fullName":"debug","baseName":"debug"},"path":"..\\..\\library_manifest\\debug\\AndroidManifest.xml","properties":{"packageId":"cn.rongcloud.demo.common","split":""}}] |
@ -0,0 +1,5 @@ |
||||
<?xml version="1.0" encoding="utf-8"?> |
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"> |
||||
<corners android:radius="6dp" /> |
||||
<solid android:color="@color/light_blue" /> |
||||
</shape> |
@ -0,0 +1,13 @@ |
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" |
||||
android:layout_width="match_parent" |
||||
android:layout_height="match_parent"> |
||||
|
||||
<ProgressBar |
||||
style="@style/Theme.AppCompat.NoActionBar" |
||||
android:layout_width="wrap_content" |
||||
android:layout_height="wrap_content" |
||||
android:layout_centerInParent="true" |
||||
android:layout_gravity="center_horizontal" |
||||
android:indeterminateTint="@color/purple_700" /> |
||||
|
||||
</RelativeLayout> |
@ -0,0 +1,11 @@ |
||||
<?xml version="1.0" encoding="utf-8"?> |
||||
<resources> |
||||
<color name="black">#FF000000</color> |
||||
<color name="light_blue">#FF57B5F9</color> |
||||
<color name="purple_700">#FF3700B3</color> |
||||
<color name="white">#FFFFFFFF</color> |
||||
<string name="app_name">common</string> |
||||
<style name="TransparentDialog" parent="Theme.AppCompat.Dialog"> |
||||
<item name="android:windowBackground">@android:color/transparent</item> |
||||
</style> |
||||
</resources> |
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,37 @@ |
||||
-- Merging decision tree log --- |
||||
manifest |
||||
ADDED from D:\StudioProjects\UnionMedTV\common\src\main\AndroidManifest.xml:2:1-5:12 |
||||
INJECTED from D:\StudioProjects\UnionMedTV\common\src\main\AndroidManifest.xml:2:1-5:12 |
||||
INJECTED from D:\StudioProjects\UnionMedTV\common\src\main\AndroidManifest.xml:2:1-5:12 |
||||
INJECTED from D:\StudioProjects\UnionMedTV\common\src\main\AndroidManifest.xml:2:1-5:12 |
||||
INJECTED from D:\StudioProjects\UnionMedTV\common\src\main\AndroidManifest.xml:2:1-5:12 |
||||
INJECTED from D:\StudioProjects\UnionMedTV\common\src\main\AndroidManifest.xml:2:1-5:12 |
||||
INJECTED from D:\StudioProjects\UnionMedTV\common\src\main\AndroidManifest.xml:2:1-5:12 |
||||
package |
||||
ADDED from D:\StudioProjects\UnionMedTV\common\src\main\AndroidManifest.xml:2:11-45 |
||||
INJECTED from D:\StudioProjects\UnionMedTV\common\src\main\AndroidManifest.xml |
||||
INJECTED from D:\StudioProjects\UnionMedTV\common\src\main\AndroidManifest.xml |
||||
android:versionName |
||||
INJECTED from D:\StudioProjects\UnionMedTV\common\src\main\AndroidManifest.xml |
||||
ADDED from D:\StudioProjects\UnionMedTV\common\src\main\AndroidManifest.xml:2:1-5:12 |
||||
INJECTED from D:\StudioProjects\UnionMedTV\common\src\main\AndroidManifest.xml |
||||
xmlns:android |
||||
ADDED from D:\StudioProjects\UnionMedTV\common\src\main\AndroidManifest.xml:2:1-5:12 |
||||
android:versionCode |
||||
INJECTED from D:\StudioProjects\UnionMedTV\common\src\main\AndroidManifest.xml |
||||
ADDED from D:\StudioProjects\UnionMedTV\common\src\main\AndroidManifest.xml:2:1-5:12 |
||||
INJECTED from D:\StudioProjects\UnionMedTV\common\src\main\AndroidManifest.xml |
||||
uses-sdk |
||||
INJECTED from D:\StudioProjects\UnionMedTV\common\src\main\AndroidManifest.xml reason: use-sdk injection requested |
||||
INJECTED from D:\StudioProjects\UnionMedTV\common\src\main\AndroidManifest.xml |
||||
INJECTED from D:\StudioProjects\UnionMedTV\common\src\main\AndroidManifest.xml |
||||
INJECTED from D:\StudioProjects\UnionMedTV\common\src\main\AndroidManifest.xml |
||||
INJECTED from D:\StudioProjects\UnionMedTV\common\src\main\AndroidManifest.xml |
||||
android:targetSdkVersion |
||||
INJECTED from D:\StudioProjects\UnionMedTV\common\src\main\AndroidManifest.xml |
||||
ADDED from D:\StudioProjects\UnionMedTV\common\src\main\AndroidManifest.xml |
||||
INJECTED from D:\StudioProjects\UnionMedTV\common\src\main\AndroidManifest.xml |
||||
android:minSdkVersion |
||||
INJECTED from D:\StudioProjects\UnionMedTV\common\src\main\AndroidManifest.xml |
||||
ADDED from D:\StudioProjects\UnionMedTV\common\src\main\AndroidManifest.xml |
||||
INJECTED from D:\StudioProjects\UnionMedTV\common\src\main\AndroidManifest.xml |
@ -0,0 +1,21 @@ |
||||
# Add project specific ProGuard rules here. |
||||
# You can control the set of applied configuration files using the |
||||
# proguardFiles setting in build.gradle. |
||||
# |
||||
# For more details, see |
||||
# http://developer.android.com/guide/developing/tools/proguard.html |
||||
|
||||
# If your project uses WebView with JS, uncomment the following |
||||
# and specify the fully qualified class name to the JavaScript interface |
||||
# class: |
||||
#-keepclassmembers class fqcn.of.javascript.interface.for.webview { |
||||
# public *; |
||||
#} |
||||
|
||||
# Uncomment this to preserve the line number information for |
||||
# debugging stack traces. |
||||
#-keepattributes SourceFile,LineNumberTable |
||||
|
||||
# If you keep the line number information, uncomment this to |
||||
# hide the original source file name. |
||||
#-renamesourcefileattribute SourceFile |
@ -0,0 +1,5 @@ |
||||
<?xml version="1.0" encoding="utf-8"?> |
||||
<manifest package="cn.rongcloud.demo.common"> |
||||
|
||||
|
||||
</manifest> |
@ -0,0 +1,127 @@ |
||||
package cn.rongcloud.demo.common; |
||||
|
||||
import org.json.JSONObject; |
||||
|
||||
import java.io.ByteArrayOutputStream; |
||||
import java.io.IOException; |
||||
import java.io.InputStream; |
||||
import java.io.OutputStream; |
||||
import java.net.HttpURLConnection; |
||||
import java.net.URL; |
||||
import java.nio.charset.StandardCharsets; |
||||
import java.security.MessageDigest; |
||||
import java.security.NoSuchAlgorithmException; |
||||
import java.util.Random; |
||||
|
||||
public class MockAppServer { |
||||
|
||||
private static final String TOKEN_SERVER = "https://api-cn.ronghub.com"; |
||||
|
||||
public static void getToken(final String appKey, final String appSecret, final String userId, final GetTokenCallback callback) { |
||||
new Thread(new Runnable() { |
||||
@Override |
||||
public void run() { |
||||
long timestamp = System.currentTimeMillis(); |
||||
int nonce = new Random().nextInt(9999) + 10000; |
||||
String signature = sha1(appSecret + nonce + timestamp); |
||||
|
||||
InputStream is = null; |
||||
OutputStream out = null; |
||||
ByteArrayOutputStream message = null; |
||||
try { |
||||
HttpURLConnection conn = (HttpURLConnection) new URL(TOKEN_SERVER + "/user/getToken.json").openConnection(); |
||||
conn.setRequestMethod("POST"); |
||||
conn.setReadTimeout(5000); |
||||
conn.setConnectTimeout(5000); |
||||
conn.setDoOutput(true); |
||||
conn.setDoInput(true); |
||||
conn.setUseCaches(false); |
||||
conn.addRequestProperty("Content-Type", "application/x-www-form-urlencoded"); |
||||
conn.addRequestProperty("Timestamp", String.valueOf(timestamp)); |
||||
conn.addRequestProperty("Nonce", String.valueOf(nonce)); |
||||
conn.addRequestProperty("Signature", signature); |
||||
conn.addRequestProperty("App-Key", appKey); |
||||
|
||||
String data = "userId=" + userId; |
||||
out = conn.getOutputStream(); |
||||
out.write(data.getBytes()); |
||||
out.flush(); |
||||
if (conn.getResponseCode() == 200) { |
||||
is = conn.getInputStream(); |
||||
message = new ByteArrayOutputStream(); |
||||
int len = 0; |
||||
byte[] buffer = new byte[1024]; |
||||
while ((len = is.read(buffer)) != -1) { |
||||
message.write(buffer, 0, len); |
||||
} |
||||
|
||||
String msg = new String(message.toByteArray()); |
||||
JSONObject jsonObject = new JSONObject(msg); |
||||
if (jsonObject.optInt("code") == 200) { |
||||
callback.onGetTokenSuccess(jsonObject.optString("token")); |
||||
} else { |
||||
callback.onGetTokenFailed("code = " + jsonObject.optInt("code")); |
||||
} |
||||
} |
||||
} catch (Exception e) { |
||||
e.printStackTrace(); |
||||
callback.onGetTokenFailed(e.getMessage()); |
||||
} finally { |
||||
if (null != is) { |
||||
try { |
||||
is.close(); |
||||
} catch (IOException ignored) { |
||||
} |
||||
} |
||||
|
||||
if (null != out) { |
||||
try { |
||||
out.close(); |
||||
} catch (IOException ignored) { |
||||
} |
||||
} |
||||
|
||||
if (null != message) { |
||||
try { |
||||
message.close(); |
||||
} catch (IOException ignored) { |
||||
} |
||||
} |
||||
} |
||||
} |
||||
}).start(); |
||||
} |
||||
|
||||
private static String convertToHex(byte[] data) { |
||||
StringBuilder buf = new StringBuilder(); |
||||
for (byte b : data) { |
||||
int halfByte = (b >>> 4) & 0x0F; |
||||
int twoHalfs = 0; |
||||
do { |
||||
buf.append(halfByte <= 9 ? (char) ('0' + halfByte) : (char) ('a' + halfByte - 10)); |
||||
halfByte = b & 0x0F; |
||||
} while (twoHalfs++ < 1); |
||||
} |
||||
return buf.toString(); |
||||
} |
||||
|
||||
private static String sha1(String text) { |
||||
MessageDigest md; |
||||
try { |
||||
md = MessageDigest.getInstance("SHA-1"); |
||||
} catch (NoSuchAlgorithmException e) { |
||||
e.printStackTrace(); |
||||
return null; |
||||
} |
||||
md.update(text.getBytes(StandardCharsets.ISO_8859_1), 0, text.length()); |
||||
byte[] sha1hash = md.digest(); |
||||
return convertToHex(sha1hash); |
||||
} |
||||
|
||||
public interface GetTokenCallback { |
||||
|
||||
void onGetTokenSuccess(String token); |
||||
|
||||
void onGetTokenFailed(String err); |
||||
} |
||||
} |
@ -0,0 +1,52 @@ |
||||
/* |
||||
* Copyright © 2021 RongCloud. All rights reserved. |
||||
*/ |
||||
|
||||
package cn.rongcloud.demo.common; |
||||
|
||||
import android.app.AlertDialog; |
||||
import android.content.Context; |
||||
import android.graphics.drawable.ColorDrawable; |
||||
import android.os.SystemClock; |
||||
|
||||
public class UiUtils { |
||||
|
||||
/// 两次点击按钮之间的点击间隔不能少于 1000 毫秒
|
||||
private static final int MIN_CLICK_DELAY_TIME = 1000; |
||||
|
||||
private static long lastClickTime; |
||||
private static AlertDialog waitingDialog; |
||||
|
||||
public static boolean isFastClick() { |
||||
return isFastClick(-1); |
||||
} |
||||
|
||||
public static boolean isFastClick(long during) { |
||||
boolean flag = false; |
||||
long curClickTime = SystemClock.elapsedRealtime(); |
||||
long tempDuring = during < 0 ? MIN_CLICK_DELAY_TIME : during; |
||||
if ((curClickTime - lastClickTime) >= tempDuring) { |
||||
flag = true; |
||||
} |
||||
lastClickTime = curClickTime; |
||||
return flag; |
||||
} |
||||
|
||||
public static void showWaitingDialog(Context context) { |
||||
if (waitingDialog == null) { |
||||
waitingDialog = new AlertDialog.Builder(context, R.style.TransparentDialog).create(); |
||||
waitingDialog.getWindow().setBackgroundDrawable(new ColorDrawable()); |
||||
waitingDialog.setCancelable(false); |
||||
waitingDialog.setCanceledOnTouchOutside(false); |
||||
} |
||||
waitingDialog.show(); |
||||
waitingDialog.setContentView(R.layout.layout_loading); |
||||
} |
||||
|
||||
public static void hideWaitingDialog() { |
||||
if (waitingDialog != null && waitingDialog.isShowing()) { |
||||
waitingDialog.dismiss(); |
||||
waitingDialog = null; |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,5 @@ |
||||
<?xml version="1.0" encoding="utf-8"?> |
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"> |
||||
<corners android:radius="6dp" /> |
||||
<solid android:color="@color/light_blue" /> |
||||
</shape> |
@ -0,0 +1,13 @@ |
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" |
||||
android:layout_width="match_parent" |
||||
android:layout_height="match_parent"> |
||||
|
||||
<ProgressBar |
||||
style="@style/Theme.AppCompat.NoActionBar" |
||||
android:layout_width="wrap_content" |
||||
android:layout_height="wrap_content" |
||||
android:layout_centerInParent="true" |
||||
android:layout_gravity="center_horizontal" |
||||
android:indeterminateTint="@color/purple_700" /> |
||||
|
||||
</RelativeLayout> |
@ -0,0 +1,7 @@ |
||||
<?xml version="1.0" encoding="utf-8"?> |
||||
<resources> |
||||
<color name="black">#FF000000</color> |
||||
<color name="white">#FFFFFFFF</color> |
||||
<color name="light_blue">#FF57B5F9</color> |
||||
<color name="purple_700">#FF3700B3</color> |
||||
</resources> |
@ -0,0 +1,3 @@ |
||||
<resources> |
||||
<string name="app_name">common</string> |
||||
</resources> |
@ -0,0 +1,6 @@ |
||||
<resources> |
||||
|
||||
<style name="TransparentDialog" parent="Theme.AppCompat.Dialog"> |
||||
<item name="android:windowBackground">@android:color/transparent</item> |
||||
</style> |
||||
</resources> |
@ -0,0 +1,75 @@ |
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android" |
||||
xmlns:tools="http://schemas.android.com/tools" |
||||
package="io.rong.libcore"> |
||||
|
||||
<!-- 保存图片,拍照等 --> |
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> |
||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> |
||||
<!-- 网络 --> |
||||
<uses-permission android:name="android.permission.INTERNET" /> |
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> |
||||
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> |
||||
<!-- 消息通道保活 --> |
||||
<uses-permission android:name="android.permission.WAKE_LOCK" /> |
||||
<!-- 定位,如果您需要定位相关的功能,可以打开以下注释 --> |
||||
<!-- <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> --> |
||||
|
||||
<uses-permission android:name="${applicationId}.permission.RONG_ACCESS_RECEIVER" /> |
||||
|
||||
<!--融云自定义接收广播权限,用于广播接收--> |
||||
<permission |
||||
android:name="${applicationId}.permission.RONG_ACCESS_RECEIVER" |
||||
android:protectionLevel="signature" /> |
||||
|
||||
<application> |
||||
<service |
||||
android:name="io.rong.imlib.ipc.RongService" |
||||
android:process=":ipc" /> |
||||
|
||||
<receiver android:name="io.rong.imlib.ConnectChangeReceiver" /> |
||||
|
||||
<receiver |
||||
android:name="io.rong.imlib.HeartbeatReceiver" |
||||
android:process=":ipc" /> |
||||
|
||||
<!--必选: SDK 核心功能--> |
||||
<service |
||||
android:name="io.rong.push.rongpush.PushService" |
||||
android:exported="true" |
||||
android:permission="android.permission.BIND_JOB_SERVICE" |
||||
android:process="io.rong.push" /> |
||||
|
||||
<!-- push 相关事件接收器 --> |
||||
<receiver |
||||
android:name="io.rong.push.rongpush.PushReceiver" |
||||
android:exported="true" |
||||
android:process="io.rong.push"> <!-- 此处进程可以改名,名称需要和PushService所在进程统一 --> |
||||
<!-- 心跳事件和网络切换事件监听,必须 --> |
||||
<intent-filter tools:node="removeAll"> |
||||
<action android:name="io.rong.push.intent.action.HEART_BEAT" /> |
||||
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> |
||||
</intent-filter> |
||||
|
||||
<!-- 部分用户事件监听, 用来提高推送拉活率; 可移除 --> |
||||
<intent-filter tools:node="removeAll"> |
||||
<action android:name="android.intent.action.USER_PRESENT" /> |
||||
<action android:name="android.intent.action.ACTION_POWER_CONNECTED" /> |
||||
<action android:name="android.intent.action.ACTION_POWER_DISCONNECTED" /> |
||||
</intent-filter> |
||||
</receiver> |
||||
|
||||
<activity |
||||
android:name="io.rong.push.notification.RongBridgeActivity" |
||||
android:enabled="true" |
||||
android:exported="true" |
||||
android:launchMode="singleInstance" |
||||
android:theme="@android:style/Theme.Translucent.NoTitleBar"> |
||||
<intent-filter> |
||||
<action android:name="android.intent.action.VIEW"/> |
||||
<action android:name="io.rong.push.notification.RongBridgeActivity"/> |
||||
<category android:name="android.intent.category.DEFAULT" /> |
||||
</intent-filter> |
||||
</activity> |
||||
</application> |
||||
|
||||
</manifest> |
@ -0,0 +1,24 @@ |
||||
apply plugin: 'com.android.library' |
||||
|
||||
android { |
||||
compileSdkVersion 31 |
||||
|
||||
defaultConfig { |
||||
minSdkVersion 19 |
||||
targetSdkVersion 31 |
||||
versionName "5.2.1.55" |
||||
} |
||||
|
||||
sourceSets { |
||||
main { |
||||
manifest.srcFile 'AndroidManifest.xml' |
||||
res.srcDirs = ['res'] |
||||
jniLibs.srcDirs = ['libs'] |
||||
} |
||||
} |
||||
} |
||||
|
||||
dependencies { |
||||
api fileTree(dir: 'libs', include: ['*.jar','*.aar']) |
||||
api 'com.google.code.gson:gson:2.8.6' |
||||
} |
@ -0,0 +1 @@ |
||||
o/classes |
Binary file not shown.
@ -0,0 +1,18 @@ |
||||
/** |
||||
* Automatically generated file. DO NOT MODIFY |
||||
*/ |
||||
package io.rong.libcore; |
||||
|
||||
public final class BuildConfig { |
||||
public static final boolean DEBUG = Boolean.parseBoolean("true"); |
||||
public static final String LIBRARY_PACKAGE_NAME = "io.rong.libcore"; |
||||
/** |
||||
* @deprecated APPLICATION_ID is misleading in libraries. For the library package name use LIBRARY_PACKAGE_NAME |
||||
*/ |
||||
@Deprecated |
||||
public static final String APPLICATION_ID = "io.rong.libcore"; |
||||
public static final String BUILD_TYPE = "debug"; |
||||
public static final String FLAVOR = ""; |
||||
public static final int VERSION_CODE = -1; |
||||
public static final String VERSION_NAME = "5.2.1.55"; |
||||
} |
@ -0,0 +1,81 @@ |
||||
<?xml version="1.0" encoding="utf-8"?> |
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android" |
||||
xmlns:tools="http://schemas.android.com/tools" |
||||
package="io.rong.libcore" |
||||
android:versionName="5.2.1.55" > |
||||
|
||||
<uses-sdk |
||||
android:minSdkVersion="19" |
||||
android:targetSdkVersion="31" /> |
||||
|
||||
<!-- 保存图片,拍照等 --> |
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> |
||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> |
||||
<!-- 网络 --> |
||||
<uses-permission android:name="android.permission.INTERNET" /> |
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> |
||||
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> |
||||
<!-- 消息通道保活 --> |
||||
<uses-permission android:name="android.permission.WAKE_LOCK" /> |
||||
<!-- 定位,如果您需要定位相关的功能,可以打开以下注释 --> |
||||
<!-- <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> --> |
||||
|
||||
<uses-permission android:name="dollar_openBracket_applicationId_closeBracket.permission.RONG_ACCESS_RECEIVER" /> |
||||
|
||||
<!-- 融云自定义接收广播权限,用于广播接收 --> |
||||
<permission |
||||
android:name="dollar_openBracket_applicationId_closeBracket.permission.RONG_ACCESS_RECEIVER" |
||||
android:protectionLevel="signature" /> |
||||
|
||||
<application> |
||||
<service |
||||
android:name="io.rong.imlib.ipc.RongService" |
||||
android:process=":ipc" /> |
||||
|
||||
<receiver android:name="io.rong.imlib.ConnectChangeReceiver" /> |
||||
<receiver |
||||
android:name="io.rong.imlib.HeartbeatReceiver" |
||||
android:process=":ipc" /> |
||||
|
||||
<!-- 必选: SDK 核心功能 --> |
||||
<service |
||||
android:name="io.rong.push.rongpush.PushService" |
||||
android:exported="true" |
||||
android:permission="android.permission.BIND_JOB_SERVICE" |
||||
android:process="io.rong.push" /> |
||||
|
||||
<!-- push 相关事件接收器 --> |
||||
<receiver |
||||
android:name="io.rong.push.rongpush.PushReceiver" |
||||
android:exported="true" |
||||
android:process="io.rong.push" > <!-- 此处进程可以改名,名称需要和PushService所在进程统一 --> |
||||
<!-- 心跳事件和网络切换事件监听,必须 --> |
||||
<intent-filter tools:node="removeAll" > |
||||
<action android:name="io.rong.push.intent.action.HEART_BEAT" /> |
||||
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> |
||||
</intent-filter> |
||||
|
||||
<!-- 部分用户事件监听, 用来提高推送拉活率; 可移除 --> |
||||
<intent-filter tools:node="removeAll" > |
||||
<action android:name="android.intent.action.USER_PRESENT" /> |
||||
<action android:name="android.intent.action.ACTION_POWER_CONNECTED" /> |
||||
<action android:name="android.intent.action.ACTION_POWER_DISCONNECTED" /> |
||||
</intent-filter> |
||||
</receiver> |
||||
|
||||
<activity |
||||
android:name="io.rong.push.notification.RongBridgeActivity" |
||||
android:enabled="true" |
||||
android:exported="true" |
||||
android:launchMode="singleInstance" |
||||
android:theme="@android:style/Theme.Translucent.NoTitleBar" > |
||||
<intent-filter> |
||||
<action android:name="android.intent.action.VIEW" /> |
||||
<action android:name="io.rong.push.notification.RongBridgeActivity" /> |
||||
|
||||
<category android:name="android.intent.category.DEFAULT" /> |
||||
</intent-filter> |
||||
</activity> |
||||
</application> |
||||
|
||||
</manifest> |
@ -0,0 +1 @@ |
||||
[{"outputType":{"type":"AAPT_FRIENDLY_MERGED_MANIFESTS"},"apkData":{"type":"MAIN","splits":[],"versionCode":-1,"versionName":"5.2.1.55","enabled":true,"outputFile":"imlib-debug.aar","fullName":"debug","baseName":"debug"},"path":"AndroidManifest.xml","properties":{"packageId":"io.rong.libcore","split":""}}] |
@ -0,0 +1 @@ |
||||
{} |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,2 @@ |
||||
<?xml version="1.0" encoding="utf-8"?> |
||||
<merger version="3"><dataSet config="main" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="D:\StudioProjects\UnionMedTV\imlib\libs"><file name="arm64-v8a/libRongIMLib.so" path="D:\StudioProjects\UnionMedTV\imlib\libs\arm64-v8a\libRongIMLib.so"/><file name="arm64-v8a/libsqlite.so" path="D:\StudioProjects\UnionMedTV\imlib\libs\arm64-v8a\libsqlite.so"/><file name="armeabi-v7a/libRongIMLib.so" path="D:\StudioProjects\UnionMedTV\imlib\libs\armeabi-v7a\libRongIMLib.so"/><file name="armeabi-v7a/libsqlite.so" path="D:\StudioProjects\UnionMedTV\imlib\libs\armeabi-v7a\libsqlite.so"/><file name="rong_chatroom_5.2.1.55.aar" path="D:\StudioProjects\UnionMedTV\imlib\libs\rong_chatroom_5.2.1.55.aar"/><file name="rong_customservice_5.2.1.55.aar" path="D:\StudioProjects\UnionMedTV\imlib\libs\rong_customservice_5.2.1.55.aar"/><file name="rong_discussion_5.2.1.55.aar" path="D:\StudioProjects\UnionMedTV\imlib\libs\rong_discussion_5.2.1.55.aar"/><file name="rong_imlibcore_5.2.1.55.jar" path="D:\StudioProjects\UnionMedTV\imlib\libs\rong_imlibcore_5.2.1.55.jar"/><file name="rong_imlib_5.2.1.55.jar" path="D:\StudioProjects\UnionMedTV\imlib\libs\rong_imlib_5.2.1.55.jar"/><file name="rong_location_5.2.1.55.aar" path="D:\StudioProjects\UnionMedTV\imlib\libs\rong_location_5.2.1.55.aar"/><file name="rong_publicservice_5.2.1.55.aar" path="D:\StudioProjects\UnionMedTV\imlib\libs\rong_publicservice_5.2.1.55.aar"/><file name="x86/libRongIMLib.so" path="D:\StudioProjects\UnionMedTV\imlib\libs\x86\libRongIMLib.so"/><file name="x86/libsqlite.so" path="D:\StudioProjects\UnionMedTV\imlib\libs\x86\libsqlite.so"/><file name="x86_64/libRongIMLib.so" path="D:\StudioProjects\UnionMedTV\imlib\libs\x86_64\libRongIMLib.so"/><file name="x86_64/libsqlite.so" path="D:\StudioProjects\UnionMedTV\imlib\libs\x86_64\libsqlite.so"/></source></dataSet><dataSet config="debug" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="D:\StudioProjects\UnionMedTV\imlib\src\debug\jniLibs"/></dataSet></merger> |
@ -0,0 +1,2 @@ |
||||
<?xml version="1.0" encoding="utf-8"?> |
||||
<merger version="3"><dataSet config="main" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="D:\StudioProjects\UnionMedTV\imlib\src\main\shaders"/></dataSet><dataSet config="debug" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="D:\StudioProjects\UnionMedTV\imlib\src\debug\shaders"/></dataSet></merger> |
@ -0,0 +1,2 @@ |
||||
<?xml version="1.0" encoding="utf-8"?> |
||||
<merger version="3"><dataSet config="main" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="D:\StudioProjects\UnionMedTV\imlib\src\main\assets"/><source path="D:\StudioProjects\UnionMedTV\imlib\build\intermediates\shader_assets\debug\compileDebugShaders\out"/></dataSet><dataSet config="debug" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="D:\StudioProjects\UnionMedTV\imlib\src\debug\assets"/></dataSet></merger> |
@ -0,0 +1 @@ |
||||
#Thu Jul 20 17:08:15 CST 2023 |
@ -0,0 +1,10 @@ |
||||
<?xml version="1.0" encoding="utf-8"?> |
||||
<resources> |
||||
<string name="rc_init_failed">فشل الاتصال بخدمة العميل</string> |
||||
<string name="rc_location_sharing_ended"> تم مشاركة الموقع </string> |
||||
<string name="rc_notification_channel_name">رسالة جديدة</string> |
||||
<string name="rc_notification_new_msg">رسائل %2$d أرسل %1$d</string> |
||||
<string name="rc_notification_new_plural_msg"> رسائل %2$d جهات اتصال %1$d </string> |
||||
<string name="rc_notification_ticker_text">لقد تلقيت رسالة جديدة</string> |
||||
<string name="rc_quit_custom_service">تم ترك خدمة العميل </string> |
||||
</resources> |
@ -0,0 +1,32 @@ |
||||
<?xml version="1.0" encoding="utf-8"?> |
||||
<resources> |
||||
<bool name="rc_extension_history">true</bool> |
||||
<bool name="rc_q_storage_mode_enable">true</bool> |
||||
<bool name="rc_secure_shared_preferences">false</bool> |
||||
<bool name="rc_typing_status">false</bool> |
||||
<integer name="rc_disappear_interval">6000</integer> |
||||
<integer name="rc_image_quality">85</integer> |
||||
<integer name="rc_image_size">1080</integer> |
||||
<integer name="rc_location_thumb_height">240</integer> |
||||
<integer name="rc_location_thumb_quality">70</integer> |
||||
<integer name="rc_location_thumb_width">408</integer> |
||||
<integer name="rc_max_original_image_size">200</integer> |
||||
<integer name="rc_resume_file_transfer_size_each_slice">20971520</integer> |
||||
<integer name="rc_sight_compress_height">960</integer> |
||||
<integer name="rc_sight_compress_width">544</integer> |
||||
<integer name="rc_thumb_compress_min_size">100</integer> |
||||
<integer name="rc_thumb_compress_size">240</integer> |
||||
<integer name="rc_thumb_quality">30</integer> |
||||
<string name="push_heartbeat_timer">240000</string> |
||||
<string name="rc_heartbeat_acquire_time">1000</string> |
||||
<string name="rc_heartbeat_timer">150000</string> |
||||
<string name="rc_init_failed">连接客服失败</string> |
||||
<string name="rc_location_sharing_ended">位置共享已结束</string> |
||||
<string name="rc_media_message_default_save_path">/RongCloud/Media/</string> |
||||
<string name="rc_notification_channel_name">新消息</string> |
||||
<string name="rc_notification_new_msg">%1$s发来了%2$d条消息</string> |
||||
<string name="rc_notification_new_plural_msg">%1$d个联系人发来了%2$d条消息</string> |
||||
<string name="rc_notification_ticker_text">你收到了一条新消息</string> |
||||
<string name="rc_quit_custom_service">客服已结束</string> |
||||
<string name="rc_receive_location_share_msg">收到一条位置共享消息</string> |
||||
</resources> |
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,81 @@ |
||||
<?xml version="1.0" encoding="utf-8"?> |
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android" |
||||
xmlns:tools="http://schemas.android.com/tools" |
||||
package="io.rong.libcore" |
||||
android:versionName="5.2.1.55" > |
||||
|
||||
<uses-sdk |
||||
android:minSdkVersion="19" |
||||
android:targetSdkVersion="31" /> |
||||
|
||||
<!-- 保存图片,拍照等 --> |
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> |
||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> |
||||
<!-- 网络 --> |
||||
<uses-permission android:name="android.permission.INTERNET" /> |
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> |
||||
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> |
||||
<!-- 消息通道保活 --> |
||||
<uses-permission android:name="android.permission.WAKE_LOCK" /> |
||||
<!-- 定位,如果您需要定位相关的功能,可以打开以下注释 --> |
||||
<!-- <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> --> |
||||
|
||||
<uses-permission android:name="${applicationId}.permission.RONG_ACCESS_RECEIVER" /> |
||||
|
||||
<!-- 融云自定义接收广播权限,用于广播接收 --> |
||||
<permission |
||||
android:name="${applicationId}.permission.RONG_ACCESS_RECEIVER" |
||||
android:protectionLevel="signature" /> |
||||
|
||||
<application> |
||||
<service |
||||
android:name="io.rong.imlib.ipc.RongService" |
||||
android:process=":ipc" /> |
||||
|
||||
<receiver android:name="io.rong.imlib.ConnectChangeReceiver" /> |
||||
<receiver |
||||
android:name="io.rong.imlib.HeartbeatReceiver" |
||||
android:process=":ipc" /> |
||||
|
||||
<!-- 必选: SDK 核心功能 --> |
||||
<service |
||||
android:name="io.rong.push.rongpush.PushService" |
||||
android:exported="true" |
||||
android:permission="android.permission.BIND_JOB_SERVICE" |
||||
android:process="io.rong.push" /> |
||||
|
||||
<!-- push 相关事件接收器 --> |
||||
<receiver |
||||
android:name="io.rong.push.rongpush.PushReceiver" |
||||
android:exported="true" |
||||
android:process="io.rong.push" > <!-- 此处进程可以改名,名称需要和PushService所在进程统一 --> |
||||
<!-- 心跳事件和网络切换事件监听,必须 --> |
||||
<intent-filter tools:node="removeAll" > |
||||
<action android:name="io.rong.push.intent.action.HEART_BEAT" /> |
||||
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> |
||||
</intent-filter> |
||||
|
||||
<!-- 部分用户事件监听, 用来提高推送拉活率; 可移除 --> |
||||
<intent-filter tools:node="removeAll" > |
||||
<action android:name="android.intent.action.USER_PRESENT" /> |
||||
<action android:name="android.intent.action.ACTION_POWER_CONNECTED" /> |
||||
<action android:name="android.intent.action.ACTION_POWER_DISCONNECTED" /> |
||||
</intent-filter> |
||||
</receiver> |
||||
|
||||
<activity |
||||
android:name="io.rong.push.notification.RongBridgeActivity" |
||||
android:enabled="true" |
||||
android:exported="true" |
||||
android:launchMode="singleInstance" |
||||
android:theme="@android:style/Theme.Translucent.NoTitleBar" > |
||||
<intent-filter> |
||||
<action android:name="android.intent.action.VIEW" /> |
||||
<action android:name="io.rong.push.notification.RongBridgeActivity" /> |
||||
|
||||
<category android:name="android.intent.category.DEFAULT" /> |
||||
</intent-filter> |
||||
</activity> |
||||
</application> |
||||
|
||||
</manifest> |
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue