Просмотр исходного кода

webview 视频播放,适配8.0手机,审核修改优化、APP意见反馈优化、跳过登录优化

liujiangyao лет назад: 7
Родитель
Сommit
e9e38dabea

+ 29 - 0
app/src/main/java/com/sheep/gamegroup/util/CommonUtil.java

@@ -39,6 +39,7 @@ import com.sheep.gamegroup.event.EventTypes;
 import com.sheep.gamegroup.greendao.DDProviderHelper;
 import com.sheep.gamegroup.greendao.download.AcceptTaskRecord;
 import com.sheep.gamegroup.greendao.download.DownLoadInfo;
+import com.sheep.gamegroup.helper.TaskHelper;
 import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.entity.DialogConfig;
 import com.sheep.gamegroup.model.entity.Ext;
@@ -148,6 +149,7 @@ public class CommonUtil {
     public static String GAME_OPEN = "开始试玩";
     public static String GAME_RESERVATION = "预约游戏";
     public static String TASK_OFFLINE = "任务已下线";
+    public static String TASK_AUDIT = "audit";
     private static CommonUtil commonUtil;
 
     public static CommonUtil getInstance() {
@@ -2522,4 +2524,31 @@ public class CommonUtil {
             }
         }
     }
+
+    /**
+     * 给任务设置标签
+     */
+    public void setTaskTag(Context context, View itemView, TaskReleaseEty taskReleaseEty, String show_type ){
+        int from = 0;
+        if(show_type.equals(TASK_AUDIT)){
+            from = 2;
+        }else
+        if(!TextUtils.isEmpty(show_type))
+            from = 1;
+        switch (from) {
+            case 1://来自主页
+                TaskHelper.setTaskTypeText((TextView) itemView.findViewById(R.id.item_num_tv), taskReleaseEty);
+                TaskHelper.setTaskTagText((TextView) itemView.findViewById(R.id.item_num_tv1), taskReleaseEty);
+                TaskHelper.setNumText((TextView) itemView.findViewById(R.id.item_num_tv2), taskReleaseEty);
+                break;
+            case 2:
+                TaskHelper.setTaskTagText((TextView) itemView.findViewById(R.id.item_num_tv), taskReleaseEty);
+                break;
+            default:
+                TaskHelper.setTaskTagText((TextView) itemView.findViewById(R.id.item_num_tv), taskReleaseEty);
+                TaskHelper.setNumText((TextView) itemView.findViewById(R.id.item_num_tv1), taskReleaseEty);
+                break;
+        }
+
+    }
 }

+ 1 - 0
app/src/main/java/com/sheep/gamegroup/util/Jump2View.java

@@ -264,6 +264,7 @@ public class Jump2View {
             MyDbManager.getInstance().saveOrUpdate(newbie_task_record);
             checkOrGoHomePage((Activity) context);
         } else {
+            G.showToast(context.getString(R.string.login_success));
             context.startActivity(intent);
         }
     }

+ 76 - 29
app/src/main/java/com/sheep/gamegroup/view/activity/ActFindInformation.java

@@ -4,7 +4,9 @@ import android.app.Activity;
 import android.content.Context;
 import android.content.Intent;
 import android.content.pm.ActivityInfo;
+import android.content.res.Configuration;
 import android.graphics.PixelFormat;
+import android.os.Build;
 import android.support.v4.widget.SwipeRefreshLayout;
 import android.support.v7.widget.LinearLayoutManager;
 import android.support.v7.widget.RecyclerView;
@@ -16,11 +18,10 @@ import android.view.View;
 import android.view.ViewGroup;
 import android.view.WindowManager;
 
-import com.tencent.smtt.export.external.interfaces.IX5WebChromeClient;
-import com.tencent.smtt.sdk.WebChromeClient;
-import com.tencent.smtt.sdk.WebSettings;
-import com.tencent.smtt.sdk.WebView;
-import com.tencent.smtt.sdk.WebViewClient;
+import android.webkit.WebChromeClient;
+import android.webkit.WebSettings;
+import android.webkit.WebView;
+import android.webkit.WebViewClient;
 import android.widget.FrameLayout;
 import android.widget.ImageView;
 import android.widget.TextView;
@@ -91,7 +92,7 @@ public class ActFindInformation extends BaseActivity implements Action1<Integer>
     protected final FrameLayout.LayoutParams COVER_SCREEN_PARAMS = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
     private View customView;
     private FrameLayout fullscreenContainer;
-    private IX5WebChromeClient.CustomViewCallback customViewCallback;
+    private WebChromeClient.CustomViewCallback customViewCallback;
 
 
     @BindView(R.id.refresh)
@@ -165,24 +166,43 @@ public class ActFindInformation extends BaseActivity implements Action1<Integer>
 
 
     public void initWebView() {
+//        getWindow().setFlags(WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED,
+//                WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);
+
         WebChromeClient wvcc = new WebChromeClient();
-        WebSettings webSettings = webView.getSettings();
-        webSettings.setJavaScriptEnabled(true);
-        webSettings.setUseWideViewPort(true); // 关键点
-        webSettings.setAllowFileAccess(true); // 允许访问文件
-        webSettings.setSupportZoom(true); // 支持缩放
-        webSettings.setLoadWithOverviewMode(true);//是否支持全屏
-        webSettings.setDomStorageEnabled(true);
-        webSettings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK); // 加载缓存内容
-        webSettings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);// 自适应屏幕
+        WebSettings webSetting = webView.getSettings();
+        webSetting.setJavaScriptEnabled(true);
+        webSetting.setJavaScriptCanOpenWindowsAutomatically(true);
+        webSetting.setAllowFileAccess(true);
+        webSetting.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NARROW_COLUMNS);
+        webSetting.setSupportZoom(true);
+        webSetting.setBuiltInZoomControls(true);
+        webSetting.setUseWideViewPort(true);
+        webSetting.setSupportMultipleWindows(true);
+        webSetting.setAppCacheEnabled(true);
+        webSetting.setDatabaseEnabled(true);
+        webSetting.setDomStorageEnabled(true);
+        webSetting.setGeolocationEnabled(true);
+        webSetting.setAppCacheMaxSize(Long.MAX_VALUE);
+        webSetting.setPluginState(WebSettings.PluginState.ON_DEMAND);
+        webSetting.setRenderPriority(WebSettings.RenderPriority.HIGH);
+        webSetting.setCacheMode(android.webkit.WebSettings.LOAD_NO_CACHE);
+
+
+        webSetting.setCacheMode(android.webkit.WebSettings.LOAD_DEFAULT);
+        webSetting.setLoadWithOverviewMode(true);
         getWindow().setFormat(PixelFormat.TRANSLUCENT);
         webView.setWebChromeClient(wvcc);
         WebViewClient wvc = new WebViewClient() {
             @Override
             public boolean shouldOverrideUrlLoading(WebView view, String url) {
-                webView.loadUrl(url);
-                Jump2View.getInstance().goWeb(ActFindInformation.this, url);
-                return true;
+                //Android8.0以下的需要返回true 并且需要loadUrl;8.0之后效果相反
+                if(Build.VERSION.SDK_INT<26) {
+                    webView.loadUrl(url);
+                    Jump2View.getInstance().goWeb(ActFindInformation.this, url);
+                    return true;
+                }
+                return false;
             }
         };
         webView.setWebChromeClient(new WebChromeClient() {
@@ -200,7 +220,8 @@ public class ActFindInformation extends BaseActivity implements Action1<Integer>
             }
 
             @Override
-            public void onShowCustomView(View view, IX5WebChromeClient.CustomViewCallback callback) {
+            public void onShowCustomView(View view, CustomViewCallback callback) {
+                super.onShowCustomView(view, callback);
                 showCustomView(view, callback);
                 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);//设置横屏
             }
@@ -209,6 +230,7 @@ public class ActFindInformation extends BaseActivity implements Action1<Integer>
             public void onHideCustomView() {
                 hideCustomView();
                 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);//设置竖屏
+                super.onHideCustomView();
             }
         });
         webView.setWebViewClient(wvc);
@@ -218,7 +240,7 @@ public class ActFindInformation extends BaseActivity implements Action1<Integer>
      * 视频播放全屏
      */
 
-    private void showCustomView(View view, IX5WebChromeClient.CustomViewCallback callback) {
+    private void showCustomView(View view, WebChromeClient.CustomViewCallback callback) {
         // if a view already exists then immediately terminate the new one
         if (customView != null) {
             callback.onCustomViewHidden();
@@ -316,7 +338,7 @@ public class ActFindInformation extends BaseActivity implements Action1<Integer>
         initWebView();
 
 
-        ViewUtil.loadDataWithBaseURL(webView, findItem.getContent());
+        ViewUtil.loadDataWithBaseURL(webView, /*findItem.getContent()*/"<iframe class=\"x-video\" frameborder=\"0\" allowfullscreen=\"true\" src=\"https://crazynote.v.netease.com/2018/0914/96648763b70deb3dd0a687a48a1892e2qt.mp4\"></iframe><p><br></p>");
         LogUtil.logI("结果为——-----" + findItem.getContent());
        /* webView.setWebViewClient(new WebViewClient() {
             @Override
@@ -428,7 +450,7 @@ public class ActFindInformation extends BaseActivity implements Action1<Integer>
             findItem = data;
             list.clear();
             list.add("top");
-            list.add("bottom");
+//            list.add("bottom");
             notifyDataSetChanged();
             if (findItem.getRelease_task_id() != 0) {//包含任务
                 taskHelper.initAcceptedTask(ActFindInformation.this, findItem.getRelease_task_id());
@@ -625,7 +647,7 @@ public class ActFindInformation extends BaseActivity implements Action1<Integer>
         taskHelper.onResume();
         try {
             if (webView != null) {
-                webView.resumeTimers();
+//                webView.resumeTimers();
                 webView.onResume();
                 webView.getClass().getMethod("onResume").invoke(webView, (Object[]) null);
             }
@@ -636,17 +658,17 @@ public class ActFindInformation extends BaseActivity implements Action1<Integer>
 
     @Override
     protected void onDestroy() {
-        super.onDestroy();
         LogUtil.logI("释放资源");
         EventBus.getDefault().unregister(this);
         taskHelper.destroy();
         if (webView != null) {
-            webView.onPause();
-            webView.freeMemory();
-            webView.removeAllViews();
+//            webView.onPause();
+//            webView.freeMemory();
+//            webView.removeAllViews();
             webView.destroy();
-            webView = null;
+//            webView = null;
         }
+        super.onDestroy();
         ActFindInformation.this.finish();
     }
 
@@ -673,7 +695,7 @@ public class ActFindInformation extends BaseActivity implements Action1<Integer>
         super.onPause();
         if (webView != null) {
             webView.onPause();
-            webView.pauseTimers();
+//            webView.pauseTimers();
             try {
                 webView.getClass().getMethod("onPause").invoke(webView, (Object[]) null);
             } catch (Exception e) {
@@ -681,4 +703,29 @@ public class ActFindInformation extends BaseActivity implements Action1<Integer>
             }
         }
     }
+
+    @Override
+    public void onBackPressed() {
+        if (webView != null && webView.canGoBack()) {
+            webView.goBack();
+            return;
+        }
+        super.onBackPressed();
+    }
+
+
+    @Override
+    public void onConfigurationChanged(Configuration config) {
+        super.onConfigurationChanged(config);
+        switch (config.orientation) {
+            case Configuration.ORIENTATION_LANDSCAPE:
+                getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
+                getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
+                break;
+            case Configuration.ORIENTATION_PORTRAIT:
+                getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
+                getWindow().addFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
+                break;
+        }
+    }
 }

+ 34 - 29
app/src/main/java/com/sheep/gamegroup/view/activity/ChangeTelAct.java

@@ -26,6 +26,7 @@ import com.sheep.gamegroup.util.UMConfigUtils;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.utils.G;
+import com.sheep.jiuyan.samllsheep.utils.SpUtils;
 import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
 
 import javax.inject.Inject;
@@ -115,33 +116,42 @@ public class ChangeTelAct extends BaseActivity implements PhoneContract.View {
                         toFinish();
                     }
                 });
+        int skip_login = SpUtils.getOrder(SpUtils.SKIP_LOGIN_FLAG);
         switch (where_from) {
             case FROM_SPLASH://非第一次登录(如:登录后直接重启),老用户需要绑定手机号
-                titleBarUtils.setRightBtn(this, "跳过", 0, new View.OnClickListener() {
-                    @Override
-                    public void onClick(View view) {
-//                        Intent intent = new Intent(activity, ActMain.class).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
-//                        activity.startActivity(intent);
-//                        activity.finish();
-                        startMainAct();
-                    }
-                });
+                if(skip_login == 1){
+
+                    startMainAct();
+                }else {
+                    titleBarUtils.setRightBtn(this, "跳过", 0, new View.OnClickListener() {
+                        @Override
+                        public void onClick(View view) {
+
+                            SpUtils.saveOrder(SpUtils.SKIP_LOGIN_FLAG, 1);
+                            startMainAct();
+                        }
+                    });
+                }
+
                 break;
             case FROM_LOGIN://用户可以跳过
-                titleBarUtils.setRightBtn(this, "跳过", 0, new View.OnClickListener() {
-                    @Override
-                    public void onClick(View view) {
-                        Jump2View.getInstance().checkLabel(activity, new Action1<BaseMessage>() {
-                            @Override
-                            public void call(BaseMessage baseMessage) {
-//                                Intent intent = new Intent(activity, ActMain.class);
-//                                activity.startActivity(intent);
-//                                activity.finish();
-                                startMainAct();
-                            }
-                        });
-                    }
-                });
+                if(skip_login == 1){
+
+                    startMainAct();
+                }else {
+                    titleBarUtils.setRightBtn(this, "跳过", 0, new View.OnClickListener() {
+                        @Override
+                        public void onClick(View view) {
+                            Jump2View.getInstance().checkLabel(activity, new Action1<BaseMessage>() {
+                                @Override
+                                public void call(BaseMessage baseMessage) {
+                                    SpUtils.saveOrder(SpUtils.SKIP_LOGIN_FLAG, 1);
+                                    startMainAct();
+                                }
+                            });
+                        }
+                    });
+                }
                 break;
             case 30001:
             default:
@@ -164,24 +174,19 @@ public class ChangeTelAct extends BaseActivity implements PhoneContract.View {
     private void startMainAct() {
         Intent intent = new Intent(activity, ActMain.class).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
         activity.startActivity(intent);
+        G.showToast(activity.getString(R.string.login_success));
         activity.finish();
     }
 
     private void toFinish() {
         switch (where_from) {
             case FROM_SPLASH://非第一次登录(如:登录后直接重启),老用户需要绑定手机号
-//                Intent intent = new Intent(activity, ActMain.class);
-//                startActivity(intent);
-//                finish();
                 startMainAct();
                 break;
             case FROM_LOGIN://第一次登录,老用户需要绑定手机号
                 Jump2View.getInstance().checkLabel(activity, new Action1<BaseMessage>() {
                     @Override
                     public void call(BaseMessage baseMessage) {
-//                        Intent intent = new Intent(activity, ActMain.class);
-//                        activity.startActivity(intent);
-//                        activity.finish();
                         startMainAct();
                     }
                 });

+ 5 - 0
app/src/main/java/com/sheep/gamegroup/view/activity/FeedbackAct.java

@@ -29,9 +29,12 @@ public class FeedbackAct extends BaseActivity {
     TextInputEditText feedbookEt;
     @BindView(R.id.feedbook_email_et)
     TextInputEditText feedbookEmailEt;
+    @BindView(R.id.feedbook_qq_et)
+    TextInputEditText feedbook_qq_et;
 
     private String Content;
     private String Email;
+    private String qq;
 
     @Override
     protected int getLayoutId() {
@@ -68,6 +71,7 @@ public class FeedbackAct extends BaseActivity {
         USER_FEEDBACK_COMMIT.onEvent();
         Content = feedbookEt.getText() + "";
         Email = feedbookEmailEt.getText() + "";
+        qq = feedbook_qq_et.getText() + "";
         if (android.text.TextUtils.isEmpty(Content)) {
             G.showToast(getResources().getString(R.string.feedback_notice_input_advice));
             return;
@@ -75,6 +79,7 @@ public class FeedbackAct extends BaseActivity {
         JSONObject jsonObject = new JSONObject();
         jsonObject.put("Content", Content);
         jsonObject.put("Email", Email + "");
+        jsonObject.put("QQ", qq + "");
         SheepApp.getInstance()
                 .getNetComponent()
                 .getApiService()

+ 0 - 1
app/src/main/java/com/sheep/gamegroup/view/activity/LoginAct.java

@@ -259,7 +259,6 @@ public class LoginAct extends BaseUMActivity implements LoginContract.View {
 
     @Override
     public void NetSuccess(int code, String msg, String invitation_code) {
-        G.showToast(msg);
         hideProgress();
         if(TextUtils.isEmpty(SheepApp.getInstance().getGameCode())){
             Jump2View.getInstance().goHomePageView(this, invitation_code);

+ 3 - 1
app/src/main/java/com/sheep/gamegroup/view/adapter/TaskListItemAdp.java

@@ -15,6 +15,7 @@ import com.bumptech.glide.request.RequestOptions;
 import com.kfzs.duanduan.utils.NumberFormatUtils;
 import com.sheep.gamegroup.model.entity.TaskAcceptedEty;
 import com.sheep.gamegroup.presenter.TaskListPresenter;
+import com.sheep.gamegroup.util.CommonUtil;
 import com.sheep.gamegroup.util.Jump2View;
 import com.sheep.gamegroup.util.TestUtil;
 import com.sheep.gamegroup.util.TimeUtil;
@@ -90,7 +91,7 @@ public class TaskListItemAdp extends BaseAdapter {
         }
 
         ViewUtil.setText(holder.name_tv, ety.getRelease_task().getName());
-        ViewUtil.setText(holder.date_tv, TimeUtil.getDate(TimeUtil.FORMAT, NumberFormatUtils.parseLong(ety.getUpdate_time())));
+        ViewUtil.setText(holder.date_tv, context.getString(R.string.commit_time_point) + TimeUtil.getDate(TimeUtil.FORMAT, NumberFormatUtils.parseLong(ety.getUpdate_time())));
         String stateStr;
         if(ety.getStatus() == 3){
             stateStr = String.format(Locale.CHINA, "+%s元", ety.getRelease_task().getBonusText());
@@ -99,6 +100,7 @@ public class TaskListItemAdp extends BaseAdapter {
             stateStr = String.format(Locale.CHINA, "%s元", ety.getRelease_task().getBonusText());
             holder.price_tv.setTextColor(context.getResources().getColor(R.color.time_created));
         }
+        CommonUtil.getInstance().setTaskTag(context, convertView, ety.getRelease_task(),CommonUtil.TASK_AUDIT);
         holder.price_tv.setText(stateStr);
         convertView.setOnClickListener(new View.OnClickListener() {
             @Override

+ 2 - 23
app/src/main/java/com/sheep/gamegroup/view/adapter/TryMakeMoneyAdp.java

@@ -565,7 +565,7 @@ public class TryMakeMoneyAdp extends AdbCommonRecycler<RecyleObj> {
                 }
                 viewHolder.itemView.setTag(TAG_ID_TEMP, etyList.get(i).getId());
                 ((TextView) viewHolder.itemView.findViewById(R.id.item_name_tv)).setText(taskReleaseEty.getName() + "");
-                setCommonViewData(viewHolder.itemView, taskReleaseEty);
+                CommonUtil.getInstance().setTaskTag(context, viewHolder.itemView, taskReleaseEty,show_type);
                 ((TextView) viewHolder.itemView.findViewById(R.id.item_money)).setText("+" + taskReleaseEty.getBonusText() + "元");
 
                 GlideImageLoader.setGameImage((ImageView) viewHolder.itemView.findViewById(R.id.item_icon_iv), taskEty.getIcon());
@@ -696,27 +696,6 @@ public class TryMakeMoneyAdp extends AdbCommonRecycler<RecyleObj> {
     }
 
     /**
-     * 一样相同组件与数据的设置
-     * @param itemView
-     * @param taskReleaseEty
-     */
-    private void setCommonViewData(View itemView, TaskReleaseEty taskReleaseEty) {
-        if(!TextUtils.isEmpty(show_type))
-            from = 1;
-        switch (from) {
-            case 1://来自主页
-                TaskHelper.setTaskTypeText((TextView) itemView.findViewById(R.id.item_num_tv), taskReleaseEty);
-                TaskHelper.setTaskTagText((TextView) itemView.findViewById(R.id.item_num_tv1), taskReleaseEty);
-                TaskHelper.setNumText((TextView) itemView.findViewById(R.id.item_num_tv2), taskReleaseEty);
-                break;
-            default:
-                TaskHelper.setTaskTagText((TextView) itemView.findViewById(R.id.item_num_tv), taskReleaseEty);
-                TaskHelper.setNumText((TextView) itemView.findViewById(R.id.item_num_tv1), taskReleaseEty);
-                break;
-        }
-    }
-
-    /**
      * 暂时这么处理,也许以后也是列表了
      * @param holder
      * @param etyList
@@ -764,7 +743,7 @@ public class TryMakeMoneyAdp extends AdbCommonRecycler<RecyleObj> {
 
 
                 ((TextView)viewHolder.itemView.findViewById(R.id.item_name_tv)).setText(taskReleaseEty.getName()+"");
-                setCommonViewData(viewHolder.itemView, taskReleaseEty);
+                CommonUtil.getInstance().setTaskTag(context, viewHolder.itemView, taskReleaseEty,show_type);
                 ((TextView)viewHolder.itemView.findViewById(R.id.item_money)).setText("+"+ taskReleaseEty.getBonusText() +"元");
                 if(!taskReleaseEty.getDeadline().equals("永久")){
                     ((TextView)viewHolder.itemView.findViewById(R.id.item_date_tv)).setText(

+ 2 - 0
app/src/main/java/com/sheep/jiuyan/samllsheep/utils/SpUtils.java

@@ -11,6 +11,8 @@ import com.sheep.jiuyan.samllsheep.SheepApp;
 
 public class SpUtils {
 
+    public static String SKIP_LOGIN_FLAG = "skip_login";
+
     public static String getToken(Context context) {
         SharedPreferences user = context.getSharedPreferences("user", Context.MODE_PRIVATE);
         return user.getString("wx_openId", "");

+ 31 - 2
app/src/main/res/layout/act_feedback_layout.xml

@@ -56,7 +56,7 @@
                     style="@style/edt_style_gray"
                     android:layout_marginBottom="@dimen/content_padding_20"/>
                 <LinearLayout
-                    android:id="@+id/feedbook_email_layout"
+                    android:id="@+id/feedbook_qq_layout"
                     android:layout_below="@+id/feedbook_et"
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
@@ -67,7 +67,36 @@
                         android:layout_height="wrap_content"
                         style="@style/txt_style_15_black"
                         android:textSize="@dimen/text_size_12"
-                        android:text="@string/contact_qq_email"
+                        android:text="@string/contact_qq"
+                        android:layout_gravity="center_vertical"/>
+
+                    <android.support.design.widget.TextInputEditText
+                        android:id="@+id/feedbook_qq_et"
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:layout_marginStart="5dp"
+                        android:hint="@string/feedback_notice_input_email_address"
+                        android:gravity="top"
+                        android:text=""
+                        android:lines="2"
+                        android:inputType="textEmailAddress"
+                        style="@style/edt_style_gray"
+                        android:layout_gravity="center_vertical"/>
+                </LinearLayout>
+                <LinearLayout
+                    android:id="@+id/feedbook_email_layout"
+                    android:layout_below="@+id/feedbook_qq_layout"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:orientation="horizontal"
+                    android:gravity="center_vertical"
+                    android:layout_marginTop="@dimen/content_padding_8">
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        style="@style/txt_style_15_black"
+                        android:textSize="@dimen/text_size_12"
+                        android:text="@string/contact_email"
                         android:layout_gravity="center_vertical"/>
 
                     <android.support.design.widget.TextInputEditText

+ 5 - 4
app/src/main/res/layout/find_information_top.xml

@@ -1,8 +1,9 @@
 <?xml version="1.0" encoding="utf-8"?>
 <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
-    android:layout_height="wrap_content"
+    android:layout_height="match_parent"
     android:padding="@dimen/content_padding"
     android:background="@color/white">
 
@@ -54,11 +55,11 @@
         android:background="@color/theme_app_divider_color"
         android:layout_marginTop="@dimen/content_padding_10"
         app:layout_constraintTop_toBottomOf="@+id/find_information_time"/>
-    <com.sheep.gamegroup.view.customview.WebViewForScrollView
+    <WebView
         android:id="@+id/find_information_content_wb"
         android:layout_width="match_parent"
-        android:layout_height="match_parent"
+        android:layout_height="wrap_content"
         android:layout_marginTop="@dimen/content_padding_10"
         app:layout_constraintTop_toBottomOf="@+id/find_information_line"
-        app:layout_constraintBottom_toBottomOf="parent"/>
+        tools:ignore="WebViewLayout" />
 </android.support.constraint.ConstraintLayout>

+ 37 - 1
app/src/main/res/layout/task_list_item.xml

@@ -35,12 +35,48 @@
                 android:ellipsize="end"
                 android:layout_marginTop="@dimen/content_padding_small"/>
 
+
+            <LinearLayout
+                android:id="@+id/tag_layout"
+                android:layout_below="@+id/name_tv"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:gravity="center_vertical"
+                android:orientation="horizontal">
+
+                <TextView
+                    android:id="@+id/item_num_tv"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text=""
+                    android:textColor="#cc8e8e8e"
+                    android:textSize="10sp" />
+
+                <TextView
+                    android:id="@+id/item_num_tv1"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_marginStart="@dimen/content_padding"
+                    android:text=""
+                    android:textColor="#cc8e8e8e"
+                    android:textSize="10sp"
+                    android:visibility="gone" />
+                <TextView
+                    android:id="@+id/item_num_tv2"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_marginStart="@dimen/content_padding"
+                    android:text=""
+                    android:textColor="#cc8e8e8e"
+                    android:textSize="10sp"
+                    android:visibility="gone" />
+            </LinearLayout>
             <TextView
                 android:id="@+id/date_tv"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:text="2018/02/14 14:41"
-                android:layout_below="@+id/name_tv"
+                android:layout_below="@+id/tag_layout"
                 android:textSize="@dimen/text_size_2"
                 android:textColor="@color/txt_black_818181"
                 android:layout_marginBottom="@dimen/content_padding_small"/>

Разница между файлами не показана из-за своего большого размера
+ 7 - 3
app/src/main/res/values/strings.xml