Commit 3fc8a878c5a02ba333be2a1aa28857d6b456728a

Authored by 韩亚云
1 parent 7e24ab48

添加分享页面以及分享逻辑

module_xiaojiaSoundBox/src/main/AndroidManifest.xml
... ... @@ -17,7 +17,8 @@
17 17 <uses-permission android:name="android.permission.INTERNET" />
18 18  
19 19 <application>
20   - <activity android:name=".ui.activity.InvitFriendActivity"></activity>
  20 + <activity android:name=".ui.activity.ShareFriendActivity"/>
  21 + <activity android:name=".ui.activity.InvitFriendActivity" />
21 22 <activity android:name=".ui.activity.UserManagerActivity" />
22 23 <activity android:name=".ui.activity.ChangeDeviceNameActivity" />
23 24 <activity android:name=".ui.activity.DeviceDetailActivity" />
... ...
module_xiaojiaSoundBox/src/main/java/com/cnlive/strike/xiaojiaspeaker/frame/presenter/InvitFriendPresenter.java
... ... @@ -57,7 +57,7 @@ public class InvitFriendPresenter extends MvpBasePresenter&lt;InvitFriendView&gt; {
57 57 return;
58 58 }
59 59 getView().hideLoadingView();
60   - getView().initView(baseInfo.getData());
  60 + getView().setData(baseInfo.getData());
61 61 }
62 62 })
63 63 .setFailureCallback(new FailureCallback() {
... ...
module_xiaojiaSoundBox/src/main/java/com/cnlive/strike/xiaojiaspeaker/frame/view/InvitFriendView.java
... ... @@ -4,6 +4,7 @@ import android.app.Activity;
4 4 import android.graphics.Bitmap;
5 5 import android.net.Uri;
6 6 import android.support.v7.widget.LinearLayoutManager;
  7 +import android.text.TextUtils;
7 8 import android.view.View;
8 9  
9 10 import com.alibaba.android.arouter.launcher.ARouter;
... ... @@ -17,6 +18,7 @@ import com.cnlive.strike.xiaojiaspeaker.model.RoleInfo;
17 18 import com.cnlive.strike.xiaojiaspeaker.model.XiaoJiaQrcode;
18 19 import com.cnlive.strike.xiaojiaspeaker.netWork.bean.FamilyRoleBean;
19 20 import com.cnlive.strike.xiaojiaspeaker.netWork.bean.RoleNetBean;
  21 +import com.cnlive.strike.xiaojiaspeaker.ui.activity.ShareFriendActivity;
20 22 import com.cnlive.strike.xiaojiaspeaker.ui.adapter.SetRoleAdapter;
21 23 import com.cnlive.strike.xiaojiaspeaker.ui.fragment.InvitFriendFragment;
22 24 import com.cnlive.strike.xiaojiaspeaker.ui.widget.EditRoleDialog;
... ... @@ -36,6 +38,7 @@ public class InvitFriendView implements MvpView {
36 38 private InvitFriendFragment fragment;
37 39 private List<RoleInfo> roleInfoList;
38 40 private SetRoleAdapter setRoleAdapter;
  41 + private String encryptionContent;
39 42  
40 43 public InvitFriendView(InvitFriendFragment fragment) {
41 44 this.fragment = fragment;
... ... @@ -45,7 +48,17 @@ public class InvitFriendView implements MvpView {
45 48 return fragment == null ? null : fragment.getActivity();
46 49 }
47 50  
48   - public void initView(RoleNetBean roleNetBean) {
  51 + public void initView(){
  52 + fragment.binding.btnShare.setOnClickListener(v -> {
  53 + if(!TextUtils.isEmpty(encryptionContent)){
  54 + ShareFriendActivity.startActivity(fragment.getActivity(),"","",encryptionContent);
  55 + }else {
  56 + //提示跳转失败原因
  57 + }
  58 + });
  59 + }
  60 +
  61 + public void setData(RoleNetBean roleNetBean) {
49 62 roleInfoList = new ArrayList<>();
50 63 //整理数据
51 64 //获取选中的联系人
... ... @@ -102,7 +115,7 @@ public class InvitFriendView implements MvpView {
102 115 jsonObject.put("type", XiaoJiaConst.QRCODE_TYPE);
103 116  
104 117 String qrContent = jsonObject.toString();
105   - String encryptionContent = SimpleDES.ebotongEncrypto(qrContent, "cnliveIm");
  118 + encryptionContent = SimpleDES.ebotongEncrypto(qrContent, "cnliveIm");
106 119 encryptionContent = encryptionContent.replaceAll("\\\n", "");
107 120 QrService service = (QrService) ARouter.getInstance().navigation(QrService.class);
108 121 if (null == service) {
... ...
module_xiaojiaSoundBox/src/main/java/com/cnlive/strike/xiaojiaspeaker/ui/activity/ShareFriendActivity.java 0 → 100644
  1 + package com.cnlive.strike.xiaojiaspeaker.ui.activity;
  2 +
  3 +import android.Manifest;
  4 +import android.content.Context;
  5 +import android.content.Intent;
  6 +import android.content.SharedPreferences;
  7 +import android.graphics.Bitmap;
  8 +import android.support.v4.content.ContextCompat;
  9 +import android.support.v7.app.AppCompatActivity;
  10 +import android.os.Bundle;
  11 +import android.util.Base64;
  12 +import android.view.View;
  13 +import android.widget.ImageView;
  14 +import android.widget.RelativeLayout;
  15 +import android.widget.TextView;
  16 +
  17 +import com.alibaba.android.arouter.launcher.ARouter;
  18 +import com.cnlive.libs.base.arouter.QrService;
  19 +import com.cnlive.libs.base.util.SimpleDES;
  20 +import com.cnlive.libs.base.util.StatusBarUtil;
  21 +import com.cnlive.libs.base.util.StatusBarUtil2;
  22 +import com.cnlive.strike.application.GlideApp;
  23 +import com.cnlive.strike.xiaojiaspeaker.R;
  24 +import com.cnlive.strike.xiaojiaspeaker.util.DensityUtil;
  25 +import com.cnlive.strike.xiaojiaspeaker.util.lib_permisshelper.PermissionsListener;
  26 +import com.cnlive.strike.xiaojiaspeaker.util.lib_permisshelper.PermissionsUtils;
  27 +import com.qmuiteam.qmui.util.QMUIDrawableHelper;
  28 +import com.qmuiteam.qmui.widget.QMUITopBar;
  29 +
  30 +import org.json.JSONObject;
  31 +
  32 +import java.io.ByteArrayOutputStream;
  33 +
  34 + public class ShareFriendActivity extends AppCompatActivity {
  35 +
  36 + private QMUITopBar topBar;
  37 + private String iconUrl;
  38 + private String name,encryptionContent;
  39 + private RelativeLayout share_ry;
  40 + private ImageView img_icon,erweima;
  41 + private TextView nametx;
  42 + private PermissionsUtils mPermissionsUtils = new PermissionsUtils();
  43 +
  44 + public static void startActivity(Context context,String iconUrl,String name,String erWeiMaContent){
  45 + Intent intent = new Intent(context,ShareFriendActivity.class);
  46 + intent.putExtra("iconUrl",iconUrl);
  47 + intent.putExtra("name",name);
  48 + intent.putExtra("erWeiMaContent",erWeiMaContent);
  49 + context.startActivity(intent);
  50 + }
  51 +
  52 + @Override
  53 + protected void onCreate(Bundle savedInstanceState) {
  54 + super.onCreate(savedInstanceState);
  55 + setContentView(R.layout.activity_share_friend);
  56 + StatusBarUtil.setStatusBarWrite(this);
  57 + StatusBarUtil2.setColor(this, ContextCompat.getColor(this, R.color.white), 0);
  58 +
  59 + initView();
  60 + initData(getIntent());
  61 + }
  62 +
  63 + private void initView(){
  64 + topBar = findViewById(R.id.topbar);
  65 + share_ry = findViewById(R.id.share_ry);
  66 + img_icon = findViewById(R.id.img_icon);
  67 + nametx = findViewById(R.id.name);
  68 + erweima = findViewById(R.id.erweima);
  69 +
  70 + findViewById(R.id.share_btn).setOnClickListener(v -> getPermissionsWithTip());
  71 +
  72 + topBar.setTitle("");
  73 + //设置返回按钮
  74 + topBar.addLeftImageButton(R.drawable.icon_back, R.id.left_back).setOnClickListener(new View.OnClickListener() {
  75 + @Override
  76 + public void onClick(View view) {
  77 + finish();
  78 + }
  79 + });
  80 + }
  81 +
  82 + private void initData(Intent intent){
  83 + iconUrl = intent.getStringExtra("iconUrl");
  84 + name = intent.getStringExtra("name");
  85 +
  86 + GlideApp.with(this).load(iconUrl).into(img_icon);
  87 + nametx.setText(name);
  88 +
  89 + encryptionContent = intent.getStringExtra("erWeiMaContent");
  90 +
  91 + QrService service = (QrService) ARouter.getInstance().navigation(QrService.class);
  92 + if (null == service) {
  93 + return;
  94 + }
  95 + Bitmap bitmap = service.createQRNoIconBitmap(encryptionContent, DensityUtil.dp2px(this, 245));
  96 +// binding.ivQr.setBackgroundDrawable(bitmap);
  97 + if (null != bitmap) {
  98 + GlideApp.with(this).load(bitmap).into(erweima);
  99 + }
  100 + }
  101 +
  102 +
  103 + private void getPermissionsWithTip() {
  104 + mPermissionsUtils
  105 + .setPermissionsListener(new PermissionsListener() {
  106 + @Override
  107 + public void onDenied(String[] deniedPermissions) {
  108 + getPermissionsWithTip();
  109 + }
  110 +
  111 + @Override
  112 + public void onGranted() {
  113 + share();
  114 + }
  115 + })
  116 + .withActivity(this)
  117 + .getPermissions(this
  118 + , 100
  119 + , Manifest.permission.WRITE_EXTERNAL_STORAGE
  120 + , Manifest.permission.READ_EXTERNAL_STORAGE
  121 + );
  122 + }
  123 +
  124 + private void share() {
  125 + Bitmap qrbm = QMUIDrawableHelper.createBitmapFromView(share_ry);
  126 + String Base64 = convertIconToString(qrbm);
  127 + SharedPreferences.Editor editor = getSharedPreferences("sp", Context.MODE_PRIVATE).edit();
  128 + editor.putString("share_img_string", Base64);
  129 + editor.commit();
  130 + ARouter.getInstance().build("/share/ShareImgActivity")
  131 + .withString("bitmap", "share_img_string")
  132 + .withString("fileName",null)
  133 + .navigation(this);
  134 + }
  135 +
  136 +
  137 + /**
  138 + * 图片转成string
  139 + *
  140 + * @param bitmap
  141 + * @return
  142 + */
  143 + public String convertIconToString(Bitmap bitmap) {
  144 + ByteArrayOutputStream baos = new ByteArrayOutputStream();// outputstream
  145 + bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos);
  146 + byte[] appicon = baos.toByteArray();// 转为byte数组
  147 + String img = Base64.encodeToString(appicon, Base64.DEFAULT);
  148 + return img;
  149 + }
  150 +
  151 +}
... ...
module_xiaojiaSoundBox/src/main/java/com/cnlive/strike/xiaojiaspeaker/ui/fragment/InvitFriendFragment.java
... ... @@ -32,6 +32,7 @@ public class InvitFriendFragment extends MvpBindingFragment&lt;InvitFriendView, Inv
32 32 public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
33 33 super.onViewCreated(view, savedInstanceState);
34 34 initTopBar();
  35 + if(getMvpView() != null) getMvpView().initView();
35 36 getPresenter().getSetRoleList(getActivity(), XiaoJIaCommInfo.getUserId(getActivity()), XiaoJIaCommInfo.getFamilyId(getActivity()));
36 37 }
37 38  
... ...
module_xiaojiaSoundBox/src/main/res/drawable-hdpi/family_bg.png 0 → 100644

150 KB

module_xiaojiaSoundBox/src/main/res/drawable-xhdpi/family_bg.png 0 → 100644

231 KB

module_xiaojiaSoundBox/src/main/res/drawable-xxhdpi/family_bg.png 0 → 100644

496 KB

module_xiaojiaSoundBox/src/main/res/layout/activity_share_friend.xml 0 → 100644
  1 +<?xml version="1.0" encoding="utf-8"?>
  2 +<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3 + xmlns:app="http://schemas.android.com/apk/res-auto"
  4 + xmlns:tools="http://schemas.android.com/tools"
  5 + android:layout_width="match_parent"
  6 + android:layout_height="match_parent"
  7 + android:orientation="vertical"
  8 + tools:context=".ui.activity.ShareFriendActivity">
  9 +
  10 +
  11 + <com.qmuiteam.qmui.widget.QMUITopBar
  12 + android:id="@+id/topbar"
  13 + android:layout_width="match_parent"
  14 + android:layout_height="?attr/qmui_topbar_height"/>
  15 +
  16 + <RelativeLayout
  17 + android:id="@+id/share_ry"
  18 + android:layout_width="match_parent"
  19 + android:layout_height="match_parent"
  20 + android:layout_below="@id/topbar"
  21 + android:layout_marginTop="20dp"
  22 + android:layout_marginLeft="20dp"
  23 + android:layout_marginRight="20dp"
  24 + android:layout_marginBottom="60dp"
  25 + android:background="@drawable/family_bg">
  26 +
  27 + <LinearLayout
  28 + android:layout_width="wrap_content"
  29 + android:layout_height="wrap_content"
  30 + android:layout_centerHorizontal="true"
  31 + android:layout_margin="20dp"
  32 + android:orientation="vertical">
  33 + <LinearLayout
  34 + android:layout_width="wrap_content"
  35 + android:layout_height="37dp"
  36 + android:layout_gravity="center_horizontal"
  37 + android:orientation="horizontal">
  38 + <ImageView
  39 + android:id="@+id/img_icon"
  40 + android:layout_width="37dp"
  41 + android:layout_height="37dp"
  42 + android:src="@drawable/icon_friend"/>
  43 +
  44 + <TextView
  45 + android:id="@+id/name"
  46 + android:layout_width="wrap_content"
  47 + android:layout_height="wrap_content"
  48 + android:textColor="@color/color_282828"
  49 + android:textSize="16sp"
  50 + android:layout_marginLeft="10dp"
  51 + android:layout_gravity="center_vertical"
  52 + android:text="轻轻的路过"
  53 + />
  54 +
  55 + <TextView
  56 + android:layout_width="wrap_content"
  57 + android:layout_height="wrap_content"
  58 + android:layout_gravity="center_vertical"
  59 + android:layout_marginLeft="10dp"
  60 + android:text="@string/invite_you"
  61 + android:textColor="@color/color_fff"
  62 + android:textSize="15sp"
  63 + />
  64 + </LinearLayout>
  65 + <TextView
  66 + android:layout_width="wrap_content"
  67 + android:layout_height="wrap_content"
  68 + android:text="@string/scanto_get_invite"
  69 + android:layout_marginTop="15dp"
  70 + android:textSize="24sp"
  71 + android:textColor="@color/color_fff"
  72 + />
  73 +
  74 + <ImageView
  75 + android:id="@+id/erweima"
  76 + android:layout_width="166dp"
  77 + android:layout_height="166dp"
  78 + android:layout_marginTop="15dp"
  79 + android:layout_gravity="center_horizontal"/>
  80 +
  81 + <LinearLayout
  82 + android:layout_width="match_parent"
  83 + android:layout_height="wrap_content"
  84 + android:layout_marginTop="20dp"
  85 + android:gravity="center">
  86 +
  87 + <TextView
  88 + android:layout_width="15dp"
  89 + android:layout_height="15dp"
  90 + android:background="@drawable/shape_green_circle"
  91 + android:gravity="center"
  92 + android:text="1"
  93 + android:textColor="@color/white"
  94 + android:textSize="11sp"
  95 + android:textStyle="bold" />
  96 +
  97 + <TextView
  98 + android:layout_width="wrap_content"
  99 + android:layout_height="wrap_content"
  100 + android:layout_marginLeft="5dp"
  101 + android:layout_marginRight="5dp"
  102 + android:text="下载网家家 >"
  103 + android:textColor="@color/color_282828"
  104 + android:textSize="12sp"
  105 + android:textStyle="bold" />
  106 +
  107 + <TextView
  108 + android:layout_width="15dp"
  109 + android:layout_height="15dp"
  110 + android:background="@drawable/shape_green_circle"
  111 + android:gravity="center"
  112 + android:text="2"
  113 + android:textColor="@color/white"
  114 + android:textSize="11sp"
  115 + android:textStyle="bold" />
  116 +
  117 + <TextView
  118 + android:layout_width="wrap_content"
  119 + android:layout_height="wrap_content"
  120 + android:layout_marginLeft="5dp"
  121 + android:layout_marginRight="5dp"
  122 + android:text="注册/登录 >"
  123 + android:textColor="@color/color_282828"
  124 + android:textSize="12sp"
  125 + android:textStyle="bold" />
  126 +
  127 + <TextView
  128 + android:layout_width="15dp"
  129 + android:layout_height="15dp"
  130 + android:background="@drawable/shape_green_circle"
  131 + android:gravity="center"
  132 + android:text="3"
  133 + android:textColor="@color/white"
  134 + android:textSize="11sp"
  135 + android:textStyle="bold" />
  136 +
  137 + <TextView
  138 + android:layout_width="wrap_content"
  139 + android:layout_height="wrap_content"
  140 + android:layout_marginLeft="5dp"
  141 + android:text="扫码绑定"
  142 + android:textColor="@color/color_282828"
  143 + android:textSize="12sp"
  144 + android:textStyle="bold" />
  145 + </LinearLayout>
  146 +
  147 + <TextView
  148 + android:layout_width="wrap_content"
  149 + android:layout_height="wrap_content"
  150 + android:text="@string/haseapp_login"
  151 + android:layout_gravity="center_horizontal"
  152 + android:layout_marginTop="15dp"
  153 + android:textSize="15sp"
  154 + android:textColor="@color/color_282828"
  155 + android:textStyle="bold"
  156 + />
  157 + </LinearLayout>
  158 +
  159 + <TextView
  160 + android:layout_width="wrap_content"
  161 + android:layout_height="wrap_content"
  162 + android:layout_centerHorizontal="true"
  163 + android:layout_alignParentBottom="true"
  164 + android:layout_marginBottom="5dp"
  165 + android:text="@string/save_bitmap_app_scan"
  166 + android:textColor="@color/color_282828"
  167 + android:textSize="15sp"
  168 + />
  169 + </RelativeLayout>
  170 + <TextView
  171 + android:id="@+id/share_btn"
  172 + android:layout_width="wrap_content"
  173 + android:layout_height="wrap_content"
  174 + android:layout_alignParentBottom="true"
  175 + android:layout_centerHorizontal="true"
  176 + android:layout_marginBottom="15dp"
  177 + android:text="@string/share_family"
  178 + android:background="@drawable/selector_btn_green"
  179 + android:textColor="@color/color_fff"
  180 + android:textSize="16sp"
  181 + android:paddingTop="5dp"
  182 + android:paddingBottom="5dp"
  183 + android:paddingLeft="15dp"
  184 + android:paddingRight="15dp"
  185 + />
  186 +</RelativeLayout>
0 187 \ No newline at end of file
... ...
module_xiaojiaSoundBox/src/main/res/values/strings.xml
... ... @@ -24,4 +24,9 @@
24 24 <string name="go_to_liaten_china">前往听见中国 >></string>
25 25 <string name="open_gps_tip">为确保功能正常使用,请开启GPS!</string>
26 26 <string name="retry">重试</string>
  27 + <string name="invite_you">邀请你</string>
  28 + <string name="scanto_get_invite">扫码和他(她)绑定亲情关系</string>
  29 + <string name="haseapp_login">已安装网家家,请直接登录扫码</string>
  30 + <string name="save_bitmap_app_scan">-保存图片用网家家扫码-</string>
  31 + <string name="share_family">分享给家人</string>
27 32 </resources>
... ...