Commit 504e526c authored by linfeng's avatar linfeng

bug修复

parent fd710453
......@@ -59,4 +59,6 @@ public final class Constance {
public static final String ACTIVITY_URL_SELECTSHOP="/main/home/SelectShopActivity";
public static final String ACTIVITY_URL_PATGENERATEPOSTER="/discovery/other/PatGeneratePosterActivity";
public static final String ACTIVITY_URL_POSTERACTIVITY="/poster/plugin/PosterActivity";
}
......@@ -19,6 +19,15 @@ android {
}
}
// javaCompileOptions {
//
// annotationProcessorOptions {
//
// arguments = [moduleName: project.getName()]
//
// }
// }
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
......
......@@ -131,7 +131,6 @@ public class MainActivity extends BaseActivity<CommonPresenter> {
}
@Override
public void onShowResult(int requestType, BaseBean result) {
switch (requestType) {
......@@ -250,7 +249,9 @@ public class MainActivity extends BaseActivity<CommonPresenter> {
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
mAdapter.getCurrentFragment().onActivityResult(requestCode, resultCode, data);
if (mAdapter != null) {
mAdapter.getCurrentFragment().onActivityResult(requestCode, resultCode, data);
}
}
......
......@@ -4,4 +4,6 @@ public interface CommonApi extends RvFrameConfig{
//行为记录保存
public static String RVENTHUSIAST_APP_UNAUTH_SAVE =RvFrameConfig.HOST + "/api/user/behavior/customerBehaviorNotes/app/unauth/save";
String TOUR_SENDMESSAGE = RvFrameConfig.HOST + "/api/universal/message/sendMessage"; // 分享积分
}
......@@ -46,7 +46,8 @@ public class CommonPresenter extends MvpPresenter {
customerid = OkGoUtil.getYkId();
customertype = "1";
}
postBodyData2(RvFrameConfig.HOST, CommonApi.RVENTHUSIAST_APP_UNAUTH_SAVE, new SaveOnClick(customertype, customerid, type, typeid), headMap);
postBodyData(RvFrameConfig.HOST, 20,CommonApi.RVENTHUSIAST_APP_UNAUTH_SAVE,BaseBean.class, new SaveOnClick(customertype, customerid, type, typeid), headMap,false);
// postBodyData2(RvFrameConfig.HOST, CommonApi.RVENTHUSIAST_APP_UNAUTH_SAVE, new SaveOnClick(customertype, customerid, type, typeid), headMap);
}
......
......@@ -117,6 +117,10 @@ public class ShareManager extends ShareAction {
}
public <T extends UMShareListener>void showShareImage2(SHARE_MEDIA share_media, UMImage umImage, T umShareListener){
shareWebContent(share_media,umImage,umShareListener);
}
public void shareWebContent(SHARE_MEDIA share_media, UMWeb umWeb, UMShareListener umShareListener){
new ShareAction(mActivity).withMedia(umWeb)
.setPlatform(share_media)
......
package com.rv.share.utils;
package com.rv.component.utils;
import android.app.Activity;
import android.content.ClipData;
import android.content.ClipboardManager;
import android.content.Context;
......@@ -11,12 +10,6 @@ import android.net.Uri;
import android.view.View;
import android.widget.Toast;
import com.rv.share.R;
import com.umeng.socialize.ShareAction;
import com.umeng.socialize.bean.SHARE_MEDIA;
import com.umeng.socialize.media.UMImage;
import com.umeng.socialize.media.UMWeb;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
......
package com.rv.share.utils;
package com.rv.component.utils;
import android.content.Context;
import android.content.Intent;
......
......@@ -51,6 +51,7 @@ dependencies {
api project(':component_control')
api project(':component_resource')
api project(':component_dialog')
api project(':component_utils')
api project(':plugin_poster')
}
......@@ -88,7 +88,7 @@ public class CampFragment extends BaseFragment<CampPresenter> implements BaseQui
campAdapter = new CampListAdapter();
rvContent.setItemAnimator(null);
rvContent.setLayoutManager(new GridLayoutManager(_mActivity, 2));
rvContent.addItemDecoration(new AbSpacesItemDecoration(20,10));// 分割线。
rvContent.addItemDecoration(new AbSpacesItemDecoration(20, 10));// 分割线。
// rvContent.setNestedScrollingEnabled(false);
rvContent.setAdapter(campAdapter);
......@@ -117,13 +117,14 @@ public class CampFragment extends BaseFragment<CampPresenter> implements BaseQui
.build(Constance.ACTIVITY_URL_CAMPDETAIL)
.withString("id", data.getId())
.withDouble("longitude", lonLongitude)
.withDouble("latitude",latLatitude)
.withDouble("latitude", latLatitude)
.navigation();
}
});
campAdapter.setOnLoadMoreListener(new BaseQuickAdapter.RequestLoadMoreListener() {
@Override public void onLoadMoreRequested() {
@Override
public void onLoadMoreRequested() {
if (rvContent != null) {
rvContent.postDelayed(new Runnable() {
@Override
......@@ -176,7 +177,7 @@ public class CampFragment extends BaseFragment<CampPresenter> implements BaseQui
isOpen = !isOpen;
} else if (id == R.id.iv_camp_map) {
//地图
startActivity(CampShopShowActivity.getIntent(_mActivity));
startActivity(CampShopShowActivity.getIntent(_mActivity));
} else if (id == R.id.v_shadow) {
rvType.setVisibility(View.GONE);
vShadow.setVisibility(View.GONE);
......@@ -311,17 +312,16 @@ public class CampFragment extends BaseFragment<CampPresenter> implements BaseQui
@Override
public void onRefresh() {
loadDataList();
loadDataList();
}
public class AbSpacesItemDecoration extends RecyclerView.ItemDecoration {
private int left;
private int right;
public AbSpacesItemDecoration(int left,int right) {
public AbSpacesItemDecoration(int left, int right) {
this.left = left;
this.right = right;
}
......@@ -329,12 +329,12 @@ public class CampFragment extends BaseFragment<CampPresenter> implements BaseQui
@Override
public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
int childCount = parent.getChildCount();
if ((childCount -1) % 2==0){
if ((childCount - 1) % 2 == 0) {
outRect.left = left;
outRect.right = right;
outRect.bottom = right;
outRect.top = right;
}else {
} else {
outRect.left = right;
outRect.right = left;
outRect.bottom = right;
......
......@@ -36,6 +36,24 @@ public class CampDetailsBean extends BaseBean {
private String phone;
private double longitude;//": 118.773832,
private double latitude;//": 32.031698,
private String logo;
private String posterBackground;
public String getPosterBackground() {
return posterBackground;
}
public void setPosterBackground(String posterBackground) {
this.posterBackground = posterBackground;
}
public String getLogo() {
return logo;
}
public void setLogo(String logo) {
this.logo = logo;
}
public String getName() {
return name;
......
package com.rv.camp.camp;
import android.annotation.TargetApi;
import android.content.ClipData;
import android.content.ClipboardManager;
import android.content.Intent;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.webkit.JavascriptInterface;
......@@ -20,8 +23,11 @@ import com.alibaba.android.arouter.facade.annotation.Route;
import com.alibaba.android.arouter.launcher.ARouter;
import com.frame.base.url.Constance;
import com.frame.rv.config.RvFrameConfig;
import com.ruiwenliu.wrapper.SPConstance;
import com.ruiwenliu.wrapper.base.BaseBean;
import com.ruiwenliu.wrapper.base.BaseStatusActivity;
import com.ruiwenliu.wrapper.util.um.CustomShareListener;
import com.ruiwenliu.wrapper.util.um.ShareManager;
import com.ruiwenliu.wrapper.weight.TitleView;
import com.rv.camp.R;
import com.rv.camp.R2;
......@@ -29,6 +35,10 @@ import com.rv.camp.api.CampApi;
import com.rv.camp.bean.CampDetailsBean;
import com.rv.camp.presenter.CampPresenter;
import com.rv.component.control.ProgressWebView;
import com.rv.component.utils.Cookie;
import com.umeng.socialize.bean.SHARE_MEDIA;
import com.umeng.socialize.shareboard.SnsPlatform;
import com.umeng.socialize.utils.ShareBoardlistener;
import com.yuyife.okgo.OkGoUtil;
import java.util.LinkedHashMap;
......@@ -58,8 +68,13 @@ public class CampDetailActivity extends BaseStatusActivity<CampPresenter> {
double longitude;
@Autowired()
double latitude;
private CampDetailsBean data;
private ShareManager shareManager;
private ClipboardManager myClipboard;
private String code;
@Override
protected int setLayout() {
......@@ -72,6 +87,18 @@ public class CampDetailActivity extends BaseStatusActivity<CampPresenter> {
webUrl = CampApi.TRAVEL_CAMPSITEDETAI + "?id=" + id + "&longitude=" + longitude + "&latitude=" + latitude;
Log.i("CampDetailActivity", "initView: " + webUrl);
initWeb();
code = Cookie.getStringValue(getApplicationContext(), SPConstance.USER_JSON_CODE, "");
titleView.setImageResource(R.id.iv_title_right, R.drawable.common_icon_rv_rentingcar_icon_share);
titleView.setChildClickListener(R.id.iv_title_right, new View.OnClickListener() {
@Override
public void onClick(View v) {
if (shareManager != null) {
shareManager.open();
}
}
});
}
......@@ -96,6 +123,9 @@ public class CampDetailActivity extends BaseStatusActivity<CampPresenter> {
private void resultData(CampDetailsBean data) {
this.data = data;
if (data != null && data.getData() != null) {
initShare(webUrl + "&shareType=app&code=" + code, data.getData().getName(), " ", data.getData().getLogo());
}
}
@TargetApi(Build.VERSION_CODES.JELLY_BEAN)
......@@ -147,10 +177,9 @@ public class CampDetailActivity extends BaseStatusActivity<CampPresenter> {
mWebView.setWebChromeClient(new WebChromeClient() {
@Override
public void onProgressChanged(WebView view, int newProgress) {
if(newProgress==100){
if (newProgress == 100) {
pbProgress.setVisibility(View.GONE);//加载完网页进度条消失
}
else{
} else {
pbProgress.setVisibility(View.VISIBLE);//开始加载网页时显示进度条
pbProgress.setProgress(newProgress);//设置进度值
}
......@@ -158,17 +187,11 @@ public class CampDetailActivity extends BaseStatusActivity<CampPresenter> {
});
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// TODO: add setContentView(...) invocation
ButterKnife.bind(this);
}
@OnClick(R2.id.tv_scheduled_camp)
public void onViewClicked(View view) {
int id = view.getId();
if (id == R.id.tv_scheduled_camp){
if (id == R.id.tv_scheduled_camp) {
Intent intent = new Intent(Intent.ACTION_DIAL);
Uri uri = Uri.parse("tel:" + data.getData().getPhone());
intent.setData(uri);
......@@ -235,4 +258,82 @@ public class CampDetailActivity extends BaseStatusActivity<CampPresenter> {
mWebView.destroy();// 生命周期销毁
}
/**
* 初始化分享
*/
private void initShare(final String webUrls, final String name, final String content, final String logo) {
shareManager = new ShareManager(this, new ShareBoardlistener() {
@Override
public void onclick(SnsPlatform snsPlatform, SHARE_MEDIA share_media) {
if (snsPlatform.mShowWord.equals("生成海报")) {
if (data.getData() != null) {
String icon = "";
if (TextUtils.isEmpty(data.getData().getPosterBackground())) {
icon = data.getData().getLogo();
} else {
icon = data.getData().getPosterBackground();
}
ARouter.getInstance()
.build(Constance.ACTIVITY_URL_POSTERACTIVITY)
.withString("url", webUrls)
.withString("imageUrl", icon)
.navigation();
}
} else if (snsPlatform.mShowWord.equals("复制链接")) {
copyText();
}
shareManager.showShare(share_media, webUrls, name, content, logo
, new CustomShareListener(mActivity) {
@Override
public void onResult(SHARE_MEDIA platform) {
super.onResult(platform);
if (platform.name().equals("WEIXIN_FAVORITE")) {
showToast(" 收藏成功啦");
} else {
if (platform != SHARE_MEDIA.MORE && platform != SHARE_MEDIA.SMS
&& platform != SHARE_MEDIA.EMAIL
&& platform != SHARE_MEDIA.FLICKR
&& platform != SHARE_MEDIA.FOURSQUARE
&& platform != SHARE_MEDIA.TUMBLR
&& platform != SHARE_MEDIA.POCKET
&& platform != SHARE_MEDIA.PINTEREST
&& platform != SHARE_MEDIA.INSTAGRAM
&& platform != SHARE_MEDIA.GOOGLEPLUS
&& platform != SHARE_MEDIA.YNOTE
&& platform != SHARE_MEDIA.EVERNOTE) {
showToast("分享成功啦");
}
}
}
});
}
}, "rv_um_share_bill", "rv_um_share_copy");
}
/**
* 复制文本
*/
private void copyText() {
if (myClipboard == null) {
myClipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
}
String code = Cookie.getStringValue(getApplicationContext(), SPConstance.USER_JSON_CODE, "");
ClipData myClip = ClipData.newPlainText("text", webUrl + "&shareType=app&code=" + code);
myClipboard.setPrimaryClip(myClip);
showToast("复制成功!");
}
}
......@@ -235,6 +235,7 @@ public class PatGeneratePosterActivity extends BaseStatusActivity<PickerPresente
c.drawColor(Color.WHITE);
v.layout(startX, startY, w + startX, h + startY);
v.draw(c);
v.postInvalidate();
return bmp;
}
......
......@@ -54,6 +54,7 @@ dependencies {
api project(':plugin_calendar')
api project(':plugin_coupon')
api project(':plugin_carpurchase')
api project(':plugin_poster')
api project(':RvWrapper')
// api project(':RvTravel')
annotationProcessor 'com.alibaba:arouter-compiler:1.1.4'
......
......@@ -361,12 +361,9 @@ public class CarDetailActivity extends BaseStatusActivity<CommonPresenter> {
}
ARouter.getInstance()
.build(Constance.ACTIVITY_URL_SHAREIMAGE)
.withString("icon", icon)
.withString("name", mCarBean.getVehicleModel().getName())
.withString("keyword", mCarBean.getVehicleModel().getKeyword())
.withDouble("price", mCarBean.getVehicleModel().getPrice())
.build(Constance.ACTIVITY_URL_POSTERACTIVITY)
.withString("url", url)
.withString("imageUrl", icon)
.navigation();
} else if (snsPlatform.mShowWord.equals("复制链接")) {
......@@ -460,7 +457,7 @@ public class CarDetailActivity extends BaseStatusActivity<CommonPresenter> {
myClipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
}
String code = Cookie.getStringValue(getApplicationContext(), SPConstance.USER_JSON_CODE, "");
ClipData myClip = ClipData.newPlainText("text", webUrl+ "&shareType=app&code=" + code);
ClipData myClip = ClipData.newPlainText("text", webUrl + "&shareType=app&code=" + code);
myClipboard.setPrimaryClip(myClip);
showToast("复制成功!");
}
......
......@@ -272,7 +272,9 @@ public class CarRentalListActivity extends BaseStatusActivity<CommonPresenter> i
map.put("limit", 10);
map.put("lat", mLat);
map.put("lon", mLon);
map.put("parkBranchCompanyId", dataBean.getStartCompanyId());
// map.put("parkBranchCompanyId", dataBean.getStartCompanyId());
map.put("startCompanyId",dataBean.getStartCompanyId());
map.put("endCompanyId",dataBean.getEndCompanyId());
try {
map.put("startDateTamp", TimeManager.dateToStamp(begDate));
map.put("endDateTamp", TimeManager.dateToStamp(endDate));
......
......@@ -52,6 +52,7 @@ import com.rv.component.utils.DisplayUtil;
import com.rv.component.utils.LogUtil;
import com.rv.component.utils.MyUtils;
import com.rv.component.utils.ObservableScrollView;
import com.rv.home.R;
import com.rv.home.R2;
import com.rv.home.rv.module.ApiConfig;
......@@ -259,12 +260,12 @@ public class HomeFragment extends BaseFragment<HomePresenter> implements Observa
Drawable drawable = getResources().getDrawable(R.drawable.icon_day_times);
drawable.setBounds(0, 0, DisplayUtil.dip2px(getContext(), 25), DisplayUtil.dip2px(getContext(), 5));
tvDay.setCompoundDrawables(null, null, null, drawable);
begDate = DateUtils.formatDate8(DateUtils.getCurDateTime());
begDate = MyUtils.getFetureDate(1) + " 09:00";
tvGetTime.setText(DateUtils.formatDate66(begDate));
tvGetWeek.setText("周" + MyUtils.getWeek(DateUtils.getCurDate()));
endDate = MyUtils.getFetureDate2(1);
endDate = MyUtils.getFetureDate(2)+ " 18:00";
tvOutTime.setText(DateUtils.formatDate66(endDate));
tvOutWeek.setText("周" + MyUtils.getWeek(MyUtils.getFetureDate(1)));
tvOutWeek.setText("周" + MyUtils.getWeek(MyUtils.getFetureDate(2)));
copyDay = DateUtils.compareDateDay(MyUtils.getFetureDate(1), DateUtils.getCurDate()) + 1;
......@@ -1036,7 +1037,7 @@ public class HomeFragment extends BaseFragment<HomePresenter> implements Observa
if (listsBanners.size() > 0) {
BeanHomeBanner.DataBean bean = listsBanners.get(position);
mPresenter.saveOnclick("1", bean.getId());
mPresenter.saveOnclick("2", bean.getId());
if (bean != null && !TextUtils.isEmpty(bean.getUrl())) {
mPresenter.toTarget(getActivity(), bean.getUrl(), bean.getTitle());
}
......
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:background="@color/colorYellow"
android:orientation="vertical"
tools:context=".rv.module.ui.main.home.ShareImageActivity">
<com.ruiwenliu.wrapper.statusbar.StatusBarHeightView
app:use_type="use_padding_top"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="@dimen/size_50">
<ImageView
android:id="@+id/img_title_left"
android:layout_width="@dimen/size_32"
android:layout_height="@dimen/size_32"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_marginLeft="@dimen/size_5"
android:clickable="true"
android:padding="@dimen/size_8"
android:src="@drawable/rv_common_icon_back_dark" />
<TextView
android:id="@+id/tv_share"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerInParent="true"
android:padding="@dimen/size_15"
android:text="分享"
android:textColor="@color/colorWrite"
android:textSize="@dimen/text_16" />
</RelativeLayout>
</com.ruiwenliu.wrapper.statusbar.StatusBarHeightView>
<View
android:layout_width="match_parent"
android:layout_height="@dimen/size_30" />
<android.support.v4.widget.NestedScrollView
android:id="@+id/nested_scrollview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/size_40"
android:layout_marginRight="@dimen/size_40"
android:background="@color/colorYellow"
android:orientation="vertical">
<RelativeLayout
android:id="@+id/rl_body"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/colorWrite">
<ImageView
android:id="@+id/iv_goods"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="@dimen/size_200"
android:scaleType="fitXY" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@id/iv_goods"
android:background="@color/colorWrite"
android:orientation="vertical">
<TextView
android:id="@+id/tv_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ellipsize="end"
android:maxLines="1"
android:paddingLeft="@dimen/size_10"
android:paddingTop="@dimen/size_10"
android:paddingRight="@dimen/size_10"
android:text="大通自行式C型房车(旅居版)"
android:textColor="@color/textMain"
android:textSize="@dimen/text_16" />
<TextView
android:id="@+id/tv_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/size_3"
android:ellipsize="end"
android:maxLines="1"
android:paddingLeft="@dimen/size_10"
android:paddingRight="@dimen/size_10"
android:text="大通自行式C型房车(旅居版)"
android:textColor="@color/textGray"
android:textSize="@dimen/text_12" />
<TextView
android:id="@+id/tv_price"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/size_5"
android:ellipsize="end"
android:maxLines="1"
android:paddingLeft="@dimen/size_10"
android:paddingRight="@dimen/size_10"
android:text="¥3500天"
android:textColor="@color/colorAuxiliaryRed"
android:textSize="@dimen/text_16" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/size_15"
android:gravity="center_vertical"
android:orientation="horizontal">
<ImageView
android:layout_width="@dimen/size_15"
android:layout_height="@dimen/size_30"
android:background="@drawable/rv_half_left" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1">
<include layout="@layout/common_line" />
</RelativeLayout>
<ImageView
android:layout_width="@dimen/size_15"
android:layout_height="@dimen/size_30"
android:background="@drawable/rv_half_right" />
</LinearLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="@dimen/size_15">
<ImageView
android:id="@+id/iv_code"
android:layout_width="@dimen/size_80"
android:layout_height="@dimen/size_80"
android:layout_marginLeft="@dimen/size_30"
android:scaleType="centerCrop" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="@dimen/size_10"
android:layout_marginRight="@dimen/size_30"
android:layout_toRightOf="@id/iv_code"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="滴房车"
android:textColor="@color/textMain"
android:textSize="@dimen/text_16" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="长按二维码查看详情"
android:textColor="@color/textLightGrey"
android:textSize="@dimen/text_16" />
</LinearLayout>
</RelativeLayout>
</LinearLayout>
</RelativeLayout>
</android.support.v4.widget.NestedScrollView>
</LinearLayout>
......@@ -399,6 +399,12 @@ public class MineFragment extends BaseFragment<CommonPresenter> implements Simpl
private void setBanner() {
if (images != null && images.size() > 0) {
mineBanner.setVisibility(View.VISIBLE);
} else {
mineBanner.setVisibility(View.GONE);
}
mineBanner.isAutoPlay(true)
.setBannerTitles(titles)
.setImages(images)
......
......@@ -269,7 +269,7 @@
android:clickable="false"
android:gravity="center"
android:orientation="vertical"
android:visibility="gone">
android:visibility="visible">
<ImageView
android:layout_width="@dimen/size_25"
......
......@@ -55,5 +55,6 @@ dependencies {
api project(':component_control')
api project(':component_resource')
api project(':plugin_coupon')
api project(':plugin_poster')
}
......@@ -585,6 +585,9 @@ public class TourismFragment extends BaseFragment<TourismPresenter> implements S
} else {
latLatitude = result.getLocation().latitude;
lonLongitude = result.getLocation().longitude;
mTourAroundAdapter.getData().clear();
mTourAroundAdapter.notifyDataSetChanged();
loadTourAroundData();
}
}
});
......
......@@ -37,4 +37,5 @@ public interface TourismApi extends RvFrameConfig {
String TOUR_DETAIL = HOST + "/api/tour/tourGood/app/unauth/usable/%s"; // 旅游详情
}
......@@ -30,12 +30,14 @@ import com.frame.base.bus.IDCardCertificationEvent;
import com.frame.base.bus.Observer;
import com.frame.base.bus.RxBus;
import com.frame.base.url.Constance;
import com.frame.rv.config.CommonApi;
import com.frame.rv.config.RvFrameConfig;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.ruiwenliu.wrapper.SPConstance;
import com.ruiwenliu.wrapper.base.BaseBean;
import com.ruiwenliu.wrapper.base.BaseStatusActivity;
import com.ruiwenliu.wrapper.base.presenter.CommonPresenter;
import com.ruiwenliu.wrapper.bean.BeanUserInfo;
import com.ruiwenliu.wrapper.util.um.CustomShareListener;
import com.ruiwenliu.wrapper.util.um.ShareManager;
......@@ -114,6 +116,8 @@ public class TravelDetailsActivity extends BaseStatusActivity<TourismPresenter>
@Autowired()
double price;
private String code;
// public static Intent getIntent(Context context, BeanTourAround.DataBeanX.DataBean dataBean) {
// return new Intent(context, TravelDetailsActivity.class)
// .putExtra("dataBean", dataBean);
......@@ -132,7 +136,7 @@ public class TravelDetailsActivity extends BaseStatusActivity<TourismPresenter>
initWeb();
initRxbus();
if (!TextUtils.isEmpty(name) && !TextUtils.isEmpty(url)) {
String code = Cookie.getStringValue(getApplicationContext(), SPConstance.USER_JSON_CODE, "");
code = Cookie.getStringValue(getApplicationContext(), SPConstance.USER_JSON_CODE, "");
initShare(webUrl + "&shareType=app&code=" + code, name, " ", url);
}
......@@ -275,7 +279,7 @@ public class TravelDetailsActivity extends BaseStatusActivity<TourismPresenter>
name = beanTourDetail.getData().getName();
content = beanTourDetail.getData().getContent();
price = Double.valueOf(beanTourDetail.getData().getPrice());
initShare(webUrl + "&shareType=app", name, content, url);
initShare(webUrl + "&shareType=app&code=" + code, name, content, url);
}
break;
......@@ -365,7 +369,7 @@ public class TravelDetailsActivity extends BaseStatusActivity<TourismPresenter>
/**
* 初始化分享
*/
private void initShare(final String webUrl, final String name, final String content, final String logo) {
private void initShare(final String webUrls, final String name, final String content, final String logo) {
shareManager = new ShareManager(this, new ShareBoardlistener() {
@Override
......@@ -380,17 +384,15 @@ public class TravelDetailsActivity extends BaseStatusActivity<TourismPresenter>
}
ARouter.getInstance()
.build(Constance.ACTIVITY_URL_SHAREIMAGE)
.withString("icon", icon)
.withString("name", name)
.withString("keyword", content)
.withDouble("price", price)
.withString("url", webUrl)
.build(Constance.ACTIVITY_URL_POSTERACTIVITY)
.withString("url", webUrls)
.withString("imageUrl", icon)
.navigation();
} else if (snsPlatform.mShowWord.equals("复制链接")) {
copyText();
}
shareManager.showShare(share_media, webUrl, name, content, logo
shareManager.showShare(share_media, webUrls, name, content, logo
, new CustomShareListener(mActivity) {
@Override
......@@ -424,7 +426,7 @@ public class TravelDetailsActivity extends BaseStatusActivity<TourismPresenter>
}
}, "rv_um_share_bill", "rv_um_share_copy");
}
/**
* 与h5交互
*/
......@@ -433,7 +435,7 @@ public class TravelDetailsActivity extends BaseStatusActivity<TourismPresenter>
@JavascriptInterface
public String getToken() {
String token = OkGoUtil.getToken();
if (TextUtils.isEmpty(token)){
if (TextUtils.isEmpty(token)) {
ARouter.getInstance().build(Constance.ACTIVITY_URL_LOGINRV).navigation();
}
return token;
......@@ -621,4 +623,22 @@ public class TravelDetailsActivity extends BaseStatusActivity<TourismPresenter>
myClipboard.setPrimaryClip(myClip);
showToast("复制成功!");
}
/**
* 分享积分
*/
private void sharingSuccess(){
// mPresenter.postBodyData(RvFrameConfig.HOST,0, CommonApi.TOUR_SENDMESSAGE, new Sharing("",""),false);
}
private class Sharing {
private String integralRuleCode;
private String userId;
public Sharing(String integralRuleCode, String userId) {
this.integralRuleCode = integralRuleCode;
this.userId = userId;
}
}
}
......@@ -140,9 +140,9 @@ public class CalendarActivity extends BaseStatusActivity<CalendarPresenter> {
wheelViewLeft.setOnWheelViewListener(new WheelView.OnWheelViewListener() {
@Override
public void onSelected(int selectedIndex, String item) {
begSelected = selectedIndex;
s_begTime = item;
tvGetTime.setText(item);
begSelected = selectedIndex;
s_begTime = item;
tvGetTime.setText(item);
}
});
......@@ -207,7 +207,7 @@ public class CalendarActivity extends BaseStatusActivity<CalendarPresenter> {
return;
}
if (s_begDate.equals(s_endDate) && DateUtils.formatDate20(s_endTime) <= DateUtils.formatDate20(s_begTime)){
if (s_begDate.equals(s_endDate) && DateUtils.formatDate20(s_endTime) <= DateUtils.formatDate20(s_begTime)) {
showToast("还车时刻要大于取车时刻!");
return;
}
......@@ -306,6 +306,9 @@ public class CalendarActivity extends BaseStatusActivity<CalendarPresenter> {
if (CalendarDateUtil.getCurDate().equals(curDay)) {
strDay = "今天";
day.setCurDay(true);
day.setDefTextColor(context.getResources().getColor(R.color.gray_FFB74B));
day.setDefNongTextColor(context.getResources().getColor(R.color.gray_FFB74B));
day.setCanBeChoose(false);
} else if (CalendarDateUtil.compareDateDay(CalendarDateUtil.getCurDate(), curDay) > 0 || spanIndex >= MAX_SPAN) {
//如果是今天以前
day.setDefTextColor(context.getResources().getColor(R.color.ri_lhui));
......@@ -364,9 +367,11 @@ public class CalendarActivity extends BaseStatusActivity<CalendarPresenter> {
* 初始化时间数据
*/
private void initTime() {
for (int i = 0; i < 24; i++) {
for (int i = 9; i < 22; i++) {
timeList.add(String.format("%02d", i) + ":00");
timeList.add(String.format("%02d", i) + ":30");
if (i < 21) {
timeList.add(String.format("%02d", i) + ":30");
}
}
}
}
apply plugin: 'com.android.library'
apply plugin: 'com.jakewharton.butterknife'
android {
compileSdkVersion rootProject.ext.compileSdkVersion
buildToolsVersion rootProject.ext.buildToolsVersion
defaultConfig {
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 1
versionName "1.0"
flavorDimensions "default"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
javaCompileOptions {
annotationProcessorOptions {
arguments = [moduleName: project.getName()]
}
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
productFlavors {
//开发环境
dev {
}
sit {
}
pro {
}
}
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
api 'com.jakewharton:butterknife:9.0.0-rc1'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
annotationProcessor 'com.jakewharton:butterknife-compiler:9.0.0-rc1'
annotationProcessor 'com.alibaba:arouter-compiler:1.1.4'
implementation 'com.alibaba:fastjson:1.2.21'
api project(':RvWrapper')
api project(':component_resource')
api project(':component_utils')
}
# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html
# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *;
#}
# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable
# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.rv.poster.plugin">
<application>
<activity android:name=".PosterActivity"></activity>
</application>
</manifest>
\ No newline at end of file
package com.rv.home.rv.module.ui.main.home;
package com.rv.poster.plugin;
import android.Manifest;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.res.Configuration;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.os.Build;
import android.os.Bundle;
import android.text.Html;
import android.support.annotation.NonNull;
import android.support.v4.app.ActivityCompat;
import android.support.v4.content.ContextCompat;
import android.support.v7.widget.CardView;
import android.text.TextUtils;
import android.view.View;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.alibaba.android.arouter.facade.annotation.Autowired;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.bumptech.glide.Glide;
import com.bumptech.glide.load.resource.bitmap.RoundedCorners;
import com.bumptech.glide.request.RequestOptions;
import com.frame.base.url.Constance;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.WriterException;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.QRCodeWriter;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
import com.ruiwenliu.wrapper.base.BaseBean;
import com.ruiwenliu.wrapper.base.swipe.SwipeBackActivity;
import com.ruiwenliu.wrapper.statusbar.StatusBarUtil;
import com.ruiwenliu.wrapper.base.BaseStatusActivity;
import com.ruiwenliu.wrapper.base.presenter.CommonPresenter;
import com.ruiwenliu.wrapper.bean.BeanUserInfo;
import com.ruiwenliu.wrapper.bean.UserInfoBean;
import com.ruiwenliu.wrapper.util.TransformationUtil;
import com.ruiwenliu.wrapper.util.glide.GlideManager;
import com.ruiwenliu.wrapper.util.glide.GlideOptions;
import com.ruiwenliu.wrapper.util.um.CustomShareListener;
import com.ruiwenliu.wrapper.util.um.ShareManager;
import com.ruiwenliu.wrapper.weight.TitleView;
import com.rv.home.R;
import com.rv.home.R2;
import com.ruiwenliu.wrapper.base.presenter.CommonPresenter;
import com.umeng.socialize.UMShareAPI;
import com.rv.component.utils.CacheEnum;
import com.rv.component.utils.DisplayUtil;
import com.rv.component.utils.RvCache;
import com.rv.component.utils.ShareUtils;
import com.rv.component.utils.ZxingUtils;
import com.umeng.socialize.bean.SHARE_MEDIA;
import com.umeng.socialize.media.UMImage;
import com.umeng.socialize.shareboard.SnsPlatform;
import com.umeng.socialize.utils.ShareBoardlistener;
import java.util.HashMap;
import java.util.Map;
import java.io.File;
import butterknife.BindView;
import butterknife.OnClick;
@Route(path = Constance.ACTIVITY_URL_SHAREIMAGE)
public class ShareImageActivity extends SwipeBackActivity<CommonPresenter> {
/**
* 租车、旅游、营地海报分享
*/
@Route(path = Constance.ACTIVITY_URL_POSTERACTIVITY)
public class PosterActivity extends BaseStatusActivity<CommonPresenter> {
@BindView(R2.id.iv_goods)
ImageView ivGoods;
@BindView(R2.id.img_bill_top)
ImageView imgBillTop;
@BindView(R2.id.ring_header)
ImageView ringHeader;
@BindView(R2.id.tv_name)
TextView tvName;
@BindView(R2.id.tv_content)
TextView tvContent;
@BindView(R2.id.tv_price)
TextView tvPrice;
@BindView(R2.id.iv_code)
ImageView ivCode;
@BindView(R2.id.rl_body)
RelativeLayout rlBody;
private ShareManager shareManager;
@BindView(R2.id.img_qrcode)
ImageView imgQrcode;
@BindView(R2.id.ll_bill_content)
CardView llBillContent;
@Autowired()
String icon;
@Autowired()
String name;
@Autowired()
String keyword;
@Autowired()
double price;
@Autowired()
String url;
@Override
protected void loadData(Bundle savedInstanceState, Intent intent) {
@Autowired()
String imageUrl;
}
@Override
protected int setLayout() {
return R.layout.rv_act_share_image;
}
private ShareManager shareManager;
private Bitmap bitmap = null;
private UMImage image = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
StatusBarUtil.setRootViewFitsSystemWindows(mActivity, false);
protected int setLayout() {
return R.layout.activity_poster;
}
@Override
protected void initView(Bundle savedInstanceState, TitleView titleView, Intent intent) {
showTitle(false);
GlideManager.getInstance(this).loadImage3(icon, ivGoods);
if (!TextUtils.isEmpty(name))
tvName.setText(name);
else
tvName.setText("");
if (!TextUtils.isEmpty(keyword))
tvContent.setText(Html.fromHtml(keyword));
else
tvContent.setText("");
tvPrice.setText(String.format("%1$s%2$s", price, this.getString(R.string.rv_day)));
//生成带中间图标的二维码
Bitmap success = createQRImage(url, 300, 300,
BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher));
ivCode.setImageBitmap(success);
titleView.setTitle("生成海报");
if (!TextUtils.isEmpty(url)) {
Bitmap bitmap = ZxingUtils.createQRImage(url, DisplayUtil.dip2px(this, 150), DisplayUtil.dip2px(this, 150), BitmapFactory.decodeResource(getResources(), R.drawable.logo_hint));
imgQrcode.setImageBitmap(bitmap);
}
GlideOptions options = GlideOptions.placeholderOf(com.ruiwenliu.wrapper.R.drawable.glide_icon_placeholder).
error(com.ruiwenliu.wrapper.R.drawable.glide_icon_error);
TransformationUtil utils = new TransformationUtil(imgBillTop);
Glide.with(this)
.asBitmap()
.load(imageUrl)
.apply(options)
.apply(RequestOptions
.bitmapTransform(new RoundedCorners(12)).override(imgBillTop.getWidth(), imgBillTop.getHeight())
.disallowHardwareConfig())
.into(utils);
UserInfoBean userInfoBean = (UserInfoBean) RvCache.getInstance(getApplicationContext()).get(CacheEnum.USER);
if (userInfoBean != null && userInfoBean.getData() != null) {
String name = userInfoBean.getData().getNickname();
String url = userInfoBean.getData().getHeadimgurl();
if (!TextUtils.isEmpty(url)) {
GlideManager.getInstance(getApplicationContext()).loadImage(url, ringHeader, R.drawable.icon_bill_defult);
}
if (!TextUtils.isEmpty(name)) {
tvName.setText(name);
}
}
}
@Override
......@@ -113,26 +121,63 @@ public class ShareImageActivity extends SwipeBackActivity<CommonPresenter> {
}
@OnClick({R2.id.img_title_left, R2.id.tv_share, R2.id.iv_code})
@OnClick({R2.id.tv_item_save_bill, R2.id.tv_item_share})
public void onViewClicked(View view) {
int i = view.getId();
if (i == R.id.img_title_left) {
finish();
int id = view.getId();
if (id == R.id.tv_item_save_bill) {
preShare(0, 1001);
} else if (id == R.id.tv_item_share) {
preShare(1, 1002);
}
}
} else if (i == R.id.tv_share) {
if (rlBody != null && getViewBitmap(rlBody) != null) {
initShare(getViewBitmap(rlBody));
}
} else if (i == R.id.iv_code) {
/**
* 预备下载 进行 6.0权限检查
*/
private void preShare(int type, int requestCode) {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
if (type == 0) {
saveBill(llBillContent);
} else {
share(llBillContent);
}
} else {
if (ContextCompat.checkSelfPermission(this,
Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) {
if (type == 0) {
saveBill(llBillContent);
} else {
share(llBillContent);
}
} else {//申请权限
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, requestCode);
}
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
/** attention to this below ,must add this**/
UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data);
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
switch (requestCode) {
case 1001:
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
saveBill(llBillContent);
} else {
showToast("授权失败,无法分享海报");
}
break;
case 1002:
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
share(llBillContent);
} else {
showToast("授权失败,无法分享海报");
}
break;
}
}
/**
......@@ -144,38 +189,32 @@ public class ShareImageActivity extends SwipeBackActivity<CommonPresenter> {
shareManager.close();
}
@Override
public void onDestroy() {
super.onDestroy();
}
/**
* 获取scrollview的截屏
/******
* 分享
*/
public Bitmap getViewBitmap(RelativeLayout view) {
int w = view.getWidth();
int h = view.getHeight();
Bitmap bmp = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(bmp);
c.drawColor(Color.WHITE);
/** 如果不设置canvas画布为白色,则生成透明 */
view.layout(0, 0, w, h);
view.draw(c);
return bmp;
}
public void share(View view) {
if (shareManager == null) {
/**
* 初始化分享
*/
private void initShare(final Bitmap bitmap) {
if (view != null && bitmap == null) {
bitmap = ShareUtils.viewConversionBitmap(view);
}
File file = null;
if (bitmap != null) {
file = ShareUtils.saveBitmapFile(mActivity, bitmap);
}
if (file != null) {
image = new UMImage(mActivity, file);//bitmap文件
image.compressStyle = UMImage.CompressStyle.SCALE;//大小压缩,默认为大小压缩,适合普通很大的图
image.compressStyle = UMImage.CompressStyle.QUALITY;//质量压缩,适合长图的分享
image.compressFormat = Bitmap.CompressFormat.PNG;
}
if (shareManager == null) {
shareManager = new ShareManager(this, new ShareBoardlistener() {
@Override
public void onclick(SnsPlatform snsPlatform, SHARE_MEDIA share_media) {
shareManager.showShareImage(share_media, bitmap, new CustomShareListener(mActivity) {
shareManager.showShareImage2(share_media, image, new CustomShareListener(mActivity) {
@Override
public void onResult(SHARE_MEDIA platform) {
super.onResult(platform);
......@@ -200,7 +239,6 @@ public class ShareImageActivity extends SwipeBackActivity<CommonPresenter> {
showToast(platform + "分享成功啦");
}
}
}
......@@ -209,102 +247,23 @@ public class ShareImageActivity extends SwipeBackActivity<CommonPresenter> {
});
}
shareManager.open();
}
public static Bitmap createQRImage(String content, int widthPix, int heightPix,
Bitmap logoBm) {
try {
//配置参数
Map<EncodeHintType, Object> hints = new HashMap<>();
hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
//容错级别
hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H);
//设置空白边距的宽度
hints.put(EncodeHintType.MARGIN, 1); //default is 4
// 图像数据转换,使用了矩阵转换
BitMatrix bitMatrix = null;
try {
bitMatrix = new QRCodeWriter().encode(content, BarcodeFormat.QR_CODE, widthPix,
heightPix, hints);
} catch (WriterException e) {
e.printStackTrace();
}
int[] pixels = new int[widthPix * heightPix];
// 下面这里按照二维码的算法,逐个生成二维码的图片,
// 两个for循环是图片横列扫描的结果
for (int y = 0; y < heightPix; y++) {
for (int x = 0; x < widthPix; x++) {
if (bitMatrix.get(x, y)) {
pixels[y * widthPix + x] = 0xff000000;
} else {
pixels[y * widthPix + x] = 0xffffffff;
}
}
/*****
* 保存海报
* @param view
*/
public void saveBill(View view) {
if (view != null) {
Bitmap bitmap = ShareUtils.viewConversionBitmap(view);
File file = null;
if (bitmap != null) {
file = ShareUtils.saveBitmapFile(mActivity, bitmap);
}
// 生成二维码图片的格式,使用ARGB_8888
Bitmap bitmap = Bitmap.createBitmap(widthPix, heightPix, Bitmap.Config.ARGB_8888);
bitmap.setPixels(pixels, 0, widthPix, 0, 0, widthPix, heightPix);
if (logoBm != null) {
bitmap = Logo(bitmap, logoBm);
if (file != null) {
showToast("海报保存在" + file.getAbsolutePath());
}
//必须使用compress方法将bitmap保存到文件中再进行读取。直接返回的bitmap是没有任何压缩的,
// 内存消耗巨大!
return bitmap;
// return bitmap != null && bitmap.compress(Bitmap.CompressFormat.JPEG, 100);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
private static Bitmap Logo(Bitmap src, Bitmap logo) {
if (src == null) {
return null;
}
if (logo == null) {
return src;
}
//获取图片的宽高
int srcWidth = src.getWidth();
int srcHeight = src.getHeight();
int logoWidth = logo.getWidth();
int logoHeight = logo.getHeight();
if (srcWidth == 0 || srcHeight == 0) {
return null;
}
if (logoWidth == 0 || logoHeight == 0) {
return src;
}
//logo大小为二维码整体大小的1/5
float scaleFactor = srcWidth * 1.0f / 5 / logoWidth;
Bitmap bitmap = Bitmap.createBitmap(srcWidth, srcHeight, Bitmap.Config.ARGB_8888);
try {
Canvas canvas = new Canvas(bitmap);
canvas.drawBitmap(src, 0, 0, null);
canvas.scale(scaleFactor, scaleFactor, srcWidth / 2, srcHeight / 2);
canvas.drawBitmap(logo, (srcWidth - logoWidth) / 2, (srcHeight - logoHeight) / 2, null);
canvas.save();
canvas.restore();
} catch (Exception e) {
bitmap = null;
e.getStackTrace();
}
return bitmap;
}
}
<?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"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/colorWrite"
android:orientation="vertical">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#F9D993">
<android.support.v7.widget.CardView
android:id="@+id/ll_bill_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="top"
android:layout_marginLeft="@dimen/size_15"
android:layout_marginTop="@dimen/size_15"
android:layout_marginRight="@dimen/size_15"
android:layout_marginBottom="@dimen/size_70"
android:background="@color/white"
app:cardCornerRadius="5dp">
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/size_10"
android:layout_marginTop="@dimen/size_10"
android:layout_marginRight="@dimen/size_10"
android:layout_marginBottom="@dimen/size_10"
android:scrollbars="none">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:orientation="vertical">
<ImageView
android:id="@+id/img_bill_top"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_10"
android:gravity="center_vertical"
android:orientation="horizontal">
<ImageView
android:id="@+id/ring_header"
android:layout_width="@dimen/size_50"
android:layout_height="@dimen/size_50" />
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/size_5"
android:layout_weight="1"
android:orientation="vertical">
<TextView
android:id="@+id/tv_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:singleLine="false"
android:textColor="@color/colorMain"
android:textSize="@dimen/text_18" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:layout_marginLeft="@dimen/text_10"
android:gravity="center_vertical"
android:orientation="horizontal">
<View
android:layout_width="1px"
android:layout_height="@dimen/size_60"
android:background="#E1E1E1" />
<ImageView
android:id="@+id/img_qrcode"
android:layout_width="@dimen/size_70"
android:layout_height="@dimen/size_70"
android:layout_marginLeft="@dimen/size_20" />
</LinearLayout>
</LinearLayout>
<include layout="@layout/common_line" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/size_5"
android:text="滴房车app,带你走进房车生活"
android:textColor="@color/gray_B4B4B4"
android:textSize="@dimen/text_8" />
</LinearLayout>
</ScrollView>
</android.support.v7.widget.CardView>
<!--</LinearLayout>-->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="@dimen/size_70"
android:layout_gravity="bottom"
android:layout_marginLeft="@dimen/size_10"
android:layout_marginRight="@dimen/size_10"
android:gravity="center_horizontal|bottom"
android:orientation="horizontal"
android:paddingTop="@dimen/size_20"
android:paddingBottom="@dimen/size_10">
<TextView
android:id="@+id/tv_item_save_bill"
android:layout_width="0dp"
android:layout_height="@dimen/dp_40"
android:layout_weight="1"
android:background="@drawable/shape_rv_bg_shallow_while_circle"
android:gravity="center"
android:text="保存海报"
android:textColor="#FE9C36"
android:textSize="@dimen/sp_16" />
<TextView
android:id="@+id/tv_item_share"
android:layout_width="0dp"
android:layout_height="@dimen/dp_40"
android:layout_marginLeft="@dimen/size_10"
android:layout_weight="1"
android:background="@drawable/shape_rv_bg_shallow_dark_yellow_circle"
android:gravity="center"
android:text="马上分享"
android:textColor="@color/white"
android:textSize="@dimen/sp_16" />
</LinearLayout>
</FrameLayout>
</LinearLayout>
\ No newline at end of file
<resources>
<string name="app_name">plugin_poster</string>
</resources>
......@@ -4,13 +4,21 @@ android {
compileSdkVersion 28
defaultConfig {
minSdkVersion 19
targetSdkVersion 28
flavorDimensions "default"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
// javaCompileOptions {
//
// annotationProcessorOptions {
//
// arguments = [moduleName: project.getName()]
//
// }
// }
}
buildTypes {
......@@ -46,6 +54,9 @@ dependencies {
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
// annotationProcessor 'com.alibaba:arouter-compiler:1.1.4'
api project(':module_home')
api project(':component_resource')
api project(':component_utils')
}
......@@ -3,6 +3,7 @@
package="com.rv.share">
<application>
<activity android:name=".ShareActivity" />
<activity android:name=".BillActivity" />
<activity android:name=".WebViewActivity">
......@@ -17,7 +18,7 @@
</activity>
<activity android:name=".ReativeBillActivity" />
<activity android:name=".PopularizeActivity" />
<activity android:name=".ShareRulerActivity"></activity>
<activity android:name=".ShareRulerActivity" />
</application>
</manifest>
\ No newline at end of file
......@@ -10,7 +10,7 @@ import android.view.View;
import android.webkit.WebView;
import com.ruiwenliu.wrapper.base.presenter.CommonPresenter;
import com.rv.share.utils.StorageUtils;
import com.rv.component.utils.StorageUtils;
import com.rv.share.view.ShareChoiceDialog;
import com.umeng.socialize.ShareAction;
import com.umeng.socialize.UMShareListener;
......
......@@ -6,7 +6,7 @@ import android.view.View;
import android.widget.Toast;
import com.ruiwenliu.wrapper.base.presenter.CommonPresenter;
import com.rv.share.utils.ShareUtils;
import com.rv.component.utils.ShareUtils;
import com.rv.share.view.ShareChoiceDialog;
import com.umeng.socialize.ShareAction;
import com.umeng.socialize.bean.SHARE_MEDIA;
......
......@@ -13,7 +13,7 @@ import com.rv.component.utils.DisplayUtil;
import com.ruiwenliu.wrapper.base.presenter.CommonPresenter;
import com.rv.share.R;
import com.rv.share.ReativeBillActivity;
import com.rv.share.utils.ShareUtils;
import com.rv.component.utils.ShareUtils;
import com.rv.share.view.ShareChoiceDialog;
import com.umeng.socialize.ShareAction;
import com.umeng.socialize.UMShareListener;
......
include ':RvFrame', ':plugin_carpurchase'
include ':RvFrame', ':plugin_carpurchase', ':plugin_poster'
include ':RvTravel'
include ':RvClient'
include ':RvWrapper'
......
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