Selaa lähdekoodia

邀请好友界面完善

zhaoyi 8 vuotta sitten
vanhempi
commit
919f00171a

+ 4 - 0
app/src/main/java/com/sheep/jiuyan/samllsheep/net/Url.java

@@ -47,6 +47,10 @@ public class Url {
     public static String REQUEST_HOOK = Config.instance().mBaseUrl + "/static/index.html";
     //提供微信号页面
     public static String ADD_CHILD_WX = Config.instance().mBaseUrl + "/static/apply3.html";
+    //任务引导
+    public static String TASK_GUIDE = Config.instance().mBaseUrl + "/static/apply3.html";
+    //新手任务
+    public static String NEW_USER_GUIDE = Config.instance().mBaseUrl + "/static/apply3.html";
     //登录好玩
     public static String LOGIN = Config.instance().mBaseUrl + "/v1/user/login";
     //授权

+ 74 - 37
app/src/main/java/com/sheep/jiuyan/samllsheep/page/AskFriendActivity.java

@@ -1,6 +1,11 @@
 package com.sheep.jiuyan.samllsheep.page;
 
 import android.app.AlertDialog;
+import android.net.Uri;
+import android.os.Environment;
+import android.provider.MediaStore;
+import android.text.ClipboardManager;
+import android.content.Context;
 import android.content.Intent;
 import android.graphics.Bitmap;
 import android.graphics.drawable.ColorDrawable;
@@ -18,25 +23,30 @@ import com.sheep.jiuyan.samllsheep.base.BaseActivity;
 import com.sheep.jiuyan.samllsheep.net.NetManager;
 import com.sheep.jiuyan.samllsheep.net.SheepCallback;
 import com.sheep.jiuyan.samllsheep.net.Url;
+import com.sheep.jiuyan.samllsheep.page.entry.InviteUrl;
 import com.sheep.jiuyan.samllsheep.utils.DeviceUtils;
 import com.sheep.jiuyan.samllsheep.utils.PackageUtil;
 import com.sheep.jiuyan.samllsheep.utils.SpUtils;
+import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
 import com.uuzuche.lib_zxing.activity.CodeUtils;
 
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
 import java.util.HashMap;
 
 /**
  * Created by Administrator on 2018/1/24.
  */
 
-public class AskFriendActivity  extends BaseActivity  implements View.OnClickListener{
+public class AskFriendActivity extends BaseActivity implements View.OnClickListener {
     private TextView tv_reward_size;
-    private  TextView  tv_friend_size;
-    private  TextView  tv_proportion_size;
-    private RelativeLayout  rl_emw;
-    private  RelativeLayout  rl_link;
+    private TextView tv_friend_size;
+    private TextView tv_proportion_size;
+    private RelativeLayout rl_emw;
+    private RelativeLayout rl_link;
 
-    private  String  shareLink;
+    private String shareLink;
 
     @Override
     protected int getLayoutId() {
@@ -45,11 +55,12 @@ public class AskFriendActivity  extends BaseActivity  implements View.OnClickLis
 
     @Override
     public void initView() {
-        tv_reward_size=(TextView)findViewById(R.id.tv_reward_size);
-        tv_friend_size=(TextView)findViewById(R.id.tv_friend_size);
-        tv_proportion_size=(TextView)findViewById(R.id.tv_proportion_size);
-        rl_emw=(RelativeLayout) findViewById(R.id.rl_emw);
-        rl_link=(RelativeLayout) findViewById(R.id.rl_link);
+        tv_reward_size = (TextView) findViewById(R.id.tv_reward_size);
+        tv_friend_size = (TextView) findViewById(R.id.tv_friend_size);
+        tv_proportion_size = (TextView) findViewById(R.id.tv_proportion_size);
+        rl_emw = (RelativeLayout) findViewById(R.id.rl_emw);
+        rl_link = (RelativeLayout) findViewById(R.id.rl_link);
+        TitleBarUtils.getInstance().setTitle(this, "邀请好友").setTitleFinish(this);
 
     }
 
@@ -64,13 +75,13 @@ public class AskFriendActivity  extends BaseActivity  implements View.OnClickLis
         getShareLink();
     }
 
-    private  void  getShareLink(){
+    private void getShareLink() {
         HashMap<String, String> map = new HashMap<>();
         map.put("wx_open_id", SpUtils.getOpenId(this));
-        NetManager.get(Url.USER_INVITE_URL, map, getApplicationContext(), new SheepCallback<String>(this) {
+        NetManager.get(Url.USER_INVITE_URL, map, getApplicationContext(), new SheepCallback<InviteUrl>(this) {
             @Override
-            public void success(String o) {
-                shareLink=o;
+            public void success(InviteUrl o) {
+                shareLink = o.getUrl();
             }
         });
 
@@ -78,12 +89,11 @@ public class AskFriendActivity  extends BaseActivity  implements View.OnClickLis
     }
 
 
-
     @Override
     public void onClick(View view) {
 
-        switch (view.getId()){
-            case  R.id.rl_emw:
+        switch (view.getId()) {
+            case R.id.rl_emw:
 
                 showEMW();
 
@@ -94,14 +104,12 @@ public class AskFriendActivity  extends BaseActivity  implements View.OnClickLis
                 break;
 
 
-
         }
 
 
     }
 
-    private  void  showEMW(){
-
+    private void showEMW() {
         AlertDialog.Builder builder = new AlertDialog.Builder(AskFriendActivity.this);
         View view = View.inflate(this, R.layout.ema_dialog, null);
         builder.setView(view);
@@ -110,7 +118,7 @@ public class AskFriendActivity  extends BaseActivity  implements View.OnClickLis
         dialog.getWindow().setDimAmount(0.1f);
         dialog.getWindow().setBackgroundDrawable(new ColorDrawable(0));
         dialog.show();
-        ImageView iv_close=(ImageView)view.findViewById(R.id.iv_close);
+        ImageView iv_close = (ImageView) view.findViewById(R.id.iv_close);
         iv_close.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
@@ -118,27 +126,53 @@ public class AskFriendActivity  extends BaseActivity  implements View.OnClickLis
             }
         });
 
-        ImageView iv_ema=(ImageView)view.findViewById(R.id.iv_ema);
-        Bitmap mBitmap = CodeUtils.createImage(shareLink, 200, 200,null );
+        ImageView iv_ema = (ImageView) view.findViewById(R.id.iv_ema);
+        final Bitmap mBitmap = CodeUtils.createImage(shareLink, 200, 200, null);
         iv_ema.setImageBitmap(mBitmap);
-        LinearLayout  ll_save=(LinearLayout)view.findViewById(R.id.ll_save);
+        LinearLayout ll_save = (LinearLayout) view.findViewById(R.id.ll_save);
         ll_save.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
-
+                boolean isOk = saveImageToGallery(AskFriendActivity.this, mBitmap);
+                if (isOk) {
+                    Toast.makeText(AskFriendActivity.this, "保存成功", Toast.LENGTH_SHORT).show();
+                } else {
+                    Toast.makeText(AskFriendActivity.this, "保存失败,请重试", Toast.LENGTH_SHORT).show();
+                }
             }
         });
-
-
-
-
-
-
     }
 
+    //保存图片,更新系统图库
+    public boolean saveImageToGallery(Context context, Bitmap bmp) {
+        String storePath = Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + "Sheep";
+        File appDir = new File(storePath);
+        if (!appDir.exists()) {
+            appDir.mkdir();
+        }
+        String fileName = System.currentTimeMillis() + ".jpg";
+        File file = new File(appDir, fileName);
+        try {
+            FileOutputStream fos = new FileOutputStream(file);
+            boolean isSuccess = bmp.compress(Bitmap.CompressFormat.JPEG, 100, fos);
+            fos.flush();
+            fos.close();
+            MediaStore.Images.Media.insertImage(context.getContentResolver(), file.getAbsolutePath(), fileName, null);
+            Uri uri = Uri.fromFile(file);
+            context.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, uri));
+            if (isSuccess) {
+                return true;
+            } else {
+                return false;
+            }
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        return false;
+    }
 
 
-    private  void  showLink(){
+    private void showLink() {
         AlertDialog.Builder builder = new AlertDialog.Builder(AskFriendActivity.this);
         View view = View.inflate(this, R.layout.link_dialog, null);
         builder.setView(view);
@@ -147,7 +181,7 @@ public class AskFriendActivity  extends BaseActivity  implements View.OnClickLis
         dialog.getWindow().setDimAmount(0.1f);
         dialog.getWindow().setBackgroundDrawable(new ColorDrawable(0));
         dialog.show();
-        ImageView iv_close=(ImageView)view.findViewById(R.id.iv_close);
+        ImageView iv_close = (ImageView) view.findViewById(R.id.iv_close);
         iv_close.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
@@ -155,13 +189,16 @@ public class AskFriendActivity  extends BaseActivity  implements View.OnClickLis
             }
         });
 
-        EditText  et=(EditText)view.findViewById(R.id.et);
+        EditText et = (EditText) view.findViewById(R.id.et);
         et.setText(shareLink);
-        ImageView iv_link=(ImageView)view.findViewById(R.id.iv_link);
+        ImageView iv_link = (ImageView) view.findViewById(R.id.iv_link);
         iv_link.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
-
+                ClipboardManager cm = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
+                // 将文本内容放到系统剪贴板里。
+                cm.setText(shareLink);
+                Toast.makeText(AskFriendActivity.this, "复制成功,可以发给朋友们了。", Toast.LENGTH_SHORT).show();
             }
         });
 

+ 10 - 0
app/src/main/java/com/sheep/jiuyan/samllsheep/page/GameDetailActivity.java

@@ -90,6 +90,7 @@ public class GameDetailActivity extends BaseActivity {
         mLlInfos = (LinearLayout) findViewById(R.id.ll_infos);
         mPb = findViewById(R.id.pb_commit);
         mBtnStandard = findViewById(R.id.btn_standard);
+        findViewById(R.id.tv_guide).setVisibility(View.VISIBLE);
 
         TitleBarUtils.getInstance().setTitle(this, "任务详情")
                 .setTitleFinish(this);
@@ -136,6 +137,15 @@ public class GameDetailActivity extends BaseActivity {
                 startActivity(intent);
             }
         });
+        findViewById(R.id.tv_guide).setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                Intent intent = new Intent(GameDetailActivity.this, WebActivity.class);
+                intent.putExtra(WebActivity.INTENT_URL, Url.TASK_GUIDE);
+                intent.putExtra(WebActivity.INTENT_TITLE, "如何做任务");
+                startActivity(intent);
+            }
+        });
     }
 
     private void checkIsRegisterTask() {

+ 2 - 1
app/src/main/java/com/sheep/jiuyan/samllsheep/page/MainActivity.java

@@ -226,9 +226,10 @@ public class MainActivity extends BaseActivity {
                 @Override
                 public void onClick(View v) {
                     Intent intent = new Intent(MainActivity.this, WebActivity.class);
-                    intent.putExtra(WebActivity.INTENT_URL, "http://10.8.210.190:8080/index.html?count=3");
+                    intent.putExtra(WebActivity.INTENT_URL, "http://10.8.210.190:8080/rookie_guide.html");
                     intent.putExtra(WebActivity.INTENT_TITLE, "新手引导");
                     intent.putExtra(WebActivity.INTENT_NEW_USER, "1");
+                    intent.putExtra(WebActivity.TASK_COUNT, "1");
                     startActivity(intent);
                 }
             });

+ 2 - 3
app/src/main/java/com/sheep/jiuyan/samllsheep/page/UserCenterActivity.java

@@ -155,9 +155,8 @@ public class UserCenterActivity extends BaseActivity implements View.OnClickList
 
         } else if (i == R.id.tv_friend) {
             if (checkLogin()) {
-                Toast.makeText(this, "我的好友", Toast.LENGTH_SHORT).show();
-                /*intent = new Intent(UserCenterActivity.this, WXAccountActivity.class);
-                startActivity(intent);*/
+                intent = new Intent(UserCenterActivity.this, AskFriendActivity.class);
+                startActivity(intent);
             } else {
                 toLogin();
             }

+ 32 - 2
app/src/main/java/com/sheep/jiuyan/samllsheep/page/WebActivity.java

@@ -6,10 +6,13 @@ import android.view.View;
 import android.webkit.JavascriptInterface;
 import android.webkit.WebChromeClient;
 import android.webkit.WebResourceRequest;
+import android.webkit.WebResourceResponse;
+import android.webkit.WebSettings;
 import android.webkit.WebView;
 import android.webkit.WebViewClient;
 import android.widget.LinearLayout;
 import android.widget.TextView;
+import android.widget.Toast;
 
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.base.BaseActivity;
@@ -39,6 +42,7 @@ public class WebActivity extends BaseActivity {
     public final static String INTENT_TITLE = "INTENT_TITLE";
     public final static String INTENT_LOAD_JS = "INTENT_LOAD_JS";//只要此INTENT有就会载入
     public final static String INTENT_NEW_USER = "INTENT_NEW_USER";//新手引导
+    public final static String TASK_COUNT = "TASK_COUNT";//任务完成数
 
     @Override
     protected int getLayoutId() {
@@ -57,13 +61,21 @@ public class WebActivity extends BaseActivity {
 
         });
         mWeb.getSettings().setJavaScriptEnabled(true);
+        mWeb.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
         mWeb.setWebViewClient(new WebViewClient() {
+
             @Override
-            public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
-                view.loadUrl(request.getUrl().toString());
+            public boolean shouldOverrideUrlLoading(WebView view, String url) {
+                if (url.contains("rookie_guide")) {
+                    url = url + "?count=" + getIntent().getStringExtra(TASK_COUNT);
+                }
+                view.loadUrl(url);
                 return true;
             }
         });
+        mWeb.setWebChromeClient(new WebChromeClient() {
+
+        });
         TitleBarUtils.getInstance()
                 .setTitle(this, getIntent().hasExtra(INTENT_TITLE) ?
                         getIntent().getStringExtra(INTENT_TITLE) : "任务攻略")
@@ -136,6 +148,20 @@ public class WebActivity extends BaseActivity {
         public void setTitle(String title) {
             TitleBarUtils.getInstance().setTitle(WebActivity.this, title);
         }
+
+        @JavascriptInterface
+        public void getMoney(int code) {
+            if (code == 1) {
+                Toast.makeText(WebActivity.this, "领取第一奖励", Toast.LENGTH_SHORT).show();
+            }
+            mWeb.post(new Runnable() {
+                @Override
+                public void run() {
+                    mWeb.loadUrl("javascript:getM('1')");
+                }
+            });
+
+        }
     }
 
 
@@ -146,12 +172,16 @@ public class WebActivity extends BaseActivity {
     @Override
     public void initData() {
         String url = getIntent().getStringExtra(INTENT_URL);
+        if (getIntent().hasExtra(INTENT_NEW_USER)) {
+            url += "?count=" + getIntent().getStringExtra(TASK_COUNT);
+        }
         mWeb.loadUrl(url);
     }
 
     @Override
     protected void onDestroy() {
         super.onDestroy();
+        mWeb.clearCache(true);
         LinearLayout parent = (LinearLayout) mWeb.getParent();
         parent.removeView(mWeb);
         mWeb.destroy();

+ 17 - 0
app/src/main/java/com/sheep/jiuyan/samllsheep/page/entry/InviteUrl.java

@@ -0,0 +1,17 @@
+package com.sheep.jiuyan.samllsheep.page.entry;
+
+/**
+ * Created by kemllor on 2018/1/25.
+ */
+
+public class InviteUrl {
+    String Url;
+
+    public String getUrl() {
+        return Url;
+    }
+
+    public void setUrl(String url) {
+        Url = url;
+    }
+}

+ 4 - 2
app/src/main/res/layout/link_dialog.xml

@@ -38,7 +38,9 @@
             android:layout_marginTop="3dp"
             android:layout_width="match_parent"
             android:layout_height="45dp"
-            android:background="@color/black_light"
+            android:background="@color/background_light_gray"
+            android:textSize="@dimen/text_size_3"
+            android:textColor="@color/black_text_deep"
             android:enabled="false"
             android:layout_marginLeft="5dp"
             android:padding="5dp"
@@ -49,7 +51,7 @@
             android:layout_marginTop="20dp"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:text="他人点击该链接\n 加入小绵羊即可成为你的好友"
+            android:text="他人通过该链接\n 加入小绵羊即可成为你的好友"
             android:gravity="center"
             android:textSize="16sp"
             android:textColor="@color/black_light"

+ 1 - 1
app/src/main/res/layout/main_activity.xml

@@ -140,7 +140,7 @@
 
     </android.support.v4.widget.SwipeRefreshLayout>
 
-    <de.hdodenhof.circleimageview.CircleImageView
+    <ImageView
         android:id="@+id/img_share"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"

+ 20 - 11
app/src/main/res/layout/title.xml

@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="utf-8"?>
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/layout_navigationBar"
-    android:layout_width="match_parent"
-    android:layout_height="@dimen/layout_heigh_default"
-    android:background="@color/colorPrimary">
+                android:id="@+id/layout_navigationBar"
+                android:layout_width="match_parent"
+                android:layout_height="@dimen/layout_heigh_default"
+                android:background="@color/colorPrimary">
 
     <ImageView
         android:id="@+id/img_baseactivity_title"
@@ -13,7 +13,7 @@
         android:gravity="center_vertical"
         android:minWidth="@dimen/layout_heigh_default"
         android:scaleType="centerInside"
-        android:src="@drawable/narrow_back_black" />
+        android:src="@drawable/narrow_back_black"/>
 
     <TextView
         android:id="@+id/txt_baseactivity_title"
@@ -24,8 +24,7 @@
         android:text="@string/app_name"
         android:textColor="@color/black_text_deep"
         android:textSize="@dimen/text_size_4"
-        android:textStyle="bold" />
-
+        android:textStyle="bold"/>
 
     <!--右边按钮-->
     <Button
@@ -40,9 +39,7 @@
         android:gravity="center"
         android:minWidth="@dimen/layout_heigh_default"
         android:textColor="@color/black_text_deep"
-        android:textSize="@dimen/text_size_3" />
-
-
+        android:textSize="@dimen/text_size_3"/>
     <!--右边图片按钮-->
     <ImageButton
         android:id="@+id/ibtn_baseactivity_right"
@@ -53,5 +50,17 @@
         android:background="@color/translate"
         android:gravity="center"
         android:minWidth="@dimen/layout_heigh_default"
-        android:visibility="gone" />
+        android:visibility="gone"/>
+
+    <TextView
+        android:id="@+id/tv_guide"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_alignParentRight="true"
+        android:layout_centerVertical="true"
+        android:layout_marginRight="10dp"
+        android:gravity="center"
+        android:text="如何做任务?"
+        android:textColor="@color/white"
+        android:visibility="gone"/>
 </RelativeLayout>

+ 2 - 2
app/src/main/res/layout/usercenter_activity.xml

@@ -243,7 +243,7 @@
         <ImageView
             android:layout_width="15dp"
             android:layout_height="15dp"
-            android:src="@drawable/invite_code"/>
+            android:src="@drawable/icon_yq"/>
 
         <TextView
             android:id="@+id/tv_friend"
@@ -252,7 +252,7 @@
             android:layout_marginLeft="@dimen/content_padding_small"
             android:layout_weight="1"
             android:gravity="center_vertical"
-            android:text="我的好友"
+            android:text="邀请好友"
             android:textColor="@color/black_dark"
             android:textSize="14sp"/>
     </LinearLayout>