第一次提交

This commit is contained in:
被淹死的鱼
2026-03-11 18:26:29 +08:00
commit cd3b53759e
8532 changed files with 522078 additions and 0 deletions

1
share/.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
/build

58
share/build.gradle Normal file
View File

@@ -0,0 +1,58 @@
apply plugin: 'com.android.library'
android {
compileSdkVersion 28
defaultConfig {
minSdkVersion 16
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
}
signingConfigs {
debug {
storeFile file('malesocial.jks')
storePassword "Chenqihong3"
keyAlias "male social"
keyPassword "Chenqihong3"
}
}
buildTypes {
release {
minifyEnabled false
signingConfig signingConfigs.debug
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
debug {
minifyEnabled false
signingConfig signingConfigs.debug
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
lintOptions {
abortOnError false
}
}
dependencies {
api fileTree(dir: 'libs', include: ['*.jar'])
implementation 'androidx.appcompat:appcompat:1.0.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0'
}

BIN
share/libs/SharePlugin.jar Normal file

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.

BIN
share/malesocial.jks Normal file

Binary file not shown.

21
share/proguard-rules.pro vendored Normal file
View File

@@ -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

View File

@@ -0,0 +1,26 @@
package com.xinlingwu.share;
import android.content.Context;
import android.support.test.InstrumentationRegistry;
import android.support.test.runner.AndroidJUnit4;
import org.junit.Test;
import org.junit.runner.RunWith;
import static org.junit.Assert.*;
/**
* Instrumented test, which will execute on an Android device.
*
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
*/
@RunWith(AndroidJUnit4.class)
public class ExampleInstrumentedTest {
@Test
public void useAppContext() {
// Context of the app under test.
Context appContext = InstrumentationRegistry.getTargetContext();
assertEquals("com.xinlingwu.share.test", appContext.getPackageName());
}
}

View File

@@ -0,0 +1,46 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.xinlingwu.share">
<application>
<activity
android:name="com.umeng.qq.tencent.AuthActivity"
android:launchMode="singleTask"
android:noHistory="true">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="tencent1112299706" />
</intent-filter>
</activity>
<!-- <activity-->
<!-- android:name=".WBShareActivity"-->
<!-- android:configChanges="keyboardHidden|orientation"-->
<!-- android:screenOrientation="portrait">-->
<!-- <intent-filter>-->
<!-- <action android:name="com.sina.weibo.sdk.action.ACTION_SDK_REQ_ACTIVITY" />-->
<!-- <category android:name="android.intent.category.DEFAULT" />-->
<!-- </intent-filter>-->
<!-- </activity>-->
<activity
android:name="com.umeng.qq.tencent.AssistActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
<activity
android:name="com.umeng.socialize.editorpage.ShareActivity"
android:excludeFromRecents="true"
android:theme="@style/Theme.UMDefault" />
<meta-data
android:name="UMENG_APPKEY"
android:value="647408eca1a164591b258202"/>
</application>
</manifest>

View File

@@ -0,0 +1,217 @@
package com.xinlingwu.share;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import com.umeng.socialize.PlatformConfig;
import com.umeng.socialize.ShareAction;
import com.umeng.socialize.UMAuthListener;
import com.umeng.socialize.UMShareAPI;
import com.umeng.socialize.UMShareListener;
import com.umeng.socialize.bean.SHARE_MEDIA;
import com.umeng.socialize.media.UMImage;
import com.umeng.socialize.media.UMWeb;
import java.util.Map;
/**
* Created by abby on 2016/12/11.
*/
public class ShareManager {
public static final int TYPE_QQ = 0;
public static final int TYPE_WEIXIN = 1;
public static final int TYPE_WEIBO = 2;
public static final int TYPE_PENG = 3;
public static final int TYPE_KONG = 4;
private static ShareManager mInstance;
private iAuthStatus mStatus;
private iShareStatus mShareStatus;
private UMAuthListener mAuthListener = new UMAuthListener() {
@Override
public void onStart(SHARE_MEDIA share_media) {
}
@Override
public void onComplete(SHARE_MEDIA share_media, int i, Map<String, String> map) {
mStatus.success(map);
}
@Override
public void onError(SHARE_MEDIA share_media, int i, Throwable throwable) {
mStatus.error();
}
@Override
public void onCancel(SHARE_MEDIA share_media, int i) {
mStatus.cancel();
}
};
private UMShareListener mShareListener = new UMShareListener() {
@Override
public void onStart(SHARE_MEDIA share_media) {
}
@Override
public void onResult(SHARE_MEDIA share_media) {
if(null != mShareStatus) {
mShareStatus.success();
}
}
@Override
public void onError(SHARE_MEDIA share_media, Throwable throwable) {
if(null != mShareStatus) {
mShareStatus.error();
}
}
@Override
public void onCancel(SHARE_MEDIA share_media) {
if(null != mShareStatus) {
mShareStatus.cancel();
}
}
};
public interface iAuthStatus{
void success(Map<String, String> map);
void error();
void cancel();
}
public interface iShareStatus{
void success();
void error();
void cancel();
}
public static ShareManager getInstance(){
if(null == mInstance){
mInstance = new ShareManager();
}
return mInstance;
}
public void setShareStatus(iShareStatus status){
mShareStatus = status;
}
public void configWeixin(String id, String sec){
PlatformConfig.setWeixin(id, sec);
}
public void configWeibo(String id, String sec, String redirectUrl){
PlatformConfig.setSinaWeibo(id, sec, redirectUrl);
}
public void configQQ(String id, String sec){
PlatformConfig.setQQZone(id, sec);
}
public void verify(iAuthStatus status, Activity activity, int type){
mStatus = status;
UMShareAPI mShareApi = UMShareAPI.get(activity);
if(TYPE_QQ == type) {
mShareApi.getPlatformInfo(activity, SHARE_MEDIA.QQ, mAuthListener);
}else if(TYPE_WEIXIN == type){
mShareApi.getPlatformInfo(activity, SHARE_MEDIA.WEIXIN, mAuthListener);
}else if(TYPE_WEIBO == type){
mShareApi.getPlatformInfo(activity, SHARE_MEDIA.SINA, mAuthListener);
}
}
public void delete(Activity activity,UMAuthListener umAuthListener){
UMShareAPI mShareApi = UMShareAPI.get(activity);
mShareApi.deleteOauth(activity, SHARE_MEDIA.QQ, umAuthListener);
mShareApi.deleteOauth(activity, SHARE_MEDIA.WEIXIN, umAuthListener);
mShareApi.deleteOauth(activity, SHARE_MEDIA.SINA, umAuthListener);
}
public void onActivityResult(Context context, int requestCode, int resultCode, Intent data){
UMShareAPI.get(context).onActivityResult(requestCode, resultCode, data);
}
public boolean isInstalled(Activity activity, int type){
UMShareAPI mShareApi = UMShareAPI.get(activity);
if(type == TYPE_WEIXIN || type == TYPE_PENG) {
return mShareApi.isInstall(activity, SHARE_MEDIA.WEIXIN);
}else if(type == TYPE_WEIBO){
return mShareApi.isInstall(activity, SHARE_MEDIA.SINA);
}else{
return mShareApi.isInstall(activity, SHARE_MEDIA.QQ);
}
}
public void shareToPlatform(int type, String url, String imageUrl, String title, String description, Activity context){
UMWeb web = new UMWeb(url);
web.setThumb(new UMImage(context, imageUrl));
web.setTitle(title);
web.setDescription(description);
SHARE_MEDIA media = null;
switch (type){
case 1:
media = SHARE_MEDIA.WEIXIN;
break;
case 2:
media = SHARE_MEDIA.WEIXIN_CIRCLE;
break;
case 5:
media = SHARE_MEDIA.SINA;
break;
case 3:
media = SHARE_MEDIA.QQ;
break;
case 4:
media = SHARE_MEDIA.QZONE;
break;
}
if(null != media) {
new ShareAction(context).setPlatform(media).setCallback(mShareListener).withMedia(web).share();
}
}
public void shareToPlatformCallback(int type, String url, String imageUrl, String title, String description,
Activity context, UMShareListener listener){
UMWeb web = new UMWeb(url);
web.setThumb(new UMImage(context, imageUrl));
web.setTitle(title);
web.setDescription(description);
SHARE_MEDIA media = null;
switch (type){
case 1:
media = SHARE_MEDIA.WEIXIN;
break;
case 2:
media = SHARE_MEDIA.WEIXIN_CIRCLE;
break;
case 5:
media = SHARE_MEDIA.SINA;
break;
case 3:
media = SHARE_MEDIA.QQ;
break;
case 4:
media = SHARE_MEDIA.QZONE;
break;
}
if(null != media) {
new ShareAction(context).setPlatform(media).setCallback(listener).withMedia(web).share();
}
}
private ShareManager(){
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 500 B

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<shape android:shape="rectangle"
xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@android:color/transparent" />
<stroke android:width="1dp"
android:color="#ffffff"
/>
</shape>

View File

@@ -0,0 +1,124 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:tools="http://schemas.android.com/tools"
tools:viewBindingIgnore="true"
android:background="#D4E0E5">
<RelativeLayout
android:id="@+id/umeng_socialize_titlebar"
android:layout_width="match_parent"
android:layout_height="54dp"
android:background="#0086DC">
<TextView
android:id="@+id/umeng_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text=""
android:textColor="#ffffff"
android:textSize="18sp" />
<RelativeLayout
android:id="@+id/umeng_back"
android:layout_width="60dp"
android:layout_height="match_parent"
android:onClick="onCancel"
android:visibility="visible">
<ImageButton
android:layout_width="12dp"
android:layout_height="20dp"
android:layout_centerVertical="true"
android:background="@drawable/umeng_socialize_back_icon"
android:layout_marginLeft="15dp"
android:scaleType="center" />
</RelativeLayout>
<TextView
android:id="@+id/umeng_share_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerInParent="true"
android:layout_marginRight="10dp"
android:background="@drawable/umeng_socialize_btn_bg"
android:padding="4dp"
android:text="分享"
android:textColor="#ffffff" />
</RelativeLayout>
<RelativeLayout
android:id="@+id/umeng_socialize_follow"
android:layout_width="fill_parent"
android:layout_height="40dp"
android:layout_alignParentBottom="true"
android:background="#AAAAAA"
android:visibility="visible">
<CheckBox
android:id="@+id/umeng_socialize_follow_check"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_centerVertical="true"
android:layout_marginLeft="20dp"
android:checked="true"
android:visibility="gone" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="15dp"
android:layout_toRightOf="@id/umeng_socialize_follow_check"
android:text="关注官方微博"
android:textColor="#f8f8f8"
android:textSize="16sp"
android:visibility="gone" />
</RelativeLayout>
<!--<LinearLayout-->
<!--android:id="@+id/webView_container"-->
<!--android:layout_width="match_parent"-->
<!--android:layout_height="match_parent"-->
<!--android:layout_above="@id/umeng_socialize_follow"-->
<!--android:layout_below="@id/umeng_socialize_titlebar"-->
<!--android:orientation="horizontal"-->
<!--android:visibility="visible" />-->
<WebView
android:id="@+id/webView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#F2F5F6"
android:layout_above="@id/umeng_socialize_follow"
android:layout_below="@id/umeng_socialize_titlebar"
android:visibility="visible" />
<RelativeLayout
android:id="@+id/progress_bar_parent"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_below="@id/umeng_socialize_titlebar"
android:background="#F2F5F6" >
<LinearLayout
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_centerInParent="true"
android:orientation="horizontal">
<ProgressBar
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_margin="10dp" />
</LinearLayout>
</RelativeLayout>
</RelativeLayout>

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

View File

@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">UShareDemo</string>
<string name="facebook_app_id">1266254913438718</string>
<string name="umeng_update_content">版本号6.4.3\n1.修复了反馈中空指针的bug\n2.增加了微信分享小程序的功能\n3.解决了部分已知bug</string>
<string name="umeng_home_title">U-Share产品Demo</string>
<string name="umeng_home_update">新版更新内容</string>
<string name="umeng_share_title">分享</string>
<string name="umeng_auth_title">授权</string>
<string name="umeng_delauth_title">删除授权</string>
<string name="umeng_getinfo_title">获取用户信息</string>
<string name="umeng_check_title">自检工具</string>
<string name="umeng_menu_title">分享菜单模板</string>
<string name="umeng_check_sign">检查签名</string>
<string name="umeng_check_sina">检查新浪</string>
<string name="umeng_check_wx">检查微信</string>
<string name="umeng_check_alipay">检查支付宝</string>
<string name="umeng_check_qq">检查qq</string>
<string name="umeng_check_fb">检查facebook</string>
<string name="umeng_check_vk">vkontakte</string>
<string name="umeng_choose_style">选择分享类型</string>
<string name="umeng_sharebutton_copy">复制文本</string>
<string name="umeng_sharebutton_copyurl">复制连接</string>
</resources>

View File

@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?><resources>
<color name="umeng_socialize_comments_bg">#F4F4F4</color>
<color name="umeng_socialize_color_group">#2c3035</color>
<color name="umeng_socialize_list_item_textcolor">#333333</color>
<color name="umeng_socialize_list_item_bgcolor">#FFFFFF</color>
<color name="umeng_socialize_divider">#E6E6E6</color>
<color name="umeng_socialize_text_time">#999999</color>
<color name="umeng_socialize_text_title">#464f61</color>
<color name="umeng_socialize_text_friends_list">#959696</color>
<color name="umeng_socialize_text_share_content">#666666</color>
<color name="umeng_socialize_ucenter_bg">#EEEEEE</color>
<color name="umeng_socialize_text_ucenter">#595959</color>
<color name="umeng_socialize_edit_bg">#C4C4C4</color>
<color name="umeng_socialize_grid_divider_line">#F8F8F8</color>
<color name="umeng_socialize_web_bg">#F4F4F4</color>
<color name="umeng_socialize_shareactivity">#D4E0E5</color>
<color name="umeng_socialize_shareactivitydefault">#ffffff</color>
</resources>

View File

@@ -0,0 +1,58 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="alphabet_size">12dip</dimen>
<dimen name="umeng_socialize_pad_window_height">350dip</dimen>
<dimen name="umeng_socialize_pad_window_width">580dip</dimen>
<!-- 平台名称 -->
<string name="umeng_socialize_text_tencent_key">腾讯微博</string>
<string name="umeng_socialize_text_wenxin_fav">微信收藏</string>
<string name="umeng_socialize_text_sina_key">微博</string>
<string name="umeng_socialize_text_qq_key">QQ</string>
<string name="umeng_socialize_text_qq_zone_key">QQ空间</string>
<string name="umeng_socialize_text_renren_key">人人网</string>
<string name="umeng_socialize_text_douban_key">豆瓣</string>
<string name="umeng_socialize_text_weixin_key">微信</string>
<string name="umeng_socialize_text_weixin_circle_key">微信朋友圈</string>
<string name="umeng_socialize_text_weixin_fav_key">微信收藏</string>
<string name="umeng_socialize_text_add_custom_platform">请配置用户平台</string>
<string name="umeng_example_home_btn_plus">社交分享</string>
<string name="umeng_socialize_text_waitting_share">分享中&#8230;</string>
<string name="umeng_socialize_content_hint">说点啥&#8230;</string>
<string name="umeng_socialize_cancel_btn_str">取消</string>
<string name="umeng_socialize_send_btn_str">发送</string>
<string name="umeng_socialize_female"></string>
<string name="umeng_socialize_male"></string>
<string name="umeng_socialize_share">分享</string>
<string name="umeng_socialize_mail">邮件</string>
<string name="umeng_socialize_sms">短信</string>
<string name="umeng_socialize_sina">新浪</string>
<string name="umeng_socialize_text_yixin_key">易信</string>
<string name="umeng_socialize_text_yixincircle_key">易信朋友圈</string>
<string name="umeng_socialize_text_laiwangdynamic_key">点点虫动态</string>
<string name="umeng_socialize_text_evernote_key">印象笔记</string>
<string name="umeng_socialize_text_ydnote_key">有道云笔记</string>
<string name="umeng_socialize_text_facebook_key">Facebook</string>
<string name="umeng_socialize_text_facebookmessager_key">Facebook Messager</string>
<string name="umeng_socialize_text_twitter_key">Twitter</string>
<string name="umeng_socialize_text_instagram_key">Instagram</string>
<string name="umeng_socialize_text_pinterest_key">Pinterest</string>
<string name="umeng_socialize_text_pocket_key">Pocket</string>
<string name="umeng_socialize_text_linkedin_key">Linkedin</string>
<string name="umeng_socialize_text_foursquare_key">Foursquare</string>
<string name="umeng_socialize_text_whatsapp_key">WhatsApp</string>
<string name="umeng_socialize_text_line_key">LINE</string>
<string name="umeng_socialize_text_flickr_key">Flickr</string>
<string name="umeng_socialize_text_tumblr_key">Tumblr</string>
<string name="umeng_socialize_text_alipay_key">支付宝</string>
<string name="umeng_socialize_text_kakao_key">KakaoTalk</string>
<string name="umeng_socialize_text_googleplus_key">GooglePlus</string>
<string name="umeng_socialize_text_more_key">更多</string>
<string name="umeng_socialize_text_dingding_key">钉钉</string>
<string name="umeng_socialize_text_vkontakte_key">VKontakte</string>
<string name="umeng_socialize_text_dropbox_key">DropBox</string>
</resources>

View File

@@ -0,0 +1,82 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<style name="ACPLDialog">
<item name="android:windowFrame">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowContentOverlay">@null</item>
</style>
<style name="umeng_socialize_action_bar_itemlayout">
<item name="android:layout_height">fill_parent</item>
<item name="android:layout_width">fill_parent</item>
<item name="android:layout_weight">1</item>
<item name="android:paddingLeft">4dp</item>
<item name="android:paddingTop">4dp</item>
<item name="android:paddingRight">4dp</item>
<item name="android:gravity">center_vertical</item>
</style>
<style name="umeng_socialize_action_bar_item_im">
<item name="android:layout_width">25dp</item>
<item name="android:layout_height">25dp</item>
<item name="android:scaleType">fitCenter</item>
<item name="android:layout_centerVertical">true</item>
</style>
<style name="umeng_socialize_action_bar_item_tv">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">fill_parent</item>
<item name="android:layout_marginLeft">5dp</item>
<item name="android:text">999</item>
<item name="android:gravity">center</item>
<item name="android:textColor">#ffffff</item>
<item name="android:textSize">12sp</item>
<item name="android:textStyle">bold</item>
</style>
<style name="umeng_socialize_popup_dialog" parent="@android:style/Theme.Dialog">
<item name="android:windowFrame">@null</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowNoTitle">true</item>
<item name="android:background">@android:color/transparent</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:backgroundDimEnabled">true</item>
<item name="android:backgroundDimAmount">0.6</item>
</style>
<style name="Theme.UMDialog" parent="android:style/Theme.Dialog">
<item name="android:windowNoTitle">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
</style>
<style name="Theme.UMDefault" parent="android:style/Theme.NoTitleBar"></style>
<style name="umeng_socialize_divider">
<item name="android:layout_width">fill_parent</item>
<item name="android:layout_height">1dp</item>
<item name="android:background">@color/umeng_socialize_divider</item>
</style>
<style name="umeng_socialize_list_item">
<item name="android:layout_width">fill_parent</item>
<item name="android:layout_height">55dp</item>
<item name="android:background">@color/umeng_socialize_list_item_bgcolor</item>
<item name="android:paddingBottom">5dp</item>
<item name="android:paddingTop">5dp</item>
</style>
<style name="umeng_socialize_edit_padding">
<item name="android:layout_width">fill_parent</item>
<item name="android:layout_height">fill_parent</item>
<item name="android:background">@color/umeng_socialize_list_item_bgcolor</item>
<item name="android:layout_marginLeft">6dp</item>
<item name="android:layout_marginRight">6dp</item>
<item name="android:layout_marginTop">6dp</item>
<item name="android:layout_marginBottom">6dp</item>
</style>
</resources>

View File

@@ -0,0 +1,17 @@
package com.xinlingwu.share;
import org.junit.Test;
import static org.junit.Assert.*;
/**
* Example local unit test, which will execute on the development machine (host).
*
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
*/
public class ExampleUnitTest {
@Test
public void addition_isCorrect() {
assertEquals(4, 2 + 2);
}
}