session qr view pop

chengzhenyu 8 years ago
parent
commit
3a02d62cf1

+ 1 - 0
.idea/modules.xml

@@ -5,6 +5,7 @@
5 5
       <module fileurl="file://$PROJECT_DIR$/Lensman.iml" filepath="$PROJECT_DIR$/Lensman.iml" />
6 6
       <module fileurl="file://$PROJECT_DIR$/app/app.iml" filepath="$PROJECT_DIR$/app/app.iml" />
7 7
       <module fileurl="file://$PROJECT_DIR$/common/common.iml" filepath="$PROJECT_DIR$/common/common.iml" />
8
+      <module fileurl="file://$PROJECT_DIR$/lensman_ssh.iml" filepath="$PROJECT_DIR$/lensman_ssh.iml" />
8 9
       <module fileurl="file://$PROJECT_DIR$/views/views.iml" filepath="$PROJECT_DIR$/views/views.iml" />
9 10
     </modules>
10 11
   </component>

+ 1 - 1
app/build.gradle

@@ -30,6 +30,6 @@ dependencies {
30 30
     apt 'com.jakewharton:butterknife-compiler:8.2.1'
31 31
 
32 32
     compile project(path: ':common')
33
-    compile project(path: ':common')
34 33
     compile files('libs/zxing.jar')
34
+    compile project(path: ':views')
35 35
 }

+ 3 - 3
app/src/main/java/ai/pai/lensman/session/SessionActivity.java

@@ -22,7 +22,7 @@ public class SessionActivity extends AppCompatActivity implements SessionContrac
22 22
     @BindView(R.id.title_bar_middle_txt) TextView titleTextView;
23 23
     @BindView(R.id.recycler_view_photos) RecyclerView photosRecyclerView;
24 24
     private PhotoRecyclerAdapter adapter;
25
-
25
+    private  SessionBean sessionBean;
26 26
     private SessionContract.SessionPresenter presenter;
27 27
 
28 28
     private static final int JOIN_REQUEST_CODE = 3002;
@@ -34,7 +34,7 @@ public class SessionActivity extends AppCompatActivity implements SessionContrac
34 34
         ButterKnife.bind(this);
35 35
         presenter = new SessionPresenterImpl(this,this);
36 36
 
37
-        SessionBean sessionBean =(SessionBean)getIntent().getSerializableExtra("session");
37
+        sessionBean =(SessionBean)getIntent().getSerializableExtra("session");
38 38
         titleTextView.setText(getString(R.string.scene)+sessionBean.sessionSeq);
39 39
         adapter = new PhotoRecyclerAdapter(this);
40 40
         RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(this);
@@ -62,7 +62,7 @@ public class SessionActivity extends AppCompatActivity implements SessionContrac
62 62
 
63 63
     @OnClick(R.id.iv_qrcode)
64 64
     void showQRCodeForSession(){
65
-
65
+        new SessionQRPopup(this, String.valueOf(sessionBean.sessionSeq)).showPopupWindow();
66 66
     }
67 67
 
68 68
     @OnClick(R.id.title_bar_back_layout)

+ 71 - 0
app/src/main/java/ai/pai/lensman/session/SessionQRPopup.java

@@ -0,0 +1,71 @@
1
+package ai.pai.lensman.session;
2
+
3
+import android.app.Activity;
4
+import android.content.Context;
5
+import android.view.LayoutInflater;
6
+import android.view.View;
7
+import android.view.animation.Animation;
8
+import android.widget.ImageView;
9
+import android.widget.LinearLayout;
10
+
11
+import com.android.common.utils.DeviceUtils;
12
+import com.android.views.popup.BasePopupWindow;
13
+
14
+import ai.pai.lensman.R;
15
+import ai.pai.lensman.qrcode.QRCreateUtils;
16
+import ai.pai.lensman.utils.UrlContainer;
17
+
18
+public class SessionQRPopup extends BasePopupWindow {
19
+
20
+    private View popupView;
21
+    private ImageView groupQRImg;
22
+    private String groupId;
23
+    private Context context;
24
+
25
+
26
+    public SessionQRPopup(Activity context, String groupId) {
27
+        super(context);
28
+        this.groupId = groupId;
29
+        this.context = context;
30
+        init();
31
+    }
32
+
33
+    @Override
34
+    protected Animation getShowAnimation() {
35
+        return getDefaultScaleAnimation();
36
+    }
37
+
38
+    @Override
39
+    protected View getClickToDismissView() {
40
+        return popupView.findViewById(R.id.click_to_dismiss);
41
+    }
42
+
43
+    @Override
44
+    public View getPopupView() {
45
+        popupView = LayoutInflater.from(mContext).inflate(R.layout.pop_session_qr, null);
46
+        groupQRImg = (ImageView) popupView.findViewById(R.id.iv_group_qrcode);
47
+        return popupView;
48
+    }
49
+
50
+    private void init(){
51
+        try{
52
+            initQRImageSize();
53
+            groupQRImg.setImageBitmap(QRCreateUtils.Create2DCode(UrlContainer.HOST_URL+groupId, DeviceUtils.dip2px(context,200)));
54
+            groupQRImg.setVisibility(View.VISIBLE);
55
+        }catch (Exception e){
56
+            e.printStackTrace();
57
+        }
58
+    }
59
+
60
+    @Override
61
+    public View getAnimaView() {
62
+        return popupView.findViewById(R.id.popup_anima);
63
+    }
64
+
65
+    private void initQRImageSize() {
66
+        LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) groupQRImg.getLayoutParams();
67
+        params.width = DeviceUtils.dip2px(context,200);
68
+        params.height = DeviceUtils.dip2px(context,200);
69
+        groupQRImg.setLayoutParams(params);
70
+    }
71
+}

+ 40 - 0
app/src/main/res/layout/pop_session_qr.xml

@@ -0,0 +1,40 @@
1
+<?xml version="1.0" encoding="utf-8"?>
2
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
3
+    android:layout_width="match_parent"
4
+    android:layout_height="match_parent">
5
+
6
+    <RelativeLayout
7
+        android:id="@+id/click_to_dismiss"
8
+        android:layout_width="match_parent"
9
+        android:layout_height="match_parent"
10
+        android:background="@color/popup_bg">
11
+
12
+        <LinearLayout
13
+            android:id="@+id/popup_anima"
14
+            android:layout_width="270dp"
15
+            android:layout_height="270dp"
16
+            android:layout_centerInParent="true"
17
+            android:gravity="center"
18
+            android:background="@color/pop_bg_color"
19
+            android:orientation="vertical">
20
+
21
+
22
+            <ImageView
23
+                android:layout_marginTop="16dp"
24
+                android:id="@+id/iv_group_qrcode"
25
+                android:layout_width="200dp"
26
+                android:layout_height="200dp"
27
+             />
28
+
29
+            <TextView
30
+                android:layout_marginTop="16dp"
31
+                android:layout_width="wrap_content"
32
+                android:layout_height="wrap_content"
33
+                android:text="@string/scan_qr_join_group"
34
+                android:textColor="@color/grey"
35
+                android:textSize="12sp" />
36
+
37
+        </LinearLayout>
38
+
39
+    </RelativeLayout>
40
+</RelativeLayout>

+ 3 - 0
app/src/main/res/values/colors.xml

@@ -11,4 +11,7 @@
11 11
     <color name="text_white">#FFFFFF</color>
12 12
     <color name="background_white">#FFFFFF</color>
13 13
     <color name="background_light_grey_color">#F0F0F0</color>
14
+
15
+    <color name="pop_bg_color">#F7F7F7</color>
16
+    <color name="dark_grey">#333333</color>
14 17
 </resources>

+ 2 - 0
app/src/main/res/values/strings.xml

@@ -15,4 +15,6 @@
15 15
     <string name="qr_scan_flash_on">开灯</string>
16 16
     <string name="qr_scan_flash_off">关灯</string>
17 17
 
18
+    <string name="scan_qr_join_group">扫描二维码加入群</string>
19
+
18 20
 </resources>