e> void jumpToBriefs(){ 69
+        MobclickAgent.onEvent(this, UmengEvent.home_brief_btn_click);
67 70
         startActivity(new Intent(this, BriefsActivity.class));
68 71
     }
69 72
 
70 73
     @OnClick(R.id.iv_add_session)
71 74
     void jumpToNewSession(){
72 75
         LogHelper.d(TAG,"jumpToNewSession");
76
+        MobclickAgent.onEvent(this, UmengEvent.home_add_session_btn_click);
73 77
         jumpToSelectedSession( presenter.createNewSession());
74 78
     }
75 79
 

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

@@ -15,6 +15,7 @@ import android.widget.Toast;
15 15
 
16 16
 import com.android.common.utils.LogHelper;
17 17
 import com.android.common.utils.NetworkUtil;
18
+import com.umeng.analytics.MobclickAgent;
18 19
 
19 20
 import java.io.File;
20 21
 
@@ -25,6 +26,7 @@ import ai.pai.lensman.bean.PhotoBean;
25 26
 import ai.pai.lensman.bean.SessionBean;
26 27
 import ai.pai.lensman.printer.PrinterSettingActivity;
27 28
 import ai.pai.lensman.qrcode.QRCaptureActivity;
29
+import ai.pai.lensman.utils.UmengEvent;
28 30
 import butterknife.BindView;
29 31
 import butterknife.ButterKnife;
30 32
 import butterknife.OnClick;
@@ -111,12 +113,15 @@ public class SessionActivity extends BaseActivity implements SessionContract.Vie
111 113
 
112 114
     @OnClick(R.id.iv_scan)
113 115
     void scanToFetchSessionQR(){
116
+        MobclickAgent.onEvent(this, UmengEvent.session_scan_qr_btn_click);
114 117
         Intent intent = new Intent(SessionActivity.this, QRCaptureActivity.class);
115 118
         startActivityForResult(intent, JOIN_REQUEST_CODE);
119
+
116 120
     }
117 121
 
118 122
     @OnClick(R.id.iv_qrcode)
119 123
     void showQRCodeForSession(){
124
+        MobclickAgent.onEvent(this, UmengEvent.session_view_qr_btn_click);
120 125
         Intent intent = new Intent(this,SessionQRCodeActivity.class);
121 126
         intent.putExtra("qrcode",sessionBean.sessionId);
122 127
         startActivity(intent);
@@ -130,6 +135,7 @@ public class SessionActivity extends BaseActivity implements SessionContract.Vie
130 135
 
131 136
     @OnClick(R.id.btn_session_complete)
132 137
     void onSessionComplete(){
138
+        MobclickAgent.onEvent(this, UmengEvent.session_finish_btn_click);
133 139
         presenter.stop();
134 140
         finish();
135 141
     }

+ 14 - 0
app/src/main/java/ai/pai/lensman/utils/UmengEvent.java

@@ -0,0 +1,14 @@
1
+package ai.pai.lensman.utils;
2
+
3
+/**
4
+ * Created by chengzhenyu on 2017/3/5.
5
+ */
6
+
7
+public class UmengEvent {
8
+    public static final String home_add_session_btn_click = "home_add_session_btn_click";
9
+    public static final String home_brief_btn_click ="home_brief_btn_click";
10
+    public static final String session_finish_btn_click = "session_finish_btn_click";
11
+    public static final String brief_setting_btn_click ="brief_setting_btn_click";
12
+    public static final String session_scan_qr_btn_click = "session_scan_qr_btn_click";
13
+    public static final String session_view_qr_btn_click ="session_view_qr_btn_click";
14
+}

+ 10 - 0
app/src/main/res/layout/activity_about_us.xml

@@ -49,6 +49,16 @@
49 49
             android:textColor="@color/dark_grey"
50 50
             android:layout_marginLeft="10dp"/>
51 51
 
52
+        <TextView
53
+            android:id="@+id/tv_cur_version"
54
+            android:layout_width="0dp"
55
+            android:layout_weight="1"
56
+            android:layout_height="wrap_content"
57
+            android:textSize="14sp"
58
+            android:gravity="right"
59
+            android:textColor="@color/grey"
60
+            android:layout_marginRight="10dp"/>
61
+
52 62
         <ImageView
53 63
             android:layout_width="wrap_content"
54 64
             android:layout_height="wrap_content"

+ 1 - 1
build.gradle

@@ -5,7 +5,7 @@ buildscript {
5 5
         jcenter()
6 6
     }
7 7
     dependencies {
8
-        classpath 'com.android.tools.build:gradle:2.2.3'
8
+        classpath 'com.android.tools.build:gradle:2.3.0'
9 9
         classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
10 10
         // NOTE: Do not place your application dependencies here; they belong
11 11
         // in the individual module build.gradle files

+ 2 - 2
common/build.gradle

@@ -2,11 +2,11 @@ apply plugin: 'com.android.library'
2 2
 
3 3
 android {
4 4
     compileSdkVersion 24
5
-    buildToolsVersion "24.0.3"
5
+    buildToolsVersion "25.0.2"
6 6
 
7 7
     defaultConfig {
8 8
         minSdkVersion 14
9
-        targetSdkVersion 23
9
+        targetSdkVersion 21
10 10
         versionCode 1
11 11
         versionName "1.0"
12 12
     }

+ 2 - 2
gradle/wrapper/gradle-wrapper.properties

@@ -1,6 +1,6 @@
1
-#Thu Aug 18 08:08:09 CST 2016
1
+#Sun Mar 05 10:19:46 CST 2017
2 2
 distributionBase=GRADLE_USER_HOME
3 3
 distributionPath=wrapper/dists
4 4
 zipStoreBase=GRADLE_USER_HOME
5 5
 zipStorePath=wrapper/dists
6
-distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip
6
+distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip

+ 2 - 2
views/build.gradle

@@ -2,11 +2,11 @@ apply plugin: 'com.android.library'
2 2
 
3 3
 android {
4 4
     compileSdkVersion 24
5
-    buildToolsVersion "24.0.3"
5
+    buildToolsVersion "25.0.2"
6 6
 
7 7
     defaultConfig {
8 8
         minSdkVersion 14
9
-        targetSdkVersion 23
9
+        targetSdkVersion 21
10 10
         versionCode 1
11 11
         versionName "1.0"
12 12
     }

kodo - Gogs: Go Git Service

Aucune description

models.py 2.6KB

    # -*- coding: utf-8 -*- from django.db import models from django.utils.translation import ugettext_lazy as _ from django_models_ext import BaseModelMixin, SexModelMixin from shortuuidfield import ShortUUIDField class ScreenAdminInfo(BaseModelMixin): ACTIVATED = 1 DISABLED = 2 DELETED = 3 USER_STATUS_TUPLE = ( (ACTIVATED, u'已激活'), (DISABLED, u'已禁用'), (DELETED, u'已删除'), ) admin_id = ShortUUIDField(_(u'admin_id'), max_length=32, blank=True, null=True, help_text=u'大屏管理员唯一标识', db_index=True, unique=True) unionid = models.CharField(_(u'unionid'), max_length=32, blank=True, null=True, help_text=u'微信 Union ID', db_index=True) openid = models.CharField(_(u'openid'), max_length=32, blank=True, null=True, help_text=u'微信 Open ID', db_index=True) name = models.CharField(_(u'name'), max_length=8, blank=True, null=True, help_text=u'用户姓名') sex = models.IntegerField(_(u'sex'), choices=SexModelMixin.SEX_TUPLE, default=SexModelMixin.UNKNOWN, help_text=u'用户性别') nickname = models.CharField(_(u'nickname'), max_length=255, blank=True, null=True, help_text=u'用户昵称') avatar = models.CharField(_(u'avatar'), max_length=255, blank=True, null=True, help_text=u'用户头像') phone = models.CharField(_(u'phone'), max_length=11, blank=True, null=True, help_text=u'用户电话', db_index=True) country = models.CharField(_(u'country'), max_length=16, blank=True, null=True, help_text=u'用户国家') province = models.CharField(_(u'province'), max_length=16, blank=True, null=True, help_text=u'用户省份') city = models.CharField(_(u'city'), max_length=16, blank=True, null=True, help_text=u'用户城市') location = models.CharField(_(u'location'), max_length=255, blank=True, null=True, help_text=u'用户地址') brand_id = models.CharField(_(u'brand_id'), max_length=32, blank=True, null=True, help_text=u'品牌唯一标识', db_index=True) brand_name = models.CharField(_(u'brand_name'), max_length=255, blank=True, null=True, help_text=u'品牌名称') user_status = models.IntegerField(_(u'user_status'), choices=USER_STATUS_TUPLE, default=ACTIVATED, help_text=u'管理员状态', db_index=True) class Meta: verbose_name = _(u'ScreenAdminInfo') verbose_name_plural = _(u'ScreenAdminInfo') unique_together = ( ('brand_id', 'unionid', 'openid'), ) def __unicode__(self): return '%d' % self.pk @property def data(self): return { 'admin_id': self.admin_id, 'nickname': self.nickname, 'avatar': self.avatar, }