Commit bf74e70d authored by jianglx's avatar jianglx

积分,活动,分享有礼初次提交

parent 6320e5dc
...@@ -14,9 +14,11 @@ import android.widget.ImageView; ...@@ -14,9 +14,11 @@ import android.widget.ImageView;
import android.widget.TextView; import android.widget.TextView;
import android.widget.Toast; import android.widget.Toast;
import com.frame.rv.config.RvFrameConfig;
import com.ruiwenliu.wrapper.base.BaseActivity; import com.ruiwenliu.wrapper.base.BaseActivity;
import com.ruiwenliu.wrapper.base.BaseBean; import com.ruiwenliu.wrapper.base.BaseBean;
import com.ruiwenliu.wrapper.base.BaseWrapperFragment; import com.ruiwenliu.wrapper.base.BaseWrapperFragment;
import com.ruiwenliu.wrapper.bean.ActBean;
import com.ruiwenliu.wrapper.util.listener.SwitchFragment; import com.ruiwenliu.wrapper.util.listener.SwitchFragment;
import com.ruiwenliu.wrapper.weight.CustomScrollViewPager; import com.ruiwenliu.wrapper.weight.CustomScrollViewPager;
import com.ruiwenliu.wrapper.weight.TitleView; import com.ruiwenliu.wrapper.weight.TitleView;
...@@ -28,6 +30,7 @@ import com.ruiwenliu.wrapper.adapter.TabAdapter; ...@@ -28,6 +30,7 @@ import com.ruiwenliu.wrapper.adapter.TabAdapter;
import com.rv.home.rv.module.ui.main.home.HomeFragment; import com.rv.home.rv.module.ui.main.home.HomeFragment;
import com.rv.home.rv.module.ui.main.home.bean.EffectiveTimeBean; import com.rv.home.rv.module.ui.main.home.bean.EffectiveTimeBean;
import com.rv.rvmine.MineFragment; import com.rv.rvmine.MineFragment;
import com.rv.share.WebViewActivity;
import com.rv.share.view.PromotionDialog; import com.rv.share.view.PromotionDialog;
import com.rv.tourism.R2; import com.rv.tourism.R2;
import com.rv.tourism.TourismFragment; import com.rv.tourism.TourismFragment;
...@@ -37,6 +40,7 @@ import com.xxfc.discovery.DiscoveryFragment; ...@@ -37,6 +40,7 @@ import com.xxfc.discovery.DiscoveryFragment;
import com.yuyife.okgo.OkGoUtil; import com.yuyife.okgo.OkGoUtil;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -78,6 +82,7 @@ public class MainActivity extends BaseActivity<CommonPresenter> { ...@@ -78,6 +82,7 @@ public class MainActivity extends BaseActivity<CommonPresenter> {
private long exitTime = 0; private long exitTime = 0;
private UpdateAppUtils updateAppUtils; private UpdateAppUtils updateAppUtils;
private PromotionDialog promotionDialog;
public static Intent getIntent(Context context) { public static Intent getIntent(Context context) {
return new Intent(context, MainActivity.class); return new Intent(context, MainActivity.class);
...@@ -108,17 +113,10 @@ public class MainActivity extends BaseActivity<CommonPresenter> { ...@@ -108,17 +113,10 @@ public class MainActivity extends BaseActivity<CommonPresenter> {
@Override @Override
protected void loadData(Bundle savedInstanceState, Intent intent) { protected void loadData(Bundle savedInstanceState, Intent intent) {
checkVersion();
getEffectiveTime(); getEffectiveTime();
if (isLogin()) { // 已经登录 getActivityPopup();
PromotionDialog dialog = new PromotionDialog.Builder(this, new View.OnClickListener() { checkVersion();
@Override
public void onClick(View view) {
}
}).create();
dialog.show();
}
} }
...@@ -149,11 +147,42 @@ public class MainActivity extends BaseActivity<CommonPresenter> { ...@@ -149,11 +147,42 @@ public class MainActivity extends BaseActivity<CommonPresenter> {
Cooker.save(getApplicationContext(), "actMember", bean.getData().getActMember()); Cooker.save(getApplicationContext(), "actMember", bean.getData().getActMember());
} }
break; break;
case 2:
final ActBean actBean = (ActBean) result;
if (actBean != null && actBean.isRel() && actBean.getData() != null && actBean.getData().size() > 0) {
final ActBean.Act act = actBean.getData().get(0);
promotionDialog = new PromotionDialog.Builder(this, new View.OnClickListener() {
@Override
public void onClick(View view) {
promotionDialog.dismiss();
postActivityPopup(act.getId());
startActivity(WebViewActivity.getIntent(getApplicationContext(), act.getUrl(), act.getName()));
}
}).setData(act).create();
promotionDialog.show();
}
break;
default: default:
break; break;
} }
} }
private void getActivityPopup() {
Map<String, Object> map = new HashMap<>();
if (!TextUtils.isEmpty(OkGoUtil.getToken())) {
map.put("Authorization", OkGoUtil.getToken());
}
mPresenter.getDataHead(RvFrameConfig.HOST,2, ApiConfig.HTTP_URL_GET_ACT, ActBean.class, map, true);
}
private void postActivityPopup(int id) {
if (!TextUtils.isEmpty(OkGoUtil.getToken())) {
Map<String, Object> map = new HashMap<>();
map.put("Authorization", OkGoUtil.getToken());
mPresenter.postData(1000, String.format(ApiConfig.HTTP_URL_POST_ACT, id), BaseBean.class, map, false);
}
}
@OnClick({R2.id.rl_home, R2.id.rl_travel, R2.id.rl_camp, R2.id.rl_found, R2.id.rl_mine}) @OnClick({R2.id.rl_home, R2.id.rl_travel, R2.id.rl_camp, R2.id.rl_found, R2.id.rl_mine})
public void onViewClicked(View view) { public void onViewClicked(View view) {
......
...@@ -3,13 +3,11 @@ package com.xxfc.rv; ...@@ -3,13 +3,11 @@ package com.xxfc.rv;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.Log;
import com.ruiwenliu.wrapper.base.BaseActivity; import com.ruiwenliu.wrapper.base.BaseActivity;
import com.ruiwenliu.wrapper.base.BaseBean; import com.ruiwenliu.wrapper.base.BaseBean;
import com.ruiwenliu.wrapper.util.UtilsManager; import com.ruiwenliu.wrapper.util.UtilsManager;
import com.ruiwenliu.wrapper.weight.TitleView; import com.ruiwenliu.wrapper.weight.TitleView;
import com.rv.component.utils.Cooker; import com.rv.component.utils.Cooker;
import com.rv.component.utils.LogUtil; import com.rv.component.utils.LogUtil;
import com.rv.home.rv.module.basic.presenter.CommonPresenter; import com.rv.home.rv.module.basic.presenter.CommonPresenter;
...@@ -53,18 +51,13 @@ public class WelcomeActivity extends BaseActivity<CommonPresenter> { ...@@ -53,18 +51,13 @@ public class WelcomeActivity extends BaseActivity<CommonPresenter> {
public void onGetInfoFinish(String info) { public void onGetInfoFinish(String info) {
// 客户端获取到的参数是json字符串格式 // 客户端获取到的参数是json字符串格式
LogUtil.d("ShareInstall", "info = " + info); LogUtil.d("ShareInstall", "info = " + info);
if (info.contains("code"))
try { try {
JSONObject object = new JSONObject(info); JSONObject object = new JSONObject(info);
String inviteCode = object.optString("code");
String inviteCode = object.optString("token"); if (!TextUtils.isEmpty(inviteCode)) {
Cooker.save(getApplicationContext(), "code", inviteCode);
if(!TextUtils.isEmpty(inviteCode)){
Cooker.save(getApplicationContext(),"invite_code",inviteCode);
} }
// // 通过该方法拿到设置的渠道值,剩余值为自定义的其他参数
// String channel = object.optString("channel");
// LogUtil.d("ShareInstall", "channel = " + channel);
} catch (JSONException e) { } catch (JSONException e) {
e.printStackTrace(); e.printStackTrace();
} }
......
...@@ -8,12 +8,13 @@ package com.frame.rv.config; ...@@ -8,12 +8,13 @@ package com.frame.rv.config;
*/ */
public interface RvFrameConfig extends RvFrameConstant { public interface RvFrameConfig extends RvFrameConstant {
String HOST = "https://xxtest.upyuns.com"; // String HOST = "https://xxtest.upyuns.com";
// String HOST = "http://10.1.37.192:8765"; // String HOST = "http://10.1.37.192:8765";
// String HOST = "http://10.1.37.245:8765"; // String HOST = "http://10.1.37.245:8765";
// String HOST = "http://10.1.37.248:8765"; // String HOST = "http://10.1.37.246:8765";
// String HOST = "http://10.1.37.244:9527"; // String HOST = "http://10.1.37.244:8765";
String ADMIN_POST =HOST + "/api/admin/"; String HOST = "https://dev.dfangche.com";
String ADMIN_POST = HOST + "/api/admin/";
String AUTH_POST = HOST + "/api/auth/"; String AUTH_POST = HOST + "/api/auth/";
String VEHICLE_POST = HOST + "/vehicle/";//租车 String VEHICLE_POST = HOST + "/vehicle/";//租车
String VEHICLE_CAR_POST = HOST + "/vehicle/";//租车 String VEHICLE_CAR_POST = HOST + "/vehicle/";//租车
......
...@@ -10,4 +10,5 @@ public final class SPConstance { ...@@ -10,4 +10,5 @@ public final class SPConstance {
public static final String USER_JSON_IMUSERID ="imUserId"; public static final String USER_JSON_IMUSERID ="imUserId";
public static final String USER_JSON_ISCERTIFICATIONSTATUS ="CertificationStatus"; public static final String USER_JSON_ISCERTIFICATIONSTATUS ="CertificationStatus";
public static final String USER_JSON_USERINFO ="userinfo"; public static final String USER_JSON_USERINFO ="userinfo";
public static final String USER_JSON_CODE = "userCode";
} }
...@@ -83,7 +83,6 @@ public abstract class BaseActivity<P extends MvpPresenter> extends BaseWrapperAc ...@@ -83,7 +83,6 @@ public abstract class BaseActivity<P extends MvpPresenter> extends BaseWrapperAc
if (!TextUtils.isEmpty(errorMsg)) { if (!TextUtils.isEmpty(errorMsg)) {
showToast(errorMsg); showToast(errorMsg);
} }
} }
......
package com.ruiwenliu.wrapper.bean;
import com.ruiwenliu.wrapper.base.BaseBean;
import java.util.List;
/*****
* 活动
*/
public class ActBean extends BaseBean {
private boolean rel;
private List<Act> data;
public boolean isRel() {
return rel;
}
public void setRel(boolean rel) {
this.rel = rel;
}
public List<Act> getData() {
return data;
}
public void setData(List<Act> data) {
this.data = data;
}
public static class Act {
private int id;
private String name;
private String descr;
private int type;
private String url;
private String buttonImages;
private String background;
private long startTime;
private long endTime;
private int sort;
private long crtTime;
private long updTime;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDescr() {
return descr;
}
public void setDescr(String descr) {
this.descr = descr;
}
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getButtonImages() {
return buttonImages;
}
public void setButtonImages(String buttonImages) {
this.buttonImages = buttonImages;
}
public String getBackground() {
return background;
}
public void setBackground(String background) {
this.background = background;
}
public long getStartTime() {
return startTime;
}
public void setStartTime(long startTime) {
this.startTime = startTime;
}
public long getEndTime() {
return endTime;
}
public void setEndTime(long endTime) {
this.endTime = endTime;
}
public int getSort() {
return sort;
}
public void setSort(int sort) {
this.sort = sort;
}
public long getCrtTime() {
return crtTime;
}
public void setCrtTime(long crtTime) {
this.crtTime = crtTime;
}
public long getUpdTime() {
return updTime;
}
public void setUpdTime(long updTime) {
this.updTime = updTime;
}
}
}
...@@ -73,5 +73,18 @@ public class ApiConfig { ...@@ -73,5 +73,18 @@ public class ApiConfig {
public static String HTTP_URR_USER_POINT = RvFrameConfig.HOST + "/api/activity/integralUserTotal/getByUser"; public static String HTTP_URR_USER_POINT = RvFrameConfig.HOST + "/api/activity/integralUserTotal/getByUser";
public static String HTTP_URL_POINT_LIST =RvFrameConfig.HOST + "/api/activity/integralRule/list"; public static String HTTP_URL_POINT_LIST = RvFrameConfig.HOST + "/api/activity/integralRule/list";
public static String HTTP_URL_POINT_SIGN_RULER = RvFrameConfig.HOST + "/api/activity/integralRule/one?code=%s";
public static String HTTP_URL_SIGN = RvFrameConfig.HOST + "/api/activity/integralSignRecord/add";
public static String HTTP_URL_SIGN_LIST = RvFrameConfig.HOST + "/api/activity/integralUserRecord/getListByCode";
public static String HTTP_URL_GET_ACT = RvFrameConfig.HOST + "/api/activity/activityPopup/app/unauth/getActivityPopup";
public static String HTTP_URL_POST_ACT = RvFrameConfig.HOST + "/api/activity/activityPopup/app/unauth/setActivityPopup/%d";
public static String HTTP_URL_PERSON_SHARE_INFO = RvFrameConfig.HOST + "/api/admin/team/promote";
public static String HTTP_URL_INCOME_RECORD = RvFrameConfig.HOST + "api/activity/activityPopularize/app/unauth/popularize-list";
} }
...@@ -119,12 +119,14 @@ public abstract class BaseLoginActivity<P extends MvpPresenter> extends BaseStat ...@@ -119,12 +119,14 @@ public abstract class BaseLoginActivity<P extends MvpPresenter> extends BaseStat
public void processLoginData(RegisteredBean bean) { public void processLoginData(RegisteredBean bean) {
RegisteredBean registeredBean = bean; RegisteredBean registeredBean = bean;
UtilsManager.getInstance(OkGoUtil.application).setSharePreferencesSave(SPConstance.USER_JSON).putString(SPConstance.USER_JSON_CODE, registeredBean.getData().getCode()).commit();
UtilsManager.getInstance(OkGoUtil.application).setSharePreferencesSave(SPConstance.USER_JSON).putString(SPConstance.USER_JSON_NAME, registeredBean.getData().getUsername()).commit(); UtilsManager.getInstance(OkGoUtil.application).setSharePreferencesSave(SPConstance.USER_JSON).putString(SPConstance.USER_JSON_NAME, registeredBean.getData().getUsername()).commit();
UtilsManager.getInstance(OkGoUtil.application).setSharePreferencesSave(SPConstance.USER_JSON).putString(SPConstance.USER_JSON_HEADERURL, registeredBean.getData().getHeaderurl()).commit(); UtilsManager.getInstance(OkGoUtil.application).setSharePreferencesSave(SPConstance.USER_JSON).putString(SPConstance.USER_JSON_HEADERURL, registeredBean.getData().getHeaderurl()).commit();
UtilsManager.getInstance(OkGoUtil.application).setSharePreferencesSave(SPConstance.USER_JSON).putString(SPConstance.USER_JSON_USERID, registeredBean.getData().getUserId()).commit(); UtilsManager.getInstance(OkGoUtil.application).setSharePreferencesSave(SPConstance.USER_JSON).putString(SPConstance.USER_JSON_USERID, registeredBean.getData().getUserId()).commit();
UtilsManager.getInstance(OkGoUtil.application).setSharePreferencesSave(SPConstance.USER_JSON).putString(SPConstance.USER_JSON_TOKEN, registeredBean.getToken()).commit(); UtilsManager.getInstance(OkGoUtil.application).setSharePreferencesSave(SPConstance.USER_JSON).putString(SPConstance.USER_JSON_TOKEN, registeredBean.getToken()).commit();
UtilsManager.getInstance(OkGoUtil.application).setSharePreferencesSave(SPConstance.USER_JSON).putString(SPConstance.USER_JSON_IMUSERID, registeredBean.getData().getImUserId()).commit(); UtilsManager.getInstance(OkGoUtil.application).setSharePreferencesSave(SPConstance.USER_JSON).putString(SPConstance.USER_JSON_IMUSERID, registeredBean.getData().getImUserId()).commit();
UtilsManager.getInstance(OkGoUtil.application).setSharePreferencesSave(SPConstance.USER_JSON).putString(SPConstance.USER_JSON_IMTOKEN, registeredBean.getData().getImToken()).commit(); UtilsManager.getInstance(OkGoUtil.application).setSharePreferencesSave(SPConstance.USER_JSON).putString(SPConstance.USER_JSON_IMTOKEN, registeredBean.getData().getImToken()).commit();
UtilsManager.getInstance(OkGoUtil.application).setSharePreferencesSave(SPConstance.USER_JSON).putString(SPConstance.USER_JSON_IMTOKEN, registeredBean.getData().getImToken()).commit();
UtilsManager.getInstance(OkGoUtil.application).setSharePreferencesSave(SPConstance.USER_JSON).putString(SPConstance.USER_JSON_ISCERTIFICATIONSTATUS, registeredBean.getData().getCertificationStatus()).commit(); UtilsManager.getInstance(OkGoUtil.application).setSharePreferencesSave(SPConstance.USER_JSON).putString(SPConstance.USER_JSON_ISCERTIFICATIONSTATUS, registeredBean.getData().getCertificationStatus()).commit();
Map<String, Object> headMap = new LinkedHashMap<>(); Map<String, Object> headMap = new LinkedHashMap<>();
......
...@@ -206,6 +206,9 @@ public class LoginRvActivity extends BaseLoginActivity<CommonPresenter> { ...@@ -206,6 +206,9 @@ public class LoginRvActivity extends BaseLoginActivity<CommonPresenter> {
/** /**
*
*
*
* 获得手机号 * 获得手机号
* *
* @return * @return
......
...@@ -20,6 +20,7 @@ import com.ruiwenliu.wrapper.base.BaseBean; ...@@ -20,6 +20,7 @@ import com.ruiwenliu.wrapper.base.BaseBean;
import com.ruiwenliu.wrapper.util.RxJavaManager; import com.ruiwenliu.wrapper.util.RxJavaManager;
import com.ruiwenliu.wrapper.util.listener.TextChangedListener; import com.ruiwenliu.wrapper.util.listener.TextChangedListener;
import com.ruiwenliu.wrapper.weight.TitleView; import com.ruiwenliu.wrapper.weight.TitleView;
import com.rv.component.utils.Cooker;
import com.rv.home.R; import com.rv.home.R;
import com.rv.home.R2; import com.rv.home.R2;
import com.rv.home.rv.module.ApiConfig; import com.rv.home.rv.module.ApiConfig;
...@@ -140,9 +141,9 @@ public class RegisteredActivity extends BaseLoginActivity<CommonPresenter> { ...@@ -140,9 +141,9 @@ public class RegisteredActivity extends BaseLoginActivity<CommonPresenter> {
etAgainPwd.setTransformationMethod(confirmShow ? HideReturnsTransformationMethod.getInstance() : PasswordTransformationMethod.getInstance()); etAgainPwd.setTransformationMethod(confirmShow ? HideReturnsTransformationMethod.getInstance() : PasswordTransformationMethod.getInstance());
} else if (view.getId() == R.id.tv_agreement) { } else if (view.getId() == R.id.tv_agreement) {
ARouter.getInstance().build(Constance.ACTIVITY_URL_WEBVIEW) ARouter.getInstance().build(Constance.ACTIVITY_URL_WEBVIEW)
.withString("title","用户协议") .withString("title", "用户协议")
.withString("url",ApiConfig.HTTP_URL_CAR_TYPE_NOTICE) .withString("url", ApiConfig.HTTP_URL_CAR_TYPE_NOTICE)
.withInt("type",15) .withInt("type", 15)
.navigation(); .navigation();
} else if (view.getId() == R.id.tv_registered) { } else if (view.getId() == R.id.tv_registered) {
if (getPwd().length() < 8) { if (getPwd().length() < 8) {
...@@ -198,6 +199,7 @@ public class RegisteredActivity extends BaseLoginActivity<CommonPresenter> { ...@@ -198,6 +199,7 @@ public class RegisteredActivity extends BaseLoginActivity<CommonPresenter> {
map.put("username", getPhone()); map.put("username", getPhone());
map.put("mobilecode", getCode()); map.put("mobilecode", getCode());
map.put("password", getPwd()); map.put("password", getPwd());
map.put("code", Cooker.getStringValue(this, "code"));
mPresenter.postData(RvFrameConfig.AUTH_POST, 1, ApiConfig.HTTP_URL_USER_REGISTER, RegisteredBean.class, map, headMap, true); mPresenter.postData(RvFrameConfig.AUTH_POST, 1, ApiConfig.HTTP_URL_USER_REGISTER, RegisteredBean.class, map, headMap, true);
} }
......
...@@ -58,6 +58,8 @@ public class RegisteredBean extends BaseBean { ...@@ -58,6 +58,8 @@ public class RegisteredBean extends BaseBean {
//实名认证状态:0-未认证,1-已认证 //实名认证状态:0-未认证,1-已认证
private String certificationStatus; private String certificationStatus;
private String code ;
public String getNickname() { public String getNickname() {
return nickname; return nickname;
} }
...@@ -113,6 +115,14 @@ public class RegisteredBean extends BaseBean { ...@@ -113,6 +115,14 @@ public class RegisteredBean extends BaseBean {
public void setCertificationStatus(String certificationStatus) { public void setCertificationStatus(String certificationStatus) {
this.certificationStatus = certificationStatus; this.certificationStatus = certificationStatus;
} }
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
} }
} }
package com.rv.home.rv.module.ui.main.home; package com.rv.home.rv.module.ui.main.home;
import android.Manifest; import android.Manifest;
import android.content.ComponentName;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.graphics.Color; import android.graphics.Color;
...@@ -54,6 +55,7 @@ import com.rv.component.utils.ObservableScrollView; ...@@ -54,6 +55,7 @@ import com.rv.component.utils.ObservableScrollView;
import com.rv.home.R; import com.rv.home.R;
import com.rv.home.R2; import com.rv.home.R2;
import com.rv.home.rv.module.ApiConfig; import com.rv.home.rv.module.ApiConfig;
import com.rv.home.rv.module.basic.WebActivity;
import com.rv.home.rv.module.basic.presenter.CommonPresenter; import com.rv.home.rv.module.basic.presenter.CommonPresenter;
import com.rv.home.rv.module.ui.main.home.adapter.HotCarTypeAdapter; import com.rv.home.rv.module.ui.main.home.adapter.HotCarTypeAdapter;
import com.rv.home.rv.module.ui.main.home.adapter.RVTourListAdapter; import com.rv.home.rv.module.ui.main.home.adapter.RVTourListAdapter;
...@@ -855,16 +857,21 @@ public class HomeFragment extends BaseFragment<CommonPresenter> implements Obser ...@@ -855,16 +857,21 @@ public class HomeFragment extends BaseFragment<CommonPresenter> implements Obser
} }
} }
private List<BeanHomeBanner.DataBean> listsBanners = new ArrayList<>();
private void bannerData(BeanHomeBanner data) { private void bannerData(BeanHomeBanner data) {
if (data != null) { if (data != null) {
listsBanners.clear();
titles.clear(); titles.clear();
images.clear(); images.clear();
listsBanners.addAll(data.getData());
for (int i = 0; i < data.getData().size(); i++) { for (int i = 0; i < data.getData().size(); i++) {
images.add(data.getData().get(i).getCover()); images.add(data.getData().get(i).getCover());
titles.add(""); titles.add("");
} }
} }
setBanner(); setBanner();
} }
private void setBanner() { private void setBanner() {
...@@ -885,6 +892,16 @@ public class HomeFragment extends BaseFragment<CommonPresenter> implements Obser ...@@ -885,6 +892,16 @@ public class HomeFragment extends BaseFragment<CommonPresenter> implements Obser
LogUtil.d("position=" + position); LogUtil.d("position=" + position);
if (listsBanners.size() > 0) {
BeanHomeBanner.DataBean bean = listsBanners.get(position);
ComponentName componentName = new ComponentName(getActivity(), "com.rv.share.WebViewActivity");
Intent intent = new Intent();
intent.setComponent(componentName);
intent.putExtra("url", bean.getUrl());
intent.putExtra("title", bean.getTitle());
startActivity(intent);
}
/* if (localImages != null && localImages.size() > 0) { /* if (localImages != null && localImages.size() > 0) {
Bundle bundle = new Bundle(); Bundle bundle = new Bundle();
bundle.putInt(ActivityImageBrowseInt.KEY_BACKGROUND, R.color.colorPrimary); bundle.putInt(ActivityImageBrowseInt.KEY_BACKGROUND, R.color.colorPrimary);
......
...@@ -46,6 +46,7 @@ import com.rv.rvmine.traveler.ChooseAVisitorActivity; ...@@ -46,6 +46,7 @@ import com.rv.rvmine.traveler.ChooseAVisitorActivity;
import com.rv.rvmine.traveler.CollectionActivity; import com.rv.rvmine.traveler.CollectionActivity;
import com.rv.rvmine.traveler.PersonalInformationActivity; import com.rv.rvmine.traveler.PersonalInformationActivity;
import com.rv.rvmine.traveler.SettingActivity; import com.rv.rvmine.traveler.SettingActivity;
import com.rv.share.ShareActivity;
import com.yuyife.banner.Banner; import com.yuyife.banner.Banner;
import com.yuyife.banner.BannerConfig; import com.yuyife.banner.BannerConfig;
import com.yuyife.banner.listener.OnBannerListener; import com.yuyife.banner.listener.OnBannerListener;
...@@ -273,7 +274,8 @@ public class MineFragment extends BaseFragment<CommonPresenter> implements Simpl ...@@ -273,7 +274,8 @@ public class MineFragment extends BaseFragment<CommonPresenter> implements Simpl
else if (id == R.id.tv_view_privileges) { else if (id == R.id.tv_view_privileges) {
startActivity(MemberCenterActivity.getIntent(_mActivity)); startActivity(MemberCenterActivity.getIntent(_mActivity));
} else if (id == R.id.rl_item_share) { } else if (id == R.id.rl_item_share) {
startActivity(new Intent(_mActivity, PointsActivity.class)); if (isLogin()) return;
startActivity(new Intent(_mActivity, ShareActivity.class));
} }
} }
......
...@@ -215,7 +215,7 @@ public class MemberCenterActivity extends BaseStatusActivity<MemberPresenter> { ...@@ -215,7 +215,7 @@ public class MemberCenterActivity extends BaseStatusActivity<MemberPresenter> {
} else if (id == R.id.tv_purchase_record) { } else if (id == R.id.tv_purchase_record) {
startActivity(new Intent(MemberCenterActivity.this, PurchaseRecordActivity.class)); startActivity(new Intent(MemberCenterActivity.this, PurchaseRecordActivity.class));
} else if (id == R.id.tv_free_day) { } else if (id == R.id.tv_free_day) {
// startActivity(new Intent(MemberCenterActivity.this, FreesDayActivity.class)); startActivity(new Intent(MemberCenterActivity.this, FreesDayActivity.class));
} }
} }
......
...@@ -17,4 +17,6 @@ ...@@ -17,4 +17,6 @@
<item>赠送明细</item> <item>赠送明细</item>
<item>总天数明细</item> <item>总天数明细</item>
</string-array> </string-array>
</resources> </resources>
...@@ -32,6 +32,7 @@ dependencies { ...@@ -32,6 +32,7 @@ dependencies {
testImplementation 'junit:junit:4.12' testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2' androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
api "com.google.code.gson:gson:$rootProject.ext.gsonVersion"
implementation project(':RvWrapper') implementation project(':RvWrapper')
implementation project(':module_home') implementation project(':module_home')
} }
...@@ -3,7 +3,8 @@ ...@@ -3,7 +3,8 @@
package="com.rv.points"> package="com.rv.points">
<application> <application>
<activity android:name=".PointsActivity"></activity> <activity android:name=".PointsActivity" />
<activity android:name=".SignActivity"></activity>
</application> </application>
</manifest> </manifest>
\ No newline at end of file
...@@ -8,6 +8,8 @@ import android.content.Intent; ...@@ -8,6 +8,8 @@ import android.content.Intent;
import com.alibaba.android.arouter.launcher.ARouter; import com.alibaba.android.arouter.launcher.ARouter;
import com.frame.base.url.Constance; import com.frame.base.url.Constance;
import java.math.BigDecimal;
public class Actions { public class Actions {
public Actions() { public Actions() {
...@@ -70,7 +72,7 @@ public class Actions { ...@@ -70,7 +72,7 @@ public class Actions {
* @param context * @param context
*/ */
public void sign(Context context) { public void sign(Context context) {
((Activity) context).startActivityForResult(new Intent(context, SignActivity.class), 1003);
} }
/****** /******
......
package com.rv.points;
import android.content.Intent;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import com.frame.rv.config.RvFrameConfig;
import com.google.gson.Gson;
import com.ruiwenliu.wrapper.base.BaseBean;
import com.ruiwenliu.wrapper.weight.TitleView;
import com.rv.home.rv.module.ApiConfig;
import com.rv.home.rv.module.basic.BaseStatusActivity;
import com.rv.home.rv.module.basic.presenter.CommonPresenter;
import com.rv.points.bean.SignRecordBean;
import com.rv.points.bean.SignResultBean;
import com.rv.points.adapter.DateAdapter;
import com.rv.points.utils.DateUtils;
import com.rv.points.view.InnerGridView;
import com.yuyife.okgo.OkGoUtil;
import java.util.HashMap;
import java.util.Map;
import butterknife.BindView;
public class SignActivity extends BaseStatusActivity<CommonPresenter> {
@BindView(R2.id.btn_sign)
Button btnSign;
@BindView(R2.id.view_month)
InnerGridView innerGridView;
@BindView(R2.id.tv_sign_day)
TextView tvSignDay;
private DateAdapter dateAdapter;
@Override
protected int setLayout() {
return R.layout.activity_sign;
}
@Override
protected void initView(Bundle savedInstanceState, TitleView titleView, Intent intent) {
titleView.setTitle("签到");
btnSign.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
sign();
}
});
dateAdapter = new DateAdapter(this);
innerGridView.setAdapter(dateAdapter);
}
@Override
protected void loadData(Bundle savedInstanceState, Intent intent) {
super.loadData(savedInstanceState, intent);
getSignList();
}
@Override
public void onShowResult(int requestType, BaseBean result) {
if (requestType == 0) {
SignRecordBean bean = (SignRecordBean) result;
if (bean.getData() != null && bean.getData().size() > 0) {
tvSignDay.setText("你已累计签到" + bean.getData().size() + "天");
dateAdapter.setSignData(bean.getData());
}
}
if (requestType == 1) {
Toast.makeText(getApplicationContext(), "签到成功", Toast.LENGTH_SHORT).show();
getSignList();
}
}
private void getSignList() {
if (!TextUtils.isEmpty(OkGoUtil.getToken()) || 1 == 1) {
Map<String, Object> header = new HashMap<>();
header.put("Authorization", OkGoUtil.getToken());
Map<String, Object> map = new HashMap<>();
map.put("startTime", DateUtils.getBeginTime());
map.put("endTime", DateUtils.getEndTime());
map.put("integralRuleCode", "SIGN");
mPresenter.getData(RvFrameConfig.HOST, 0, ApiConfig.HTTP_URL_SIGN_LIST, SignRecordBean.class, map, header, true);
}
}
/*****
* 签到
*/
private void sign() {
if (!TextUtils.isEmpty(OkGoUtil.getToken())) {
Map<String, Object> header = new HashMap<>();
header.put("Authorization", OkGoUtil.getToken());
Map<String,Object> body = new HashMap<>() ;
body.put("integralRuleCode","SIGN") ;
mPresenter.postData(RvFrameConfig.HOST ,1, ApiConfig.HTTP_URL_SIGN, SignResultBean.class, body, header, true);
}
}
}
package com.rv.points.adapter;
import android.content.Context;
import android.graphics.Color;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;
import com.rv.component.utils.DateUtils;
import com.rv.points.R;
import com.rv.points.bean.SignRecordBean;
import com.rv.points.view.DateUtil;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
public class DateAdapter extends BaseAdapter {
private Context context;
private List<Integer> days = new ArrayList<>();
private List<Integer> singRecords = new ArrayList<>();
//签到成功的回调方法,相应的可自行添加签到失败时的回调方法
public DateAdapter(Context context) {
this.context = context;
int maxDay = DateUtil.getCurrentMonthLastDay();//获取当月天数
for (int i = 0; i < DateUtil.getFirstDayOfMonth() - 1; i++) {
//DateUtil.getFirstDayOfMonth()获取当月第一天是星期几,星期日是第一天,依次类推
days.add(0);
}
for (int i = 0; i < maxDay; i++) {
days.add(i + 1);
}
}
@Override
public int getCount() {
return days.size();
}
@Override
public Object getItem(int i) {
return days.get(i);
}
@Override
public long getItemId(int i) {
return i;
}
@Override
public View getView(final int i, View view, ViewGroup viewGroup) {
ViewHolder viewHolder;
if (view == null) {
view = LayoutInflater.from(context).inflate(R.layout.item_gv, null);
viewHolder = new ViewHolder();
view.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) view.getTag();
}
viewHolder.tv = view.findViewById(R.id.tvWeek);
viewHolder.rlItem = view.findViewById(R.id.rlItem);
viewHolder.ivStatus = view.findViewById(R.id.ivStatus);
viewHolder.tv.setText(days.get(i) + "");
if (days.get(i) == 0) {
viewHolder.rlItem.setVisibility(View.GONE);
}
if (singRecords != null && singRecords.contains(i)) {
viewHolder.tv.setTextColor(Color.parseColor("#FD0000"));
viewHolder.ivStatus.setVisibility(View.VISIBLE);
} else {
viewHolder.tv.setTextColor(Color.parseColor("#666666"));
viewHolder.ivStatus.setVisibility(View.GONE);
}
return view;
}
/*****
* 设置已经签到的界面
*/
public void setSignData(List<SignRecordBean.SignRecord> list) {
singRecords.clear();
for (SignRecordBean.SignRecord record : list) {
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(record.getCrtTime());
this.singRecords.add(Integer.valueOf(calendar.get(Calendar.DAY_OF_MONTH)));
}
notifyDataSetChanged();
}
class ViewHolder {
RelativeLayout rlItem;
TextView tv;
ImageView ivStatus;
}
}
package com.rv.points.bean;
import com.ruiwenliu.wrapper.base.BaseBean;
import java.util.List;
public class SignRecordBean extends BaseBean {
private boolean rel;
private List<SignRecord> data;
public boolean isRel() {
return rel;
}
public void setRel(boolean rel) {
this.rel = rel;
}
public List<SignRecord> getData() {
return data;
}
public void setData(List<SignRecord> data) {
this.data = data;
}
public static class SignRecord {
private long id;
private long userId;
private int type;
private int point;
private String integralRuleCode;
private long crtTime;
private boolean isValid;
private boolean isdel;
private long channelId;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public long getUserId() {
return userId;
}
public void setUserId(long userId) {
this.userId = userId;
}
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
public int getPoint() {
return point;
}
public void setPoint(int point) {
this.point = point;
}
public String getIntegralRuleCode() {
return integralRuleCode;
}
public void setIntegralRuleCode(String integralRuleCode) {
this.integralRuleCode = integralRuleCode;
}
public long getCrtTime() {
return crtTime;
}
public void setCrtTime(long crtTime) {
this.crtTime = crtTime;
}
public boolean isValid() {
return isValid;
}
public void setValid(boolean valid) {
isValid = valid;
}
public boolean isIsdel() {
return isdel;
}
public void setIsdel(boolean isdel) {
this.isdel = isdel;
}
public long getChannelId() {
return channelId;
}
public void setChannelId(long channelId) {
this.channelId = channelId;
}
}
}
package com.rv.points.bean;
import com.ruiwenliu.wrapper.base.BaseBean;
public class SignResultBean extends BaseBean {
private boolean rel;
public boolean isRel() {
return rel;
}
public void setRel(boolean rel) {
this.rel = rel;
}
}
package com.rv.points.utils;
import android.annotation.SuppressLint;
import java.util.Calendar;
public class DateUtils {
@SuppressLint("WrongConstant")
public static long getBeginTime() {
Calendar cal = Calendar.getInstance();
cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONDAY), cal.get(Calendar.DAY_OF_MONTH), 0, 0, 0);
cal.set(Calendar.DAY_OF_MONTH, cal.getActualMinimum(Calendar.DAY_OF_MONTH));
return cal.getTimeInMillis();
}
@SuppressLint("WrongConstant")
public static long getEndTime() {
Calendar cal = Calendar.getInstance();
cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONDAY), cal.get(Calendar.DAY_OF_MONTH), 0, 0, 0);
cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DAY_OF_MONTH));
cal.set(Calendar.HOUR_OF_DAY, 24);
return cal.getTimeInMillis();
}
}
\ No newline at end of file
package com.rv.points.view;
import java.util.Calendar;
/**
* Created by Administrator on 2017/8/16.
*/
public class DateUtil {
public static int getCurrentMonthLastDay() {
Calendar a = Calendar.getInstance();
a.set(Calendar.DATE, 1);//把日期设置为当月第一天
a.roll(Calendar.DATE, -1);//日期回滚一天,也就是最后一天
int maxDate = a.get(Calendar.DATE);
return maxDate;
}
public static String getCurrentYearAndMonth(){
Calendar a = Calendar.getInstance();
int year = a.get(Calendar.YEAR);
int month = a.get(Calendar.MONTH) + 1;
return year+"年"+month+"月";
}
public static int getFirstDayOfMonth(){
Calendar a = Calendar.getInstance();
a.set(Calendar.DAY_OF_MONTH,1);
int i = a.get(Calendar.DAY_OF_WEEK);
return i;
}
}
package com.rv.points.view;
import android.content.Context;
import android.util.AttributeSet;
import android.widget.GridView;
public class InnerGridView extends GridView {
public InnerGridView(Context context) {
super(context);
}
public InnerGridView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public InnerGridView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int expandSpec = MeasureSpec.makeMeasureSpec(
Integer.MAX_VALUE >> 3, MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, expandSpec);
}
}
package com.rv.points.view;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Rect;
import android.support.annotation.Nullable;
import android.util.AttributeSet;
import android.view.View;
import com.rv.component.utils.DisplayUtil;
public class WeekNavigation extends View {
private String weeks[] = { "天","一", "二", "三", "四", "五", "六"};
private Context mContext;
private Paint wordsPaint;
private int itemWidth;
public WeekNavigation(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
mContext = context;
wordsPaint = new Paint();
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
int width = getMeasuredWidth();
itemWidth = width / 7;
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
wordsPaint.setTextSize(DisplayUtil.sp2px(mContext, 14));
for (int i = 0; i < weeks.length; i++) {
if (0 == i || 6 == i) {
wordsPaint.setColor(Color.GRAY);
} else {
wordsPaint.setColor(Color.BLACK);
}
Rect rect = new Rect();
wordsPaint.getTextBounds(weeks[i], 0, 1, rect);
int wordWidth = rect.width();
float wordX = i * itemWidth + itemWidth/2 ;
float wordY = wordWidth ;
canvas.drawText(weeks[i], wordX, wordY, wordsPaint);
}
}
}
...@@ -51,7 +51,6 @@ ...@@ -51,7 +51,6 @@
android:layout_centerVertical="true" android:layout_centerVertical="true"
android:layout_marginLeft="@dimen/dp_10" android:layout_marginLeft="@dimen/dp_10"
android:layout_toRightOf="@id/rimg_avatar" android:layout_toRightOf="@id/rimg_avatar"
android:text="房车旅行家Rose"
android:textColor="@color/white" android:textColor="@color/white"
android:textSize="@dimen/text_18" /> android:textSize="@dimen/text_18" />
...@@ -63,7 +62,7 @@ ...@@ -63,7 +62,7 @@
android:layout_centerVertical="true" android:layout_centerVertical="true"
android:layout_marginRight="@dimen/size_50" android:layout_marginRight="@dimen/size_50"
android:gravity="center" android:gravity="center"
android:text="600" android:text="0"
android:textColor="@color/white" android:textColor="@color/white"
android:textSize="@dimen/text_22" /> android:textSize="@dimen/text_22" />
</RelativeLayout> </RelativeLayout>
......
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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="match_parent"
android:background="@color/white"
android:orientation="vertical"
tools:context=".SignActivity">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingLeft="@dimen/size_20"
android:paddingTop="@dimen/size_20"
android:paddingRight="@dimen/size_20"
android:paddingBottom="@dimen/size_20">
<ImageView
android:id="@+id/img_icon"
android:layout_width="@dimen/size_50"
android:layout_height="@dimen/size_50"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true" />
<TextView
android:id="@+id/tv_sign_day"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="@dimen/dp_10"
android:layout_toRightOf="@+id/img_icon"
android:text="你已累计签到9天" />
<Button
android:id="@+id/btn_sign"
android:layout_width="@dimen/size_80"
android:layout_height="@dimen/size_35"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:text="打卡"
android:textSize="@dimen/sp_12" />
</RelativeLayout>
<com.rv.points.view.WeekNavigation
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_marginLeft="5dp"
android:layout_marginTop="5dp"
android:layout_marginRight="5dp"
android:background="@color/white" />
<com.rv.points.view.InnerGridView
android:id="@+id/view_month"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:numColumns="7"/>
</LinearLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
android:id="@+id/rlItem"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/tvWeek"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="8dp"
android:text="一"
android:gravity="center"
android:textColor="#666"
android:background="@android:color/white">
</TextView>
<ImageView
android:id="@+id/ivStatus"
android:layout_width="12dp"
android:layout_height="12dp"
android:src="@drawable/icon_select"
android:layout_marginRight="10dp"
android:visibility="gone"
android:layout_alignParentRight="true"/>
</RelativeLayout>
\ No newline at end of file
...@@ -4,8 +4,10 @@ ...@@ -4,8 +4,10 @@
<application> <application>
<activity android:name=".ShareActivity" /> <activity android:name=".ShareActivity" />
<activity android:name=".BillActivity" />
<activity android:name=".BillActivity"></activity> <activity android:name=".WebViewActivity" />
<activity android:name=".ReativeBillActivity" />
<activity android:name=".PopularizeActivity"></activity>
</application> </application>
</manifest> </manifest>
\ No newline at end of file
...@@ -2,11 +2,15 @@ package com.rv.share; ...@@ -2,11 +2,15 @@ package com.rv.share;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.support.v7.widget.CardView;
import android.view.View; import android.view.View;
import android.webkit.WebView;
import android.widget.Button; import android.widget.Button;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import android.widget.TextView; import android.widget.TextView;
import com.ruiwenliu.wrapper.base.BaseBean; import com.ruiwenliu.wrapper.base.BaseBean;
import com.ruiwenliu.wrapper.base.BaseStatusActivity; import com.ruiwenliu.wrapper.base.BaseStatusActivity;
import com.ruiwenliu.wrapper.weight.TitleView; import com.ruiwenliu.wrapper.weight.TitleView;
...@@ -28,10 +32,10 @@ public class BillActivity extends BaseStatusActivity<BillPresenter> { ...@@ -28,10 +32,10 @@ public class BillActivity extends BaseStatusActivity<BillPresenter> {
@BindView(R2.id.btn_share) @BindView(R2.id.btn_share)
Button btnShare; Button btnShare;
@BindView(R2.id.ll_webview) @BindView(R2.id.ll_webview)
LinearLayout llWebView; CardView llContent;
private String url; private String url;
private RvWebView rvWebView;
public static Intent getIntent(Context var1, String var2) { public static Intent getIntent(Context var1, String var2) {
Intent intent = new Intent(var1, BillActivity.class); Intent intent = new Intent(var1, BillActivity.class);
...@@ -52,9 +56,9 @@ public class BillActivity extends BaseStatusActivity<BillPresenter> { ...@@ -52,9 +56,9 @@ public class BillActivity extends BaseStatusActivity<BillPresenter> {
url = intent.getStringExtra("billUrl"); url = intent.getStringExtra("billUrl");
titleView.setVisibility(View.GONE); titleView.setVisibility(View.GONE);
RvWebView view = new RvWebView(getApplicationContext(), listener); rvWebView = new RvWebView(getApplicationContext(), listener);
llWebView.addView(view); llContent.addView(rvWebView);
view.loadUrl("https://www.baidu.com"); rvWebView.loadUrl(url);
// llLongClick.setOnLongClickListener(new View.OnLongClickListener() { // llLongClick.setOnLongClickListener(new View.OnLongClickListener() {
// @Override // @Override
...@@ -81,7 +85,19 @@ public class BillActivity extends BaseStatusActivity<BillPresenter> { ...@@ -81,7 +85,19 @@ public class BillActivity extends BaseStatusActivity<BillPresenter> {
@Override @Override
public void onDestroy() { public void onDestroy() {
llWebView.removeAllViews(); if (rvWebView != null) {
llContent.removeAllViews();
rvWebView.stopLoading();// 停止当前加载
rvWebView.clearMatches();// 清除网页查找的高亮匹配字符。
rvWebView.clearHistory();// 清除当前 WebView 访问的历史记录
rvWebView.clearSslPreferences();//清除ssl信息
rvWebView.clearCache(true);//清空网页访问留下的缓存数据。需要注意的时,由于缓存是全局的,所以只要是WebView用到的缓存都会被清空,即便其他地方也会使用到。该方法接受一个参数,从命名即可看出作用。若设为false,则只清空内存里的资源缓存,而不清空磁盘里的。
rvWebView.loadUrl("about:blank");// 清空当前加载
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR2) {
rvWebView.removeJavascriptInterface("AndroidNative");// 向 Web端注入 java 对象
}
rvWebView.destroy();// 生命周期销毁
}
super.onDestroy(); super.onDestroy();
} }
...@@ -91,19 +107,13 @@ public class BillActivity extends BaseStatusActivity<BillPresenter> { ...@@ -91,19 +107,13 @@ public class BillActivity extends BaseStatusActivity<BillPresenter> {
if (id == R.id.tv_back_title) { if (id == R.id.tv_back_title) {
finish(); finish();
} else if (id == R.id.btn_share) { } else if (id == R.id.btn_share) {
mPresenter.showShareDialog(llWebView); mPresenter.showShareDialog(llContent, rvWebView);
} }
} }
private RvWebView.WebViewListener listener = new RvWebView.WebViewListener() { private RvWebView.WebViewListener listener = new RvWebView.WebViewListener() {
@Override @Override
public void share(String url, String title, String desc) { public void share(String url, String title, String desc) {
}
@Override
public void shareBill() {
mPresenter.showShareDialog(llWebView);
} }
@Override @Override
......
package com.rv.share;
import android.content.Intent;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.ruiwenliu.wrapper.adapter.TabAdapter;
import com.ruiwenliu.wrapper.base.BaseBean;
import com.ruiwenliu.wrapper.base.BaseFragment;
import com.ruiwenliu.wrapper.weight.TitleView;
import com.ruiwenliu.wrapper.weight.horizontal.GallerySnapHelper;
import com.ruiwenliu.wrapper.weight.horizontal.SpaceItemDecoration;
import com.rv.home.rv.module.basic.BaseStatusActivity;
import com.rv.home.rv.module.basic.presenter.CommonPresenter;
import com.rv.home.rv.module.ui.main.home.adapter.OrderMenuAdapter;
import com.rv.share.fragment.ActivationFragment;
import com.rv.share.fragment.InComeRecordFragment;
import com.rv.share.fragment.InviteFragment;
import java.util.ArrayList;
import java.util.List;
import butterknife.BindView;
public class PopularizeActivity extends BaseStatusActivity<CommonPresenter> {
@BindView(R2.id.recyclerview)
RecyclerView recyclerView;
@BindView(R2.id.viewpager)
ViewPager viewpager;
private OrderMenuAdapter menuAdapter;
private TabAdapter mAdapter;
private int menuPosition;
@Override
protected int setLayout() {
return R.layout.activity_popularize;
}
@Override
protected void initView(Bundle savedInstanceState, TitleView titleView, Intent intent) {
titleView.setTitle("我的推广");
initRecyclerView();
initViewpager();
}
@Override
public void onShowResult(int requestType, BaseBean result) {
}
/**
* 初始化RecyclerView
*/
private void initRecyclerView() {
recyclerView.setLayoutManager(new GridLayoutManager(mActivity, 3));
menuAdapter = new OrderMenuAdapter();
recyclerView.setAdapter(menuAdapter);
recyclerView.addItemDecoration(new SpaceItemDecoration(3));
GallerySnapHelper snapHelper = new GallerySnapHelper();
snapHelper.attachToRecyclerView(recyclerView);
List<String> list = new ArrayList<>();
String[] strs = getResources().getStringArray(R.array.popularize_list);
for (String a : strs) {
list.add(a);
}
menuAdapter.setNewData(list);
menuAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
@Override
public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
menuAdapter.setSelectItem(position);
viewpager.setCurrentItem(position);
}
});
}
/**
* 初始化Viewpager
*/
private void initViewpager() {
mAdapter = new TabAdapter(getSupportFragmentManager(), getListFragment());
viewpager.setAdapter(mAdapter);
viewpager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
menuAdapter.setSelectItem(position);
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
viewpager.setOffscreenPageLimit(mAdapter.getCount());
menuAdapter.setSelectItem(menuPosition);
viewpager.setCurrentItem(menuPosition);
}
private List<BaseFragment> getListFragment() {
List<BaseFragment> list = new ArrayList<>();
list.add(InComeRecordFragment.getInstance());
list.add(InviteFragment.getInstance());
list.add(ActivationFragment.getInstance());
return list;
}
}
package com.rv.share;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.TextUtils;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import com.base.utils.ui.image.round.RoundImageView;
import com.ruiwenliu.wrapper.SPConstance;
import com.ruiwenliu.wrapper.base.BaseBean;
import com.ruiwenliu.wrapper.util.UtilsManager;
import com.ruiwenliu.wrapper.util.glide.GlideManager;
import com.ruiwenliu.wrapper.weight.TitleView;
import com.rv.component.utils.DisplayUtil;
import com.rv.component.utils.ZxingUtils;
import com.rv.home.rv.module.basic.BaseStatusActivity;
import com.rv.home.rv.module.basic.presenter.CommonPresenter;
import com.yuyife.okgo.OkGoUtil;
import butterknife.BindView;
public class ReativeBillActivity extends BaseStatusActivity<CommonPresenter> {
private String url;
@BindView(R2.id.ring_header)
RoundImageView roundImageView;
@BindView(R2.id.tv_phone)
TextView tvPhone;
@BindView(R2.id.img_qrcode)
ImageView imgQrcode;
@BindView(R2.id.btn_save_bill)
Button btnSaveBill;
@BindView(R2.id.btn_share)
Button btnShare;
public static Intent getIntent(Context context, String url) {
Intent intent = new Intent(context, ReativeBillActivity.class);
intent.putExtra("url", url);
return intent;
}
@Override
protected int setLayout() {
return R.layout.activity_reative_bill;
}
@Override
protected void initView(Bundle savedInstanceState, TitleView titleView, Intent intent) {
titleView.setTitle("邀请码");
url = intent.getStringExtra("url");
if (!TextUtils.isEmpty(url)) {
Bitmap bitmap = ZxingUtils.createQRImage(url, DisplayUtil.dip2px(this, 150), DisplayUtil.dip2px(this, 150), BitmapFactory.decodeResource(getResources(), com.rv.home.R.mipmap.ic_launcher));
imgQrcode.setImageBitmap(bitmap);
}
String name = UtilsManager.getInstance(OkGoUtil.application).getSPInstance(SPConstance.USER_JSON).getString(SPConstance.USER_JSON_NAME, "");
String url = UtilsManager.getInstance(OkGoUtil.application).getSPInstance(SPConstance.USER_JSON).getString(SPConstance.USER_JSON_HEADERURL, "");
if (!TextUtils.isEmpty(url)) {
GlideManager.getInstance(getApplicationContext()).loadImage(url, roundImageView);
}
if (!TextUtils.isEmpty(name)) {
tvPhone.setText(name + " 邀请你一起参与");
}
}
@Override
public void onShowResult(int requestType, BaseBean result) {
}
}
package com.rv.share; package com.rv.share;
import android.content.Intent; import android.content.Intent;
import android.graphics.Color; import android.graphics.drawable.Drawable;
import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.util.Log; import android.text.TextUtils;
import android.view.MotionEvent;
import android.view.View; import android.view.View;
import android.view.WindowManager; import android.widget.ImageView;
import android.widget.Button; import android.widget.TextView;
import android.widget.ImageButton;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.ScrollView;
import android.widget.Toast;
import com.base.utils.ui.datetime.selector.util.TextUtil;
import com.frame.rv.config.RvFrameConfig;
import com.ruiwenliu.wrapper.base.BaseBean; import com.ruiwenliu.wrapper.base.BaseBean;
import com.ruiwenliu.wrapper.util.glide.GlideManager;
import com.ruiwenliu.wrapper.weight.TitleView; import com.ruiwenliu.wrapper.weight.TitleView;
import com.rv.component.utils.DisplayUtil; import com.rv.component.utils.DisplayUtil;
import com.rv.home.rv.module.ApiConfig;
import com.rv.home.rv.module.basic.BaseStatusActivity; import com.rv.home.rv.module.basic.BaseStatusActivity;
import com.rv.share.bean.PersonShareBean;
import com.rv.share.presenter.SharePresenter; import com.rv.share.presenter.SharePresenter;
import com.rv.share.view.RvWebView; import com.rv.share.presenter.WebViewPresenter;
import com.yuyife.okgo.OkGoUtil;
import java.util.HashMap;
import java.util.Map;
import butterknife.BindView; import butterknife.BindView;
import butterknife.OnClick; import butterknife.OnClick;
public class ShareActivity extends BaseStatusActivity<SharePresenter> { public class ShareActivity extends BaseStatusActivity<SharePresenter> {
@BindView(R2.id.tv_weixin)
TextView tvWeixin;
@BindView(R2.id.tv_weixin_circle)
TextView tvWxCircle;
@BindView(R2.id.tv_bill)
TextView tvBill;
@BindView(R2.id.tv_more)
TextView tvMore;
@BindView(R2.id.tv_amount)
TextView tvAmount;
@BindView(R2.id.tv_person_inval)
TextView tvPersonInval;
@BindView(R2.id.tv_person_use)
TextView tvPersonUse;
@BindView(R2.id.img_parent)
ImageView imgParent;
@BindView(R2.id.tv_parent_phone)
TextView tvParentPhone;
@BindView(R2.id.tv_more_detail)
TextView tvMoreDetail;
@BindView(R2.id.ll_webview_content)
LinearLayout llWebViewContent;
@Override @Override
protected int setLayout() { public void onShowResult(int requestType, BaseBean result) {
return R.layout.activity_share;
}
@Override if (requestType == 0) {
protected void initView(Bundle savedInstanceState, TitleView titleView, Intent intent) { PersonShareBean bean = (PersonShareBean) result;
titleView.setTitle("邀请有礼"); if (bean.isRel() && bean.getData() != null) {
titleView.setImageResource(R.id.iv_title_right, R.drawable.tourism_rv_rentingcar_icon_share); setView(bean.getData());
titleView.setChildClickListener(R.id.iv_title_right, new View.OnClickListener() { }
@Override
public void onClick(View view) {
mPresenter.showShareDialog("https://xxtest.upyuns.com/h5/appHtml/view/download.html?userid=1234&test=xxxx", "测试", null);
} }
});
// titleView.setVisibility(View.GONE);
RvWebView view = new RvWebView(getApplicationContext(), mListener);
llWebViewContent.addView(view);
view.loadUrl("https://xxtest.upyuns.com/h5/appHtml/view/invitationCourtesy.html");
} }
@Override private void setView(PersonShareBean.PersonShareInfo data) {
public boolean onTouchEvent(MotionEvent event) { tvAmount.setText(data.getTotalIncome() + "元");
super.onTouchEvent(event); tvPersonInval.setText(data.getInviteNumber() + "人");
switch (event.getAction()) { tvPersonUse.setText(data.getActivatedNumber() + "人");
case MotionEvent.ACTION_DOWN: if (TextUtils.isEmpty(data.getLeaderHeadUrl()) && TextUtil.isEmpty(data.getLeaderUsername())) {
break; // ((View) tvParentPhone.getParent().getParent()).setVisibility(View.GONE);
} else {
case MotionEvent.ACTION_SCROLL: if (!TextUtils.isEmpty(data.getLeaderHeadUrl())) {
Log.e("xxxx", "ACTION_SCROLL"); GlideManager.getInstance(getApplicationContext()).loadImage(data.getLeaderHeadUrl(), imgParent);
break; }
if (!TextUtils.isEmpty(data.getLeaderUsername())) {
tvParentPhone.setText(data.getLeaderUsername());
}
} }
return super.onTouchEvent(event);
} }
@Override @Override
protected void loadData(Bundle savedInstanceState, Intent intent) { protected void loadData(Bundle savedInstanceState, Intent intent) {
super.loadData(savedInstanceState, intent); super.loadData(savedInstanceState, intent);
mPresenter.setShareImage(this, tvWeixin, tvWxCircle, tvBill, tvMore);
getPersonShareInfo();
} }
@Override @Override
public void onShowResult(int requestType, BaseBean result) { protected int setLayout() {
return R.layout.activity_share;
} }
@Override @Override
public void onDestroy() { protected void initView(Bundle savedInstanceState, TitleView titleView, Intent intent) {
llWebViewContent.removeAllViews(); titleView.setTitle("我的邀请码");
super.onDestroy();
} }
private RvWebView.WebViewListener mListener = new RvWebView.WebViewListener() { private void getPersonShareInfo() {
if (!TextUtils.isEmpty(OkGoUtil.getToken())) {
@Override Map<String, Object> map = new HashMap<>();
public void share(String url, String title, String des) { map.put("Authorization", OkGoUtil.getToken());
mPresenter.showShareDialog(url, title, des); mPresenter.getDataHead(RvFrameConfig.HOST, 0, ApiConfig.HTTP_URL_PERSON_SHARE_INFO, PersonShareBean.class, map, true);
} }
@Override
public void shareBill() {
startActivity(new Intent(getApplicationContext(), BillActivity.class));
} }
@Override
public void finish() { @OnClick({R2.id.tv_weixin, R2.id.tv_weixin_circle, R2.id.tv_bill, R2.id.tv_more, R2.id.tv_more_detail})
ShareActivity.this.finish(); public void onViewClicked(View view) {
int id = view.getId();
if (id == R.id.tv_weixin) {
mPresenter.shareWx(RvFrameConfig.HOST + "/h5/appHtml/view/download.html", "【滴房车】", "新人专享大礼包,快去领!");
} else if (id == R.id.tv_weixin_circle) {
mPresenter.shareWxC(RvFrameConfig.HOST + "/h5/appHtml/view/download.html", "【滴房车】", "新人专享大礼包,快去领!");
} else if (id == R.id.tv_bill) {
startActivity(ReativeBillActivity.getIntent(this, RvFrameConfig.HOST + "/h5/appHtml/view/download.html"));
} else if (id == R.id.tv_more) {
mPresenter.shareMore(RvFrameConfig.HOST + "/h5/appHtml/view/download.html", "【滴房车】", "新人专享大礼包,快去领!");
} else if (id == R.id.tv_more_detail) {
startActivity(new Intent(this, PopularizeActivity.class));
}
} }
};
} }
package com.rv.share;
import android.content.Context;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.text.TextUtils;
import android.widget.LinearLayout;
import android.widget.Toast;
import com.base.utils.tools.android.NetworkUtil;
import com.ruiwenliu.wrapper.SPConstance;
import com.ruiwenliu.wrapper.base.BaseBean;
import com.ruiwenliu.wrapper.util.UtilsManager;
import com.ruiwenliu.wrapper.weight.TitleView;
import com.rv.home.rv.module.basic.BaseStatusActivity;
import com.rv.share.presenter.WebViewPresenter;
import com.rv.share.view.RvWebView;
import com.yuyife.okgo.OkGoUtil;
import butterknife.BindView;
public class WebViewActivity extends BaseStatusActivity<WebViewPresenter> {
@BindView(R2.id.ll_content)
LinearLayout llContent;
private String url;
private String title;
private RvWebView rvWebView;
public static Intent getIntent(Context context, String url, String name) {
Intent intent = new Intent(context, WebViewActivity.class);
intent.putExtra("url", url);
intent.putExtra("title", name);
return intent;
}
@Override
protected int setLayout() {
return R.layout.activity_web_view;
}
@Override
protected void initView(Bundle savedInstanceState, TitleView titleView, Intent intent) {
url = intent.getStringExtra("url");
title = intent.getStringExtra("title");
if (!TextUtils.isEmpty(title)) {
titleView.setTitle(title);
}
rvWebView = new RvWebView(getApplicationContext(), listener);
if (NetworkUtil.isNetworkAvailable(this)) {
llContent.addView(rvWebView);
if (!TextUtils.isEmpty(url)) {
// url = "https://xxtest.upyuns.com/h5/appHtml/view/invitationCourtesy.html" ;
rvWebView.loadUrl(url);
}
} else {
Toast.makeText(this, "网络异常", Toast.LENGTH_SHORT).show();
}
}
@Override
protected void loadData(Bundle savedInstanceState, Intent intent) {
super.loadData(savedInstanceState, intent);
if (rvWebView != null)
mPresenter.setWebView(rvWebView);
}
@Override
public void onShowResult(int requestType, BaseBean result) {
}
@Override
public void onDestroy() {
if(rvWebView != null) {
llContent.removeAllViews();
rvWebView.stopLoading();// 停止当前加载
rvWebView.clearMatches();// 清除网页查找的高亮匹配字符。
rvWebView.clearHistory();// 清除当前 WebView 访问的历史记录
rvWebView.clearSslPreferences();//清除ssl信息
rvWebView.clearCache(true);//清空网页访问留下的缓存数据。需要注意的时,由于缓存是全局的,所以只要是WebView用到的缓存都会被清空,即便其他地方也会使用到。该方法接受一个参数,从命名即可看出作用。若设为false,则只清空内存里的资源缓存,而不清空磁盘里的。
rvWebView.loadUrl("about:blank");// 清空当前加载
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR2) {
rvWebView.removeJavascriptInterface("AndroidNative");// 向 Web端注入 java 对象
}
rvWebView.destroy();// 生命周期销毁
}
super.onDestroy();
}
private RvWebView.WebViewListener listener = new RvWebView.WebViewListener() {
@Override
public void share(String url, String title, String desc) {
mPresenter.showShareDialog(url +UtilsManager.getInstance(OkGoUtil.application).getSPInstance(SPConstance.USER_JSON).getString(SPConstance.USER_JSON_CODE, ""), title, desc);
}
@Override
public void finish() {
}
};
}
package com.rv.share.adapter;
import android.support.annotation.Nullable;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.rv.home.rv.module.ui.main.home.order.bean.OrderListBean;
import com.rv.share.R;
import com.rv.share.bean.IncomeRecordsBean;
import java.util.List;
public class IncomeListAdapter extends BaseQuickAdapter<IncomeRecordsBean.IncomeItem, BaseViewHolder> {
public IncomeListAdapter() {
super(R.layout.item_income, null);
}
@Override
protected void convert(BaseViewHolder helper, IncomeRecordsBean.IncomeItem item) {
}
}
package com.rv.share.bean;
import com.ruiwenliu.wrapper.base.BaseBean;
import java.util.List;
public class IncomeRecordsBean extends BaseBean {
private boolean rel;
private IncomeRecordData data;
public boolean isRel() {
return rel;
}
public void setRel(boolean rel) {
this.rel = rel;
}
public IncomeRecordData getData() {
return data;
}
public void setData(IncomeRecordData data) {
this.data = data;
}
public static class IncomeRecordData {
private int id;
private long crtTime;
private long updTime;
private String name;
private String descr;
private String value;
private int progress;
private int type;
private String code;
private List<IncomeItem> items;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public long getCrtTime() {
return crtTime;
}
public void setCrtTime(long crtTime) {
this.crtTime = crtTime;
}
public long getUpdTime() {
return updTime;
}
public void setUpdTime(long updTime) {
this.updTime = updTime;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDescr() {
return descr;
}
public void setDescr(String descr) {
this.descr = descr;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public int getProgress() {
return progress;
}
public void setProgress(int progress) {
this.progress = progress;
}
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public List<IncomeItem> getItems() {
return items;
}
public void setItems(List<IncomeItem> items) {
this.items = items;
}
}
public static class IncomeItem {
private int id;
private long crtTime;
private long updTime;
private String name;
private String descr;
private int popularizeId;
private int progress;
private int type;
private int sort;
private int status;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public long getCrtTime() {
return crtTime;
}
public void setCrtTime(long crtTime) {
this.crtTime = crtTime;
}
public long getUpdTime() {
return updTime;
}
public void setUpdTime(long updTime) {
this.updTime = updTime;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDescr() {
return descr;
}
public void setDescr(String descr) {
this.descr = descr;
}
public int getPopularizeId() {
return popularizeId;
}
public void setPopularizeId(int popularizeId) {
this.popularizeId = popularizeId;
}
public int getProgress() {
return progress;
}
public void setProgress(int progress) {
this.progress = progress;
}
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
public int getSort() {
return sort;
}
public void setSort(int sort) {
this.sort = sort;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
}
}
package com.rv.share.bean;
import com.ruiwenliu.wrapper.base.BaseBean;
import java.math.BigDecimal;
public class PersonShareBean extends BaseBean {
private boolean rel;
private PersonShareInfo data;
public boolean isRel() {
return rel;
}
public void setRel(boolean rel) {
this.rel = rel;
}
public PersonShareInfo getData() {
return data;
}
public void setData(PersonShareInfo data) {
this.data = data;
}
public static class PersonShareInfo {
private BigDecimal totalIncome;
private int inviteNumber;
private int activatedNumber;
private String leaderUsername;
private String leaderHeadUrl;
public BigDecimal getTotalIncome() {
return totalIncome;
}
public void setTotalIncome(BigDecimal totalIncome) {
this.totalIncome = totalIncome;
}
public int getInviteNumber() {
return inviteNumber;
}
public void setInviteNumber(int inviteNumber) {
this.inviteNumber = inviteNumber;
}
public int getActivatedNumber() {
return activatedNumber;
}
public void setActivatedNumber(int activatedNumber) {
this.activatedNumber = activatedNumber;
}
public String getLeaderUsername() {
return leaderUsername;
}
public void setLeaderUsername(String leaderUsername) {
this.leaderUsername = leaderUsername;
}
public String getLeaderHeadUrl() {
return leaderHeadUrl;
}
public void setLeaderHeadUrl(String leaderHeadUrl) {
this.leaderHeadUrl = leaderHeadUrl;
}
}
}
package com.rv.share.fragment;
import android.os.Bundle;
import com.ruiwenliu.wrapper.base.BaseBean;
import com.ruiwenliu.wrapper.base.BaseFragment;
import com.rv.home.rv.module.basic.presenter.CommonPresenter;
import com.rv.share.R;
public class ActivationFragment extends BaseFragment<CommonPresenter> {
public static ActivationFragment getInstance() {
ActivationFragment fragment = new ActivationFragment();
return fragment;
}
@Override
public int getViewLayout() {
return R.layout.fragment_activation;
}
@Override
protected void initView(Bundle savedInstanceState) {
}
@Override
protected void loadData(Bundle savedInstanceState) {
}
@Override
public void onShowResult(int requestType, BaseBean result) {
}
}
package com.rv.share.fragment;
import android.os.Bundle;
import android.text.TextUtils;
import com.frame.rv.config.RvFrameConfig;
import com.ruiwenliu.wrapper.base.BaseBean;
import com.ruiwenliu.wrapper.base.BaseFragment;
import com.rv.home.rv.module.ApiConfig;
import com.rv.home.rv.module.basic.presenter.CommonPresenter;
import com.rv.share.R;
import com.rv.share.bean.IncomeRecordsBean;
import com.yuyife.okgo.OkGoUtil;
import java.util.HashMap;
import java.util.Map;
public class InComeRecordFragment extends BaseFragment<CommonPresenter> {
public static InComeRecordFragment getInstance() {
InComeRecordFragment fragment = new InComeRecordFragment();
return fragment;
}
@Override
public int getViewLayout() {
return R.layout.fragment_income_record;
}
@Override
protected void initView(Bundle savedInstanceState) {
}
@Override
protected void loadData(Bundle savedInstanceState) {
getIncomeData();
}
private void getIncomeData() {
if (!TextUtils.isEmpty(OkGoUtil.getToken())) {
Map<String, Object> header = new HashMap<>();
header.put("Authorization", OkGoUtil.getToken());
Map<String, Object> map = new HashMap<>();
map.put("code", "0101");
mPresenter.getData(RvFrameConfig.HOST, 0, ApiConfig.HTTP_URL_INCOME_RECORD, IncomeRecordsBean.class, map, header, true);
}
}
@Override
public void onShowResult(int requestType, BaseBean result) {
if (requestType == 0) {
IncomeRecordsBean bean = (IncomeRecordsBean) result;
if (bean.isRel() && bean.getData() != null) {
}
}
}
}
package com.rv.share.fragment;
import android.os.Bundle;
import com.ruiwenliu.wrapper.base.BaseBean;
import com.ruiwenliu.wrapper.base.BaseFragment;
import com.rv.home.rv.module.basic.presenter.CommonPresenter;
import com.rv.share.R;
public class InviteFragment extends BaseFragment<CommonPresenter> {
public static InviteFragment getInstance() {
InviteFragment fragment = new InviteFragment();
return fragment;
}
@Override
public int getViewLayout() {
return R.layout.fragment_invite;
}
@Override
protected void initView(Bundle savedInstanceState) {
}
@Override
protected void loadData(Bundle savedInstanceState) {
getIncomeData();
}
@Override
public void onShowResult(int requestType, BaseBean result) {
}
/*****
* 获取收益记录记录
*/
private void getIncomeData() {
}
}
...@@ -10,8 +10,10 @@ import android.graphics.Canvas; ...@@ -10,8 +10,10 @@ import android.graphics.Canvas;
import android.graphics.Color; import android.graphics.Color;
import android.net.Uri; import android.net.Uri;
import android.os.Environment; import android.os.Environment;
import android.support.v7.widget.CardView;
import android.util.Log; import android.util.Log;
import android.view.View; import android.view.View;
import android.webkit.WebView;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import android.widget.Toast; import android.widget.Toast;
...@@ -34,11 +36,13 @@ public class BillPresenter extends CommonPresenter { ...@@ -34,11 +36,13 @@ public class BillPresenter extends CommonPresenter {
private ShareChoiceDialog dialog = null; private ShareChoiceDialog dialog = null;
private ShareAction shareAction = null; private ShareAction shareAction = null;
private LinearLayout view = null; private CardView view = null;
private Bitmap bitmap = null; private Bitmap bitmap = null;
private UMImage image = null; private UMImage image = null;
private WebView webView;
public void showShareDialog(LinearLayout llBillContent) { public void showShareDialog(CardView llBillContent, WebView webView) {
this.webView = webView;
this.view = llBillContent; this.view = llBillContent;
if (dialog == null) { if (dialog == null) {
dialog = new ShareChoiceDialog.Builder(getPresenterContext()) dialog = new ShareChoiceDialog.Builder(getPresenterContext())
...@@ -115,12 +119,16 @@ public class BillPresenter extends CommonPresenter { ...@@ -115,12 +119,16 @@ public class BillPresenter extends CommonPresenter {
private UMShareListener shareListener = new UMShareListener() { private UMShareListener shareListener = new UMShareListener() {
@Override @Override
public void onStart(SHARE_MEDIA share_media) { public void onStart(SHARE_MEDIA share_media) {
Log.e("xxxxxxxxxx", "shareOnstart"); if (webView != null) {
webView.loadUrl("javascript:shareSuccess()");
}
} }
@Override @Override
public void onResult(SHARE_MEDIA share_media) { public void onResult(SHARE_MEDIA share_media) {
Log.e("xxxxxxxxxx", "shareonResult"); if (webView != null) {
webView.loadUrl("javascript:shareSuccess()");
}
} }
@Override @Override
......
...@@ -4,16 +4,21 @@ import android.app.Activity; ...@@ -4,16 +4,21 @@ import android.app.Activity;
import android.content.ClipData; import android.content.ClipData;
import android.content.ClipboardManager; import android.content.ClipboardManager;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.graphics.drawable.Drawable;
import android.net.Uri; import android.net.Uri;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.Log; import android.util.Log;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast; import android.widget.Toast;
import com.base.utils.ui.datetime.selector.util.TextUtil; import com.base.utils.ui.datetime.selector.util.TextUtil;
import com.frame.rv.config.RvFrameConfig;
import com.rv.component.utils.DisplayUtil;
import com.rv.home.rv.module.basic.presenter.CommonPresenter; import com.rv.home.rv.module.basic.presenter.CommonPresenter;
import com.rv.share.BillActivity; import com.rv.share.BillActivity;
import com.rv.share.R; import com.rv.share.R;
import com.rv.share.ReativeBillActivity;
import com.rv.share.view.ShareChoiceDialog; import com.rv.share.view.ShareChoiceDialog;
import com.umeng.socialize.ShareAction; import com.umeng.socialize.ShareAction;
import com.umeng.socialize.UMShareListener; import com.umeng.socialize.UMShareListener;
...@@ -21,42 +26,42 @@ import com.umeng.socialize.bean.SHARE_MEDIA; ...@@ -21,42 +26,42 @@ import com.umeng.socialize.bean.SHARE_MEDIA;
import com.umeng.socialize.media.UMImage; import com.umeng.socialize.media.UMImage;
import com.umeng.socialize.media.UMWeb; import com.umeng.socialize.media.UMWeb;
import java.io.File;
public class SharePresenter extends CommonPresenter { public class SharePresenter extends CommonPresenter {
private ShareChoiceDialog dialog = null;
private ShareAction shareAction = null; private ShareAction shareAction = null;
private int drawableSize = 50;
private String mUrl = null; private String mUrl = null;
private String mTitle = null; private String mTitle = null;
private String mDescript = null; private String mDescript = null;
private ShareChoiceDialog dialog = null;
public void setShareImage(Context context, TextView tvWeixin, TextView tvWxCircle, TextView tvBill, TextView tvMore) {
Drawable drawable = context.getResources().getDrawable(R.drawable.icon_share_wx);
drawable.setBounds(0, 0, DisplayUtil.dip2px(context, drawableSize), DisplayUtil.dip2px(context, drawableSize));
tvWeixin.setCompoundDrawables(null, drawable, null, null);
tvWeixin.setVisibility(View.VISIBLE);
public void showShareDialog(String url, String title, String descript) { Drawable drawable1 = context.getResources().getDrawable(R.drawable.icon_share_cir);
this.mUrl = url; drawable1.setBounds(0, 0, DisplayUtil.dip2px(context, drawableSize), DisplayUtil.dip2px(context, drawableSize));
this.mTitle = title; tvWxCircle.setCompoundDrawables(null, drawable1, null, null);
this.mDescript = descript; tvWxCircle.setVisibility(View.VISIBLE);
if (dialog == null) {
dialog = new ShareChoiceDialog.Builder(getPresenterContext()) Drawable drawable2 = context.getResources().getDrawable(R.drawable.icon_share_bill);
.setShareListener(myListener) drawable2.setBounds(0, 0, DisplayUtil.dip2px(context, drawableSize), DisplayUtil.dip2px(context, drawableSize));
.setCopyVisiable(true) tvBill.setCompoundDrawables(null, drawable2, null, null);
.setWxVisiable(true) tvBill.setVisibility(View.VISIBLE);
.setWxCVisiable(true)
.setQQVisiable(true) Drawable drawable3 = context.getResources().getDrawable(R.drawable.icon_share_qq);
.setBillVisiable(true) drawable3.setBounds(0, 0, DisplayUtil.dip2px(context, drawableSize), DisplayUtil.dip2px(context, drawableSize));
.create(); tvMore.setCompoundDrawables(null, drawable3, null, null);
} tvMore.setVisibility(View.VISIBLE);
dialog.show();
} }
/****** public void shareWx(String mUrl, String mTitle, String mDescript) {
* 分享地址
*/
private void shareWx() {
if (shareAction == null) { if (shareAction == null) {
shareAction = new ShareAction((Activity) getPresenterContext()).setCallback(shareListener); shareAction = new ShareAction((Activity) getPresenterContext()).setCallback(shareListener);
} }
UMImage image = new UMImage(getPresenterContext(), R.drawable.common_icon_wechat_pay); UMImage image = new UMImage(getPresenterContext(), R.drawable.logo);
UMWeb web = new UMWeb(mUrl); UMWeb web = new UMWeb(mUrl);
web.setTitle(mTitle);//标题 web.setTitle(mTitle);//标题
web.setThumb(image); //缩略图 web.setThumb(image); //缩略图
...@@ -67,58 +72,53 @@ public class SharePresenter extends CommonPresenter { ...@@ -67,58 +72,53 @@ public class SharePresenter extends CommonPresenter {
shareAction.share(); shareAction.share();
} }
/****** /******
* 分享地址 * 分享地址
*/ */
private void shareWxC() { public void shareWxC(String mUrl, String mTitle, String mDescript) {
if (shareAction == null) { if (shareAction == null) {
shareAction = new ShareAction((Activity) getPresenterContext()).setCallback(shareListener); shareAction = new ShareAction((Activity) getPresenterContext()).setCallback(shareListener);
} }
UMImage image = new UMImage(getPresenterContext(), R.drawable.common_icon_wechat_pay); UMImage image = new UMImage(getPresenterContext(), R.drawable.logo);
UMWeb web = new UMWeb(mUrl); UMWeb web = new UMWeb(mUrl);
web.setTitle(mTitle);//标题 web.setTitle(mTitle + " " + mDescript);//标题
web.setThumb(image); //缩略图 web.setThumb(image); //缩略图
shareAction.setPlatform(SHARE_MEDIA.WEIXIN_CIRCLE)//传入平台 shareAction.setPlatform(SHARE_MEDIA.WEIXIN_CIRCLE)//传入平台
.withMedia(web); .withMedia(web);
shareAction.share(); shareAction.share();
} }
/****** /******
* 分享文件 * 分享地址
* @param var1
* @param var2
*/ */
private void shareQQ(SHARE_MEDIA var1, String var2) { public void shareMore(String mUrl, String mTitle, String mDescript) {
if (shareAction == null) { this.mUrl = mUrl;
shareAction = new ShareAction((Activity) getPresenterContext()).setCallback(shareListener); this.mTitle = mTitle;
this.mDescript = mDescript;
if (dialog == null) {
dialog = new ShareChoiceDialog.Builder(getPresenterContext())
.setShareListener(myListener)
.setCopyVisiable(true)
.setWxVisiable(true)
.setWxCVisiable(true)
.setQQVisiable(true)
.setBillVisiable(true)
.create();
} }
shareAction.setPlatform(var1)//传入平台 dialog.show();
.withText(var2);//分享内容
shareAction.share();
} }
/*******
* 复制地址
* @param url
*/
private void copy(String url) {
ClipboardManager cm = (ClipboardManager) getPresenterContext().getSystemService(Context.CLIPBOARD_SERVICE);
ClipData mClipData = ClipData.newRawUri("Label", Uri.parse(url));
cm.setPrimaryClip(mClipData);
Toast.makeText(getPresenterContext(), "复制成功", Toast.LENGTH_SHORT).show();
}
private UMShareListener shareListener = new UMShareListener() { private UMShareListener shareListener = new UMShareListener() {
@Override @Override
public void onStart(SHARE_MEDIA share_media) { public void onStart(SHARE_MEDIA share_media) {
Log.e("xxxxxxxxxx", "shareOnstart");
} }
@Override @Override
public void onResult(SHARE_MEDIA share_media) { public void onResult(SHARE_MEDIA share_media) {
Log.e("xxxxxxxxxx", "shareonResult"); Log.e("xxxxxxxxxx", "onResult:");
} }
@Override @Override
...@@ -143,29 +143,42 @@ public class SharePresenter extends CommonPresenter { ...@@ -143,29 +143,42 @@ public class SharePresenter extends CommonPresenter {
@Override @Override
public void wxShare() { public void wxShare() {
if (!TextUtils.isEmpty(mUrl)) if (!TextUtils.isEmpty(mUrl))
shareWx(); shareWx(mUrl, mTitle, mDescript);
} }
@Override @Override
public void wxCShare() { public void wxCShare() {
if (!TextUtils.isEmpty(mUrl)) if (!TextUtils.isEmpty(mUrl))
shareWxC(); shareWxC(mUrl, mTitle, mDescript);
} }
@Override @Override
public void qqShare() { public void qqShare() {
if (!TextUtil.isEmpty(mUrl)) { if (!TextUtil.isEmpty(mUrl)) {
shareQQ(SHARE_MEDIA.QQ, mUrl); // shareQQ(SHARE_MEDIA.QQ, mUrl);
} }
} }
@Override @Override
public void billShare() { public void billShare() {
getPresenterContext().startActivity(BillActivity.getIntent(getPresenterContext(), mUrl)); // 跳转海报
getPresenterContext().startActivity(ReativeBillActivity.getIntent(getPresenterContext(), mUrl));
} }
@Override @Override
public void close() { public void close() {
} }
}; };
/*******
* 复制地址
* @param url
*/
private void copy(String url) {
ClipboardManager cm = (ClipboardManager) getPresenterContext().getSystemService(Context.CLIPBOARD_SERVICE);
ClipData mClipData = ClipData.newRawUri("Label", Uri.parse(url));
cm.setPrimaryClip(mClipData);
Toast.makeText(getPresenterContext(), "复制成功", Toast.LENGTH_SHORT).show();
}
} }
package com.rv.share.presenter;
import android.app.Activity;
import android.content.ClipData;
import android.content.ClipboardManager;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.text.TextUtils;
import android.util.Log;
import android.widget.Toast;
import com.base.utils.ui.datetime.selector.util.TextUtil;
import com.frame.rv.config.RvFrameConfig;
import com.rv.home.rv.module.ApiConfig;
import com.rv.home.rv.module.basic.presenter.CommonPresenter;
import com.rv.share.BillActivity;
import com.rv.share.R;
import com.rv.share.view.RvWebView;
import com.rv.share.view.ShareChoiceDialog;
import com.umeng.socialize.ShareAction;
import com.umeng.socialize.UMShareListener;
import com.umeng.socialize.bean.SHARE_MEDIA;
import com.umeng.socialize.media.UMImage;
import com.umeng.socialize.media.UMWeb;
import java.io.File;
public class WebViewPresenter extends CommonPresenter {
private ShareChoiceDialog dialog = null;
private ShareAction shareAction = null;
private String mUrl = null;
private String mTitle = null;
private String mDescript = null;
private RvWebView webView;
public void setWebView(RvWebView webView) {
this.webView = webView;
}
public void showShareDialog(String url, String title, String descript) {
this.mUrl = url;
this.mTitle = title;
this.mDescript = descript;
if (dialog == null) {
dialog = new ShareChoiceDialog.Builder(getPresenterContext())
.setShareListener(myListener)
.setCopyVisiable(true)
.setWxVisiable(true)
.setWxCVisiable(true)
.setQQVisiable(true)
.setBillVisiable(true)
.create();
}
dialog.show();
}
/******
* 分享地址
*/
private void shareWx() {
if (shareAction == null) {
shareAction = new ShareAction((Activity) getPresenterContext()).setCallback(shareListener);
}
UMImage image = new UMImage(getPresenterContext(), R.drawable.logo);
UMWeb web = new UMWeb(mUrl);
web.setTitle(mTitle);//标题
web.setThumb(image); //缩略图
web.setDescription(mDescript);//描述
shareAction.setPlatform(SHARE_MEDIA.WEIXIN)//传入平台
.withMedia(web);
shareAction.share();
}
/******
* 分享地址
*/
private void shareWxC() {
if (shareAction == null) {
shareAction = new ShareAction((Activity) getPresenterContext()).setCallback(shareListener);
}
UMImage image = new UMImage(getPresenterContext(), R.drawable.logo);
UMWeb web = new UMWeb(mUrl);
web.setTitle(mTitle);//标题
web.setThumb(image); //缩略图
shareAction.setPlatform(SHARE_MEDIA.WEIXIN_CIRCLE)//传入平台
.withMedia(web);
shareAction.share();
}
/******
* 分享文件
* @param var1
* @param var2
*/
private void shareQQ(SHARE_MEDIA var1, String var2) {
if (shareAction == null) {
shareAction = new ShareAction((Activity) getPresenterContext()).setCallback(shareListener);
}
shareAction.setPlatform(var1)//传入平台
.withText(var2);//分享内容
shareAction.share();
}
/*******
* 复制地址
* @param url
*/
private void copy(String url) {
ClipboardManager cm = (ClipboardManager) getPresenterContext().getSystemService(Context.CLIPBOARD_SERVICE);
ClipData mClipData = ClipData.newRawUri("Label", Uri.parse(url));
cm.setPrimaryClip(mClipData);
Toast.makeText(getPresenterContext(), "复制成功", Toast.LENGTH_SHORT).show();
}
private UMShareListener shareListener = new UMShareListener() {
@Override
public void onStart(SHARE_MEDIA share_media) {
if (webView != null) {
webView.loadUrl("javascript:shareSuccess()");
}
}
@Override
public void onResult(SHARE_MEDIA share_media) {
if (webView != null) {
webView.loadUrl("javascript:shareSuccess()");
}
}
@Override
public void onError(SHARE_MEDIA share_media, Throwable throwable) {
Log.e("xxxxxxxxxx", "shareonError:" + throwable.getMessage());
}
@Override
public void onCancel(SHARE_MEDIA share_media) {
Log.e("xxxxxxxxxx", "shareonCancel");
}
};
private ShareChoiceDialog.ShareListener myListener = new ShareChoiceDialog.ShareListener() {
@Override
public void copyShare() {
if (!TextUtils.isEmpty(mUrl)) {
copy(mUrl);
}
}
@Override
public void wxShare() {
if (!TextUtils.isEmpty(mUrl))
shareWx();
}
@Override
public void wxCShare() {
if (!TextUtils.isEmpty(mUrl))
shareWxC();
}
@Override
public void qqShare() {
if (!TextUtil.isEmpty(mUrl)) {
shareQQ(SHARE_MEDIA.QQ, mUrl);
}
}
@Override
public void billShare() {
String billUrl = RvFrameConfig.HOST + "/h5/appHtml/view/poster.html";
// String billUrl = "https://xxtest.upyuns.com/h5/appHtml/view/poster.html" ;
getPresenterContext().startActivity(BillActivity.getIntent(getPresenterContext(), billUrl));
}
@Override
public void close() {
}
};
}
package com.rv.share.view;
import android.app.Dialog;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.support.annotation.NonNull;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.WindowManager;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.rv.component.utils.DisplayUtil;
import com.rv.share.R;
public class BillDialog extends Dialog {
public BillDialog(@NonNull Context context) {
super(context);
}
public BillDialog(Context context, int themeResId) {
super(context, themeResId);
}
public static class Builder {
private Context mContext;
private ImageView imgClose;
private View.OnClickListener mListener;
private String content;
private LinearLayout llWebview;
public Builder(Context context, View.OnClickListener listener) {
mContext = context;
this.mListener = listener;
}
public Builder(Context context) {
mContext = context;
}
public Builder setContent(String content) {
this.content = content;
return this;
}
public Builder show() {
final BillDialog dialog = create();
dialog.show();
return this;
}
/**
* 创建定制的对话框
*/
public BillDialog create() {
LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
final BillDialog dialog = new BillDialog(mContext, R.style.DialogActivityTheme);
// 获取对话框的布局
View layout = inflater.inflate(R.layout.dialog_bill, null);
// 为对话框添加布局和设置大小
dialog.addContentView(layout, new WindowManager.LayoutParams(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.WRAP_CONTENT));
this.llWebview = layout.findViewById(R.id.ll_webview);
RvWebView view = new RvWebView(mContext, listener);
llWebview.addView(view);
view.loadUrl("https://www.baidu.com");
this.imgClose = layout.findViewById(R.id.img_close);
this.imgClose.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
dialog.dismiss();
}
});
//默认不能点击对话框其他区域退出 和按返回键退出
dialog.setCancelable(true);
dialog.setContentView(layout);
return dialog;
}
private RvWebView.WebViewListener listener = new RvWebView.WebViewListener() {
@Override
public void share(String url, String title, String desc) {
}
@Override
public void finish() {
}
};
}
}
...@@ -11,6 +11,8 @@ import android.widget.Button; ...@@ -11,6 +11,8 @@ import android.widget.Button;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.TextView; import android.widget.TextView;
import com.ruiwenliu.wrapper.bean.ActBean;
import com.ruiwenliu.wrapper.util.glide.GlideManager;
import com.rv.share.R; import com.rv.share.R;
public class PromotionDialog extends Dialog { public class PromotionDialog extends Dialog {
...@@ -26,10 +28,11 @@ public class PromotionDialog extends Dialog { ...@@ -26,10 +28,11 @@ public class PromotionDialog extends Dialog {
public static class Builder { public static class Builder {
private Context mContext; private Context mContext;
private Button button; private ImageView button;
private ImageView imgBg; private ImageView imgBg;
private ImageView imgClose; private ImageView imgClose;
private View.OnClickListener mListener; private View.OnClickListener mListener;
private ActBean.Act act;
public Builder(Context context, View.OnClickListener listener) { public Builder(Context context, View.OnClickListener listener) {
mContext = context; mContext = context;
...@@ -42,6 +45,11 @@ public class PromotionDialog extends Dialog { ...@@ -42,6 +45,11 @@ public class PromotionDialog extends Dialog {
return this; return this;
} }
public Builder setData(ActBean.Act act) {
this.act = act;
return this;
}
/** /**
* 创建定制的对话框 * 创建定制的对话框
*/ */
...@@ -53,7 +61,13 @@ public class PromotionDialog extends Dialog { ...@@ -53,7 +61,13 @@ public class PromotionDialog extends Dialog {
// 为对话框添加布局和设置大小 // 为对话框添加布局和设置大小
dialog.addContentView(layout, new WindowManager.LayoutParams(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.WRAP_CONTENT)); dialog.addContentView(layout, new WindowManager.LayoutParams(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.WRAP_CONTENT));
this.button = layout.findViewById(R.id.button); this.button = layout.findViewById(R.id.button);
if (this.act != null && !TextUtils.isEmpty(this.act.getButtonImages())) {
GlideManager.getInstance(mContext).loadImage(this.act.getButtonImages(), this.button);
}
this.imgBg = layout.findViewById(R.id.img_bg); this.imgBg = layout.findViewById(R.id.img_bg);
if (this.act != null && !TextUtils.isEmpty(this.act.getBackground())) {
GlideManager.getInstance(mContext).loadImage(this.act.getBackground(), this.imgBg);
}
this.imgClose = layout.findViewById(R.id.img_close); this.imgClose = layout.findViewById(R.id.img_close);
this.button.setOnClickListener(mListener); this.button.setOnClickListener(mListener);
this.imgClose.setOnClickListener(new View.OnClickListener() { this.imgClose.setOnClickListener(new View.OnClickListener() {
......
...@@ -4,8 +4,10 @@ import android.content.ComponentName; ...@@ -4,8 +4,10 @@ import android.content.ComponentName;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.os.Build; import android.os.Build;
import android.text.TextUtils;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.webkit.ConsoleMessage;
import android.webkit.JavascriptInterface; import android.webkit.JavascriptInterface;
import android.webkit.WebChromeClient; import android.webkit.WebChromeClient;
import android.webkit.WebResourceRequest; import android.webkit.WebResourceRequest;
...@@ -14,6 +16,11 @@ import android.webkit.WebView; ...@@ -14,6 +16,11 @@ import android.webkit.WebView;
import android.webkit.WebViewClient; import android.webkit.WebViewClient;
import android.widget.ProgressBar; import android.widget.ProgressBar;
import com.ruiwenliu.wrapper.SPConstance;
import com.ruiwenliu.wrapper.util.UtilsManager;
import com.rv.component.utils.Cooker;
import com.rv.component.utils.LogUtil;
import com.rv.home.rv.module.ui.login.LoginRvActivity;
import com.yuyife.okgo.OkGoUtil; import com.yuyife.okgo.OkGoUtil;
import static com.ruiwenliu.wrapper.weight.webview.SafeWebView.hasKitkat; import static com.ruiwenliu.wrapper.weight.webview.SafeWebView.hasKitkat;
...@@ -70,13 +77,30 @@ public class RvWebView extends WebView { ...@@ -70,13 +77,30 @@ public class RvWebView extends WebView {
// 如果此设置是允许,则 setAllowFileAccessFromFileURLs 不起做用 // 如果此设置是允许,则 setAllowFileAccessFromFileURLs 不起做用
webSettings.setAllowUniversalAccessFromFileURLs(true); webSettings.setAllowUniversalAccessFromFileURLs(true);
addJavascriptInterface(new AndroidJs(), "AndroidJs"); addJavascriptInterface(new AndroidJs(), "AndroidJs");
setWebViewClient(new WebViewClient() { setWebViewClient(webViewClient);
setWebChromeClient(webChromeClient);
}
public WebViewClient webViewClient = new WebViewClient() {
@Override @Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) { public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
return super.shouldOverrideUrlLoading(view, request); return super.shouldOverrideUrlLoading(view, request);
} }
});
setWebChromeClient(new WebChromeClient() { @Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
return super.shouldOverrideUrlLoading(view, url);
}
};
public WebChromeClient webChromeClient = new WebChromeClient() {
@Override
public boolean onConsoleMessage(ConsoleMessage consoleMessage) {
LogUtil.d("h5", consoleMessage.message() + ";" + consoleMessage.sourceId() + ";" + consoleMessage.lineNumber());
return super.onConsoleMessage(consoleMessage);
}
@Override @Override
public void onProgressChanged(WebView view, int newProgress) { public void onProgressChanged(WebView view, int newProgress) {
if (newProgress == 100) { if (newProgress == 100) {
...@@ -86,28 +110,53 @@ public class RvWebView extends WebView { ...@@ -86,28 +110,53 @@ public class RvWebView extends WebView {
progressBar.setProgress(newProgress);//设置进度值 progressBar.setProgress(newProgress);//设置进度值
} }
} }
}); };
}
private class AndroidJs { private class AndroidJs {
@JavascriptInterface @JavascriptInterface
public String getToken() { public String getToken() {
String token = OkGoUtil.getToken();
return token;
}
@JavascriptInterface
public String getTokenOrLogin() {
if (TextUtils.isEmpty(OkGoUtil.getToken())) {
getContext().startActivity(LoginRvActivity.getIntent(getContext()));
return "";
}
return OkGoUtil.getToken(); return OkGoUtil.getToken();
}
@JavascriptInterface
public String getUserName() {
String name = UtilsManager.getInstance(OkGoUtil.application).getSPInstance(SPConstance.USER_JSON).getString(SPConstance.USER_JSON_NAME, "");
return name;
} }
@JavascriptInterface
public String getHeadUrl() {
String url = UtilsManager.getInstance(OkGoUtil.application).getSPInstance(SPConstance.USER_JSON).getString(SPConstance.USER_JSON_HEADERURL, "");
return url;
}
@JavascriptInterface @JavascriptInterface
public void share(String url, String title,String desc) { public void share(String url, String title, String desc) {
if (listener != null) { if (listener != null) {
listener.share(url, title,desc); listener.share(url, title, desc);
} }
} }
@JavascriptInterface @JavascriptInterface
public void shareBill() { public void toMyWallet() {
if (listener != null) {
listener.shareBill();
} }
@JavascriptInterface
public String getCode() {
String code = UtilsManager.getInstance(OkGoUtil.application).getSPInstance(SPConstance.USER_JSON).getString(SPConstance.USER_JSON_CODE, "");
return code;
} }
@JavascriptInterface @JavascriptInterface
...@@ -119,9 +168,7 @@ public class RvWebView extends WebView { ...@@ -119,9 +168,7 @@ public class RvWebView extends WebView {
public interface WebViewListener { public interface WebViewListener {
void share(String url, String title,String desc); void share(String url, String title, String desc);
void shareBill();
void finish(); void finish();
} }
...@@ -131,19 +178,4 @@ public class RvWebView extends WebView { ...@@ -131,19 +178,4 @@ public class RvWebView extends WebView {
super.onAttachedToWindow(); super.onAttachedToWindow();
} }
@Override
protected void onDetachedFromWindow() {
super.onDetachedFromWindow();
stopLoading();// 停止当前加载
clearMatches();// 清除网页查找的高亮匹配字符。
clearHistory();// 清除当前 WebView 访问的历史记录
clearSslPreferences();//清除ssl信息
clearCache(true);//清空网页访问留下的缓存数据。需要注意的时,由于缓存是全局的,所以只要是WebView用到的缓存都会被清空,即便其他地方也会使用到。该方法接受一个参数,从命名即可看出作用。若设为false,则只清空内存里的资源缓存,而不清空磁盘里的。
loadUrl("about:blank");// 清空当前加载
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR2) {
removeJavascriptInterface("AndroidNative");// 向 Web端注入 java 对象
}
destroy();// 生命周期销毁
}
} }
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<!--背景颜色-->
<solid android:color="#ffffff" />
<!--设置圆角的角度-->
<corners android:radius="5dp" />
</shape>
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="30dp" />
<solid android:color="@color/gray_FFB74B" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<!--空心框 圆角 少量红-->
<corners android:radius="@dimen/size_20" />
<stroke
android:width="@dimen/ui_dimen_stroke"
android:color="@color/colorYellow" />
<solid android:color="@color/uiColorTransparency" />
</shape>
\ No newline at end of file
...@@ -52,7 +52,7 @@ ...@@ -52,7 +52,7 @@
</LinearLayout> </LinearLayout>
<LinearLayout <android.support.v7.widget.CardView
android:id="@+id/ll_webview" android:id="@+id/ll_webview"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="380dp" android:layout_height="380dp"
...@@ -62,7 +62,8 @@ ...@@ -62,7 +62,8 @@
android:layout_marginRight="@dimen/dp_10" android:layout_marginRight="@dimen/dp_10"
android:layout_marginBottom="@dimen/size_20" android:layout_marginBottom="@dimen/size_20"
android:background="@drawable/shape_rv_bg_bill" android:background="@drawable/shape_rv_bg_bill"
android:orientation="vertical" /> android:orientation="vertical"
app:cardCornerRadius="5dp" />
</RelativeLayout> </RelativeLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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="match_parent"
android:orientation="vertical"
tools:context=".PopularizeActivity">
<include layout="@layout/common_line" />
<android.support.v7.widget.RecyclerView
android:id="@+id/recyclerview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorWrite" />
<include layout="@layout/common_line" />
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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="match_parent"
android:orientation="vertical"
tools:context=".ReativeBillActivity">
<ImageView
android:layout_width="match_parent"
android:layout_height="@dimen/size_140"
android:scaleType="fitXY"
android:src="@drawable/bg_bill" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FEE8C3"
android:orientation="vertical"
android:padding="@dimen/dp_10"
android:weightSum="15">
<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="11"
android:background="@color/white"
app:cardCornerRadius="@dimen/size_10">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="horizontal">
<com.base.utils.ui.image.round.RoundImageView
android:id="@+id/ring_header"
android:layout_width="@dimen/dp_40"
android:layout_height="@dimen/dp_40" />
<TextView
android:id="@+id/tv_phone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/size_3"
android:text="155****5918 邀请你一起参与"
android:textColor="@color/gray_707070"
android:textSize="@dimen/sp_12" />
</LinearLayout>
<ImageView
android:id="@+id/img_qrcode"
android:layout_width="@dimen/size_150"
android:layout_height="@dimen/size_150" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/size_8"
android:text="长按识别二维码领奖励"
android:textSize="@dimen/sp_14" />
</LinearLayout>
</android.support.v7.widget.CardView>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="4"
android:gravity="center_horizontal|bottom">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/size_10"
android:layout_marginRight="@dimen/size_10"
android:orientation="horizontal">
<Button
android:id="@+id/btn_save_bill"
android:layout_width="0dp"
android:layout_height="@dimen/dp_40"
android:layout_weight="1"
android:background="@drawable/bg_btn_bill_save"
android:gravity="center"
android:text="保存海报"
android:textColor="@color/colorYellow"
android:textSize="@dimen/sp_16" />
<Button
android:id="@+id/btn_share"
android:layout_width="0dp"
android:layout_height="@dimen/dp_40"
android:layout_marginLeft="@dimen/size_10"
android:layout_weight="1"
android:background="@drawable/bg_bill_share"
android:gravity="center"
android:text="分享朋友圈"
android:textColor="@color/white"
android:textSize="@dimen/sp_16" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
</LinearLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:id="@+id/ll_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".WebViewActivity">
</LinearLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="vertical">
<LinearLayout
android:layout_width="300dp"
android:layout_height="wrap_content"
android:background="@drawable/dialog_point_content_bg"
android:gravity="center_horizontal"
android:minWidth="300dp"
android:orientation="vertical">
<LinearLayout
android:id="@+id/ll_webview"
android:layout_width="match_parent"
android:layout_height="380dp"
android:orientation="vertical" />
<include layout="@layout/common_line" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="@dimen/size_50"
android:orientation="horizontal">
<Button
android:background="@color/white"
android:id="@+id/btn_save_pic"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="保存图片" />
<Button
android:background="#ffb74b"
android:id="@+id/btn_share"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="立即分享" />
</LinearLayout>
</LinearLayout>
<ImageView
android:id="@+id/img_close"
android:layout_width="@dimen/size_30"
android:layout_height="@dimen/size_30"
android:layout_marginTop="10dp"
android:src="@drawable/home_icon_close" />
</LinearLayout>
...@@ -8,29 +8,26 @@ ...@@ -8,29 +8,26 @@
<FrameLayout <FrameLayout
android:layout_width="300dp" android:layout_width="300dp"
android:layout_height="300dp" android:layout_height="300dp"
android:gravity="center_horizontal"
android:minWidth="300dp" android:minWidth="300dp"
android:orientation="vertical"> android:orientation="vertical">
<ImageView <ImageView
android:id="@+id/img_bg" android:id="@+id/img_bg"
android:scaleType="fitXY"
android:layout_width="300dp" android:layout_width="300dp"
android:layout_height="300dp" android:layout_height="300dp" />
/>
<Button
android:layout_gravity="bottom" <ImageView
android:id="@+id/button" android:id="@+id/button"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/size_40" android:layout_height="@dimen/size_40"
android:layout_gravity="bottom"
android:layout_marginLeft="@dimen/dp_10" android:layout_marginLeft="@dimen/dp_10"
android:layout_marginTop="@dimen/dp_10" android:layout_marginTop="@dimen/dp_10"
android:layout_marginRight="@dimen/dp_10" android:layout_marginRight="@dimen/dp_10"
android:layout_marginBottom="@dimen/size_15" android:layout_marginBottom="@dimen/size_10"
android:background="@drawable/bg_dialog_btn" android:gravity="center" />
android:gravity="center"
android:text="查看详情"
android:textColor="@color/white"
android:textSize="@dimen/sp_16" />
</FrameLayout> </FrameLayout>
......
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="@dimen/size_50">
</LinearLayout>
<resources> <resources>
<string name="app_name">plugin_share</string> <string name="app_name">plugin_share</string>
<string-array name="popularize_list">
<item>收益记录</item>
<item>已邀请</item>
<item>已激活</item>
</string-array>
</resources> </resources>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment