添加版本更新功能

This commit is contained in:
2023-09-29 00:23:10 +08:00
parent 2bdbcc643f
commit 90cce8552a
7 changed files with 247 additions and 361 deletions

View File

@@ -38,7 +38,7 @@ android {
minSdkVersion 21 minSdkVersion 21
targetSdkVersion 29 targetSdkVersion 29
// multiDexEnabled true // multiDexEnabled true
versionCode 6 versionCode 118
versionName "1.1.8" versionName "1.1.8"
testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner' testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
ndk { ndk {

View File

@@ -1,14 +1,17 @@
package com.sl.house_property; package com.sl.house_property;
import android.app.Dialog;
import android.app.ProgressDialog; import android.app.ProgressDialog;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.graphics.Color;
import android.graphics.Rect; import android.graphics.Rect;
import android.graphics.drawable.ColorDrawable;
import android.net.Uri; import android.net.Uri;
import android.os.Bundle; import android.os.Bundle;
import androidx.annotation.NonNull; import android.text.Html;
import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.LinearLayoutManager;
import android.text.TextPaint; import android.text.TextPaint;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.Log; import android.util.Log;
@@ -17,10 +20,19 @@ import android.view.LayoutInflater;
import android.view.MotionEvent; import android.view.MotionEvent;
import android.view.View; import android.view.View;
import android.view.ViewTreeObserver; import android.view.ViewTreeObserver;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast; import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.StyleRes;
import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.LinearLayoutManager;
import com.bumptech.glide.Glide; import com.bumptech.glide.Glide;
import com.bumptech.glide.request.RequestOptions; import com.bumptech.glide.request.RequestOptions;
import com.cutil.ScreenUtils; import com.cutil.ScreenUtils;
@@ -32,14 +44,14 @@ import com.lxj.xpopup.XPopup;
import com.lzy.ninegrid.ImageInfo; import com.lzy.ninegrid.ImageInfo;
import com.lzy.ninegrid.preview.NineGridViewClickAdapter; import com.lzy.ninegrid.preview.NineGridViewClickAdapter;
import com.lzy.okgo.OkGo; import com.lzy.okgo.OkGo;
import com.lzy.okgo.callback.StringCallback; import com.lzy.okgo.cache.CacheMode;
import com.lzy.okgo.convert.StringConvert;
import com.lzy.okgo.model.Response; import com.lzy.okgo.model.Response;
import com.lzy.okgo.request.base.Request; import com.lzy.okrx2.adapter.ObservableResponse;
import com.scwang.smartrefresh.layout.api.RefreshLayout; import com.scwang.smartrefresh.layout.api.RefreshLayout;
import com.scwang.smartrefresh.layout.listener.OnRefreshLoadMoreListener; import com.scwang.smartrefresh.layout.listener.OnRefreshLoadMoreListener;
import com.selectpicker.OptionsPopupWindow; import com.selectpicker.OptionsPopupWindow;
import com.sl.house_property.databinding.FragmentMainBinding; import com.sl.house_property.databinding.FragmentMainBinding;
import com.sl.house_property.databinding.ItemCommentBinding; import com.sl.house_property.databinding.ItemCommentBinding;
import com.sl.house_property.databinding.ItemDiscoveryBinding; import com.sl.house_property.databinding.ItemDiscoveryBinding;
import com.sl.house_property.db.CommentBeanData; import com.sl.house_property.db.CommentBeanData;
@@ -49,7 +61,6 @@ import com.sl.house_property.discovery.GoodsInfoDialog;
import com.sl.house_property.discovery.HistoryRecordActivity; import com.sl.house_property.discovery.HistoryRecordActivity;
import com.sl.house_property.discovery.HistoryRecordActivitytwo; import com.sl.house_property.discovery.HistoryRecordActivitytwo;
import com.sl.house_property.discovery.SelectDialog; import com.sl.house_property.discovery.SelectDialog;
import com.sl.house_property.okgonet.HttpConstants;
import com.sl.house_property.order.SettleActivity; import com.sl.house_property.order.SettleActivity;
import com.sl.house_property.user.MyMarketShopActivity; import com.sl.house_property.user.MyMarketShopActivity;
import com.sl.house_property.user.MyPropertyActivity; import com.sl.house_property.user.MyPropertyActivity;
@@ -77,12 +88,15 @@ import java.util.Map;
import adapter.BaseRecycleViewAdapter; import adapter.BaseRecycleViewAdapter;
import entity.Advert_carouseleEntity; import entity.Advert_carouseleEntity;
import entity.DiscoveryListEntity; import entity.DiscoveryListEntity;
import entity.GetVesionResponseBean;
import entity.GoodsDetailEntity; import entity.GoodsDetailEntity;
import entity.HomelistitemEntity; import entity.HomelistitemEntity;
import entity.MainF1Entity; import entity.MainF1Entity;
import entity.MyAddress;
import entity.RegisterUser; import entity.RegisterUser;
import http.ApiConfig; import http.ApiConfig;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.Disposable;
import io.reactivex.schedulers.Schedulers;
import my_loader.Loader; import my_loader.Loader;
import my_loader.Resultcode; import my_loader.Resultcode;
import my_view.CommentDialog; import my_view.CommentDialog;
@@ -92,12 +106,13 @@ import rx.functions.Action1;
import tools.Config; import tools.Config;
import utils.CommonUtils; import utils.CommonUtils;
import utils.DateUtilss; import utils.DateUtilss;
import utils.JsonUtils;
import utils.KeyboardUtil; import utils.KeyboardUtil;
import utils.Md5; import utils.Md5;
import utils.SPUtils; import utils.SPUtils;
import utils.TimeUtils; import utils.TimeUtils;
import utils.UpdateManager;
import utils.UtilHelpers; import utils.UtilHelpers;
import utils.VersionUtils;
/** /**
@@ -109,12 +124,9 @@ import utils.UtilHelpers;
* create an instance of this fragment. * create an instance of this fragment.
*/ */
public class MainFragment extends BaseFragment<FragmentMainBinding> implements View.OnClickListener, MainTabActivity.MyOnTouchListener { public class MainFragment extends BaseFragment<FragmentMainBinding> implements View.OnClickListener, MainTabActivity.MyOnTouchListener {
// TODO: Rename parameter arguments, choose names that match
// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
private static final String ARG_PARAM1 = "param1"; private static final String ARG_PARAM1 = "param1";
private static final String ARG_PARAM2 = "param2"; private static final String ARG_PARAM2 = "param2";
BaseActivity baseActivity; BaseActivity baseActivity;
// TODO: Rename and change types of parameters
private String mParam1; private String mParam1;
private String mParam2; private String mParam2;
private ArrayList<DiscoveryListEntity> discoveryListEntities = new ArrayList<>(); private ArrayList<DiscoveryListEntity> discoveryListEntities = new ArrayList<>();
@@ -125,15 +137,12 @@ public class MainFragment extends BaseFragment<FragmentMainBinding> implements V
private ArrayList<String> mBannerImages; private ArrayList<String> mBannerImages;
private List<String> bannerTitile; private List<String> bannerTitile;
private BaseRecycleViewAdapter baseRecycleViewAdapterh;
private BaseRecycleViewAdapter baseRecycleViewAdapterv;
private RegisterUser user; private RegisterUser user;
private String miyuetime; private String miyuetime;
private String wy_id=""; private String wy_id="";
private String areatwo=""; private String dangqianversion;
private String userid=""; private UpdateManager mUpdateManager;//版本更新
public MainFragment() { public MainFragment() {
// Required empty public constructor // Required empty public constructor
@@ -162,9 +171,7 @@ public class MainFragment extends BaseFragment<FragmentMainBinding> implements V
super.onResume(); super.onResume();
RegisterUser user1; RegisterUser user1;
if (user == null) { if (user == null) {
user1 = Config.getInstance(getActivity()).getUser();
user1 =
Config.getInstance(getActivity()).getUser();
if (user1 != null) { if (user1 != null) {
Map<String, String> map = new HashMap<>(); Map<String, String> map = new HashMap<>();
if (user1 != null) { if (user1 != null) {
@@ -180,7 +187,6 @@ public class MainFragment extends BaseFragment<FragmentMainBinding> implements V
page=1; page=1;
getlist(page); getlist(page);
} }
;
} }
if (wy_id.equals("")) { if (wy_id.equals("")) {
@@ -224,19 +230,174 @@ public class MainFragment extends BaseFragment<FragmentMainBinding> implements V
e.printStackTrace(); e.printStackTrace();
} }
} }
// areatwo=(String) SPUtils.getSp(getActivity(), DoConfig.MY_HOUST_ADDRESS,"");
// if(!areatwo.equals("")){ //版本更新
// wy_id="-"; upDataVersion();
// requestVersion(areatwo); }
// }
private void upDataVersion() {
//获取当前应用版本号
try {
dangqianversion = getVersion()+"";
} catch (Exception e) {
e.printStackTrace();
}
requestVersion();
} }
/**
* 获取当前应用版本号
*/
public int getVersion() {
int versionCode=0;
try {
PackageInfo packageInfo = getContext().getPackageManager().getPackageInfo(getContext().getPackageName(), 0);
String versionName = packageInfo.versionName;
versionCode = packageInfo.versionCode;
Log.d("当前版本号==", "Version Name: " + versionName);
Log.d("当前版本号==", "Version Code: " + versionCode);
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
return versionCode;
}
/**
* 请求最新版本号
*/
public void requestVersion() {
OkGo.<String>post(ApiConfig.BASE_URL)
.params("app", "Cas")
.params("class", "GetVersion")
.params("sign", Md5.md5("Cas" + "GetVersion" + Md5.secret))
.converter(new StringConvert())//
.cacheMode(CacheMode.NO_CACHE) //无缓存模式 CacheMode.NO_CACHE
.adapt(new ObservableResponse<String>())//
.subscribeOn(Schedulers.io())//
.observeOn(AndroidSchedulers.mainThread())//
.subscribe(new io.reactivex.Observer<Response<String>>() {
@Override
public void onSubscribe(@io.reactivex.annotations.NonNull Disposable d) {
// addDisposable(d);
}
@Override
public void onNext(@io.reactivex.annotations.NonNull Response<String> response) {
String body = (String) response.body();
Log.e("版本更新",body);
Log.e("当前版本",dangqianversion);
try {
JSONObject jsonObject = new JSONObject(body);
int status = jsonObject.getInt("status");
if (status == 0) {
JSONObject data = jsonObject.getJSONObject("data");
String newVersion = data.getString("version");
String newVersion_url = data.getString("version_url");
int versionUpdate = VersionUtils.compareVersion(dangqianversion, newVersion);
if (versionUpdate == -1) {//两个版本相同
GetVesionResponseBean mGetVesionResponseBean = new GetVesionResponseBean();
GetVesionResponseBean.ResultBean resultBean = new GetVesionResponseBean.ResultBean();
resultBean.setContent("修复若干bug");
resultBean.setVersion(newVersion);
mGetVesionResponseBean.setResult(resultBean);
ADialog mShareWechatDialog = new ADialog(getContext(), 0, mGetVesionResponseBean);
mShareWechatDialog.requestWindowFeature(Window.FEATURE_NO_TITLE);//代码中取消标题栏
mShareWechatDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
Window win = mShareWechatDialog.getWindow();
win.getDecorView().setPadding(0, 0, 0, 0);
WindowManager.LayoutParams lp = win.getAttributes();
lp.width = WindowManager.LayoutParams.FILL_PARENT;
lp.height = WindowManager.LayoutParams.WRAP_CONTENT;
win.setAttributes(lp);
mShareWechatDialog.setCancelable(false);
mShareWechatDialog.show();
} else {//没有最新版本
Log.e("当前版本",dangqianversion);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void onError(@io.reactivex.annotations.NonNull Throwable e) {
e.printStackTrace();
}
@Override
public void onComplete() {
}
});
}
class ADialog extends Dialog implements View.OnClickListener {
private Context context;
GetVesionResponseBean mGetVesionResponseBean;
public ADialog(@NonNull Context context, @StyleRes int themeResId, GetVesionResponseBean mGetVesionResponseBean) {
super(context, themeResId);
this.context = context;
this.mGetVesionResponseBean = mGetVesionResponseBean;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setContentView(R.layout.version_dailog);
launchAppDetail();
}
public void launchAppDetail() {
String content = mGetVesionResponseBean.getResult().getContent();
content = content.replace("</br>", "<br>");
TextView mContentTv = (TextView) findViewById(R.id.tv_content);
mContentTv.setText(Html.fromHtml(content));
TextView mVersionTv = (TextView) findViewById(R.id.tv_version);
mVersionTv.setText("V" + mGetVesionResponseBean.getResult().getVersion());
Button mUpdateBtn = (Button) findViewById(R.id.btn_update);
Button btn_update_one = (Button) findViewById(R.id.btn_update_one);
mUpdateBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
dismiss();
// 这里来检测版本是否需要更新
mUpdateManager = new UpdateManager(getContext(), "http://ruilaizipj.com/door.apk");
mUpdateManager.checkUpdateDownload();
}
});
btn_update_one.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
dismiss();
}
});
}
@Override
public void onClick(View v) {
}
}
private void getGankList(final String myurl, Map<String, String> map, String string, final int getcode1) { private void getGankList(final String myurl, Map<String, String> map, String string, final int getcode1) {
progressDialog.setMessage(string); progressDialog.setMessage(string);
//map.put("")
progressDialog.setCancelable(false); progressDialog.setCancelable(false);
progressDialog.show(); progressDialog.show();
mDataBinding.getRoot().postDelayed(new Runnable() { mDataBinding.getRoot().postDelayed(new Runnable() {
@@ -247,8 +408,6 @@ public class MainFragment extends BaseFragment<FragmentMainBinding> implements V
} }
}, 13000); }, 13000);
mGankLoader = new Loader(); mGankLoader = new Loader();
/* Map<String,String> map=new HashMap<String,String>();
map.put("phone");*/
mGankLoader.getMovie(myurl, map).subscribe(new Action1<Resultcode>() { mGankLoader.getMovie(myurl, map).subscribe(new Action1<Resultcode>() {
@Override @Override
public void call(Resultcode resultcode) { public void call(Resultcode resultcode) {
@@ -358,33 +517,9 @@ public class MainFragment extends BaseFragment<FragmentMainBinding> implements V
protected void onCreateVew(LayoutInflater inflater, Bundle savedInstanceState) { protected void onCreateVew(LayoutInflater inflater, Bundle savedInstanceState) {
super.onCreateVew(inflater, savedInstanceState); super.onCreateVew(inflater, savedInstanceState);
baseActivity = (BaseActivity) getActivity(); baseActivity = (BaseActivity) getActivity();
// progressDialog = new ProgressDialog(baseActivity);
// progressDialog.show();
// progressDialog.setMessage(getActivity().getString(R.string.loading));
progressDialog = new ProgressDialog(getContext()); progressDialog = new ProgressDialog(getContext());
intRecycleView(); intRecycleView();
// getGankList(ApiConfig.GETHOMEBANNER,new HashMap<String, String>(),getString(R.string.loading),0);
mDataBinding.taobaoRefreshLayout.setOnRefreshLoadMoreListener(onrefalshlister); mDataBinding.taobaoRefreshLayout.setOnRefreshLoadMoreListener(onrefalshlister);
// mDataBinding.taobaoRefreshLayout.postDelayed(new Runnable() {
// @Override
// public void run() {
// /* configFragments();
// intRecycleHorization();
// intRecycleVerization();*/
// user =
// Config.getInstance(getActivity()).getUser();
// Map<String, String> map = new HashMap<>();
// if (user != null) {
// map.put("userid", user.getUserid());
// } else {
// map.put("userid", 0 + "");
// }
// map.put("app", "Advert");
// map.put("class", "Advertr_an_AdvertHomeList");
// map.put("sign", Md5.md5("Advert" + "Advertr_an_AdvertHomeList" + Md5.secret));
// getGankList(ApiConfig.BASE_URL, map, getResources().getString(R.string.requsting), 0, true);
// }
// }, 0);
mDataBinding.scan.setOnClickListener(this); mDataBinding.scan.setOnClickListener(this);
mDataBinding.entrancegurd.setOnClickListener(this); mDataBinding.entrancegurd.setOnClickListener(this);
mDataBinding.cargara.setOnClickListener(this); mDataBinding.cargara.setOnClickListener(this);
@@ -471,9 +606,6 @@ public class MainFragment extends BaseFragment<FragmentMainBinding> implements V
mDataBinding.service.setOnClickListener(new View.OnClickListener() { mDataBinding.service.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
// Intent intent = new Intent(getContext(), PropertyActivity.class);
// startActivity(intent);
if( (Config.getInstance(getContext()).getUser()==null)){ if( (Config.getInstance(getContext()).getUser()==null)){
Intent intent =new Intent(getContext(),LoginActivity.class); Intent intent =new Intent(getContext(),LoginActivity.class);
startActivity(intent); startActivity(intent);
@@ -654,9 +786,6 @@ public class MainFragment extends BaseFragment<FragmentMainBinding> implements V
TextPaint tp = mDataBinding.usershoptextid.getPaint(); TextPaint tp = mDataBinding.usershoptextid.getPaint();
tp.setFakeBoldText(true); tp.setFakeBoldText(true);
// TextPaint tp1 = mDataBinding.userommunitybutextid.getPaint();
// tp1.setFakeBoldText(true);
} }
private int currentKeyboardH; private int currentKeyboardH;
@@ -763,16 +892,9 @@ public class MainFragment extends BaseFragment<FragmentMainBinding> implements V
public void onBindViewHolder(Object b, final int position) { public void onBindViewHolder(Object b, final int position) {
if (!(position >= discoveryListEntities.size())) { if (!(position >= discoveryListEntities.size())) {
final ItemDiscoveryBinding homeGridAdapterItemBinding = (ItemDiscoveryBinding) b; final ItemDiscoveryBinding homeGridAdapterItemBinding = (ItemDiscoveryBinding) b;
// homeGridAdapterItemBinding.setMyentity(discoveryListEntities.get(position));
final DiscoveryListEntity discoveryListEntity = discoveryListEntities.get(position); final DiscoveryListEntity discoveryListEntity = discoveryListEntities.get(position);
homeGridAdapterItemBinding.tvNikeName.setText(discoveryListEntity.getNickname()); homeGridAdapterItemBinding.tvNikeName.setText(discoveryListEntity.getNickname());
homeGridAdapterItemBinding.tvContent.setText(discoveryListEntity.getGoods_detail()); homeGridAdapterItemBinding.tvContent.setText(discoveryListEntity.getGoods_detail());
// Picasso.with(getActivity()).load(discoveryListEntity.getAvatar())
// .placeholder(R.mipmap.icon_default_rectangle)
// .transform(new PicassoRoundTransform())
// .into(homeGridAdapterItemBinding.imageHead);
homeGridAdapterItemBinding.ivComment.setOnClickListener(new View.OnClickListener() { homeGridAdapterItemBinding.ivComment.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(final View v) { public void onClick(final View v) {
@@ -810,24 +932,6 @@ public class MainFragment extends BaseFragment<FragmentMainBinding> implements V
mDataBinding.scrollViewExtend.smoothScrollBy(0, mBottomY - y); mDataBinding.scrollViewExtend.smoothScrollBy(0, mBottomY - y);
} }
}, 300); }, 300);
// mDataBinding.llComment.setVisibility(View.VISIBLE);
// mDataBinding.etComment.requestFocus();
// mDataBinding.etComment.setHint("评论");
// MainTabActivity activity = (MainTabActivity) getActivity();
// KeyboardUtil.showSoftInput(getContext());
// activity.visibilyBottom(View.GONE);
// commentPosition = position;
// commentDialog.dismiss();
// mDataBinding.etComment.setText("");
// homeGridAdapterItemBinding.ivComment.postDelayed(new Runnable() {
// @Override
// public void run() {
// int y = getCoordinateY(mDataBinding.llComment) - 20;
// //评论时滑动到对应item底部和输入框顶部对齐
// mDataBinding.scrollViewExtend.smoothScrollBy(0, mBottomY - y);
// }
// }, 300);
} else if (type == 4) { } else if (type == 4) {
// addCart(discoveryListEntity.getGoods_id(),discoveryListEntity.) // addCart(discoveryListEntity.getGoods_id(),discoveryListEntity.)
@@ -1170,16 +1274,7 @@ public class MainFragment extends BaseFragment<FragmentMainBinding> implements V
dis_content1.add(dis_content); dis_content1.add(dis_content);
discoveryListEntity.setDis_content(dis_content1); discoveryListEntity.setDis_content(dis_content1);
adapter.upDateOne(position, discoveryListEntity); adapter.upDateOne(position, discoveryListEntity);
// BaseRecycleViewAdapter adapter = (BaseRecycleViewAdapter) mDataBinding.recyView.getAdapter();
// if (discoveryListEntities.get(position).getDis_content().isEmpty()) {
// DiscoveryListEntity.Dis_content dis_content = new DiscoveryListEntity.Dis_content();
// dis_content.setContents(content);
//
// }
//
// adapter.upDateOne(position, discoveryListEntities.get(position));
} }
} }
@@ -1196,88 +1291,6 @@ public class MainFragment extends BaseFragment<FragmentMainBinding> implements V
} }
// public void intRecycleHorization(final ArrayList<Advertorial_listEntity> advertorial_list) {
//
// FullyGridLayoutManager mgr = new FullyGridLayoutManager(getActivity(), 1);
// mgr.setOrientation(FullyGridLayoutManager.HORIZONTAL);
// mgr.setSmoothScrollbarEnabled(true);
// // mDataBinding.fragmentRecyclerviewHorization.setLayoutManager(mgr);
// baseRecycleViewAdapterh = new BaseRecycleViewAdapter(getActivity(), R.layout.fragment_recyclerview_horization_item);
//
// baseRecycleViewAdapterh.setOnBindViewHolder(new BaseRecycleViewAdapter.BindView() {
// @Override
// public void onBindViewHolder(Object b, final int position) {
// FragmentRecyclerviewHorizationItemBinding homeGridAdapterItemBinding = (FragmentRecyclerviewHorizationItemBinding) b;
// homeGridAdapterItemBinding.setMyentity(advertorial_list.get(position));
// if (advertorial_list.get(position).getAdvertorial_picture_array().size() > 0) {
// Picasso.with(getActivity()).load(advertorial_list.get(position).getAdvertorial_picture_array().get(0))
// .placeholder(R.mipmap.icon_default_rectangle)
// .transform(new PicassoRoundTransform())
// .into(homeGridAdapterItemBinding.imageView);
// }
// homeGridAdapterItemBinding.fragmentRecyclerviewHorizationItem.setOnClickListener(new View.OnClickListener() {
// @Override
// public void onClick(View view) {
// Intent intent = new Intent(getActivity(), NewsDetailActivity.class);
// intent.putExtra("url", advertorial_list.get(position).getAdvertorial_url());
// intent.putExtra("titile", advertorial_list.get(position).getAdvertorial_title());
// startActivity(intent);
// /* Intent intent=new Intent(getActivity(),CommodityActivity.class);
// intent.putExtra("homegridentity",advertorial_list.get(position));
// startActivity(intent);*/
// }
// });
//
// }
// });
//
// mDataBinding.fragmentRecyclerviewHorization.setAdapter(baseRecycleViewAdapterh);
// baseRecycleViewAdapterh.setData(advertorial_list);
//
//
// }
// private void intRecycleVerization(final ArrayList<Message_listEntity> message_list) {
// mDataBinding.myversion.setVisibility(View.VISIBLE);
// FullyGridLayoutManager mgr = new FullyGridLayoutManager(getActivity(), 1);
// mgr.setOrientation(FullyGridLayoutManager.VERTICAL);
// mgr.setSmoothScrollbarEnabled(true);
// mDataBinding.recyView.setLayoutManager(mgr);
// baseRecycleViewAdapterv = new BaseRecycleViewAdapter(getActivity(), R.layout.fragment_recyclerview_vorization_item);
//
// baseRecycleViewAdapterv.setOnBindViewHolder(new BaseRecycleViewAdapter.BindView() {
// @Override
// public void onBindViewHolder(Object b, final int position) {
// if (!(position >= message_list.size())) {
// FragmentRecyclerviewVorizationItemBinding homeGridAdapterItemBinding = (FragmentRecyclerviewVorizationItemBinding) b;
// homeGridAdapterItemBinding.setMyentity(message_list.get(position));
//
// Picasso.with(getActivity()).load(message_list.get(position).getMessage_picture())
// .placeholder(R.mipmap.icon_default_rectangle)
// .transform(new PicassoRoundTransform())
// .into(homeGridAdapterItemBinding.imageView);
// homeGridAdapterItemBinding.fragmentRecyclerviewVorizationItem.setOnClickListener(new View.OnClickListener() {
// @Override
// public void onClick(View view) {
//
//
// Intent intent = new Intent(getActivity(), NewsDetailActivity.class);
// intent.putExtra("url", message_list.get(position).getMessage_url());
// intent.putExtra("titile", message_list.get(position).getMessage_title());
// startActivity(intent);
// }
// });
// }
//
// }
// });
//
// mDataBinding.recyView.setAdapter(baseRecycleViewAdapterv);
// baseRecycleViewAdapterv.setData(message_list);
//
// }
//如果你需要考虑更好的体验,可以这么操作 //如果你需要考虑更好的体验,可以这么操作
@Override @Override
public void onStart() { public void onStart() {
@@ -1546,67 +1559,6 @@ public class MainFragment extends BaseFragment<FragmentMainBinding> implements V
} }
private void requestVersion(String area) {
RegisterUser registerUser = Config.getInstance(getContext()).getUser();
if (registerUser != null) {
userid=registerUser.getUserid();
}
OkGo.<String>post(HttpConstants.URiBase)
.params("app", "Cas")
.params("sign", Md5.md5("Cas" + "GetMyAddress" + Md5.secret))
.params("userid", userid)
.params("class", "GetMyAddress")
.execute(new StringCallback() {
@Override
public void onStart(Request<String, ? extends Request> request) {
super.onStart(request);
}
@Override
public void onSuccess(Response<String> response) {
Log.e("onSuccess", response.body());
String body = (String) response.body();
MyAddress groupStatisticalBean = JsonUtils.fromJson(body, MyAddress.class);
if(groupStatisticalBean.getStatus()==0){
list = (ArrayList<HomelistitemEntity>) groupStatisticalBean.getData().getHome();
final ArrayList<String> strings = new ArrayList<>();
for (int i = 0; i < list.size(); i++) {
strings.add(list.get(i).getAddress());
}
if (list.size() > 0) {
for(int i=0;i<list.size();i++){
HomelistitemEntity homelistitemEntity = list.get(i);
if(homelistitemEntity.getArea().equals(areatwo)){
wy_id = homelistitemEntity.getWy_id();
Log.e("wy_id",wy_id);
}
}
}
}
}
@Override
public void onError(Response<String> response) {
super.onError(response);
}
@Override
public void onFinish() {
super.onFinish();
}
});
}
private void deleteComment(String dis_id, String userid, final int superPosition, final int itemPosition) { private void deleteComment(String dis_id, String userid, final int superPosition, final int itemPosition) {
Map<String, String> map = new HashMap<>(); Map<String, String> map = new HashMap<>();

View File

@@ -1,9 +1,15 @@
package com.sl.house_property; package com.sl.house_property;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent; import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.Uri; import android.net.Uri;
import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import androidx.annotation.NonNull;
import androidx.core.app.ActivityCompat;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentTransaction; import androidx.fragment.app.FragmentTransaction;
import android.util.Log; import android.util.Log;
@@ -43,7 +49,11 @@ public class MainTabActivity extends BaseActivity<ActivityMainTabBinding>
如果在下一个界面有数据更改,需要Fragment刷新时,通过setResult方法通知主界面,主界面的 如果在下一个界面有数据更改,需要Fragment刷新时,通过setResult方法通知主界面,主界面的
onActivityResult方法会接收到通知,再刷新相应的Fragment onActivityResult方法会接收到通知,再刷新相应的Fragment
*/ */
//请求状态码,这里的状态码可以随便写什么数字都可以
private static final int REQUEST_PERMISSION_CODE = 1;
private final static String[] PERMISSIONS_STORAGE = {
android.Manifest.permission.READ_EXTERNAL_STORAGE,
android.Manifest.permission.WRITE_EXTERNAL_STORAGE,};
public static final int RESUlT_CODE_0 = 201;//首页 public static final int RESUlT_CODE_0 = 201;//首页
public static final int RESUlT_CODE_1 = 202;//发现 public static final int RESUlT_CODE_1 = 202;//发现
public static final int RESUlT_CODE_2 = 203;//购物车 public static final int RESUlT_CODE_2 = 203;//购物车
@@ -63,17 +73,6 @@ public class MainTabActivity extends BaseActivity<ActivityMainTabBinding>
private Loader mGankLoader; private Loader mGankLoader;
// @Override
// public boolean dispatchTouchEvent(MotionEvent ev) {
// switch (ev.getAction()) {
// case MotionEvent.ACTION_DOWN:
//
// UtilHelpers.hideKeyboard(ev, getCurrentFocus(), this);
// break;
// }
// return super.dispatchTouchEvent(ev);
//
// }
public void visibilyBottom(int isVisibily) { public void visibilyBottom(int isVisibily) {
findViewById(R.id.rl_bottom).setVisibility(isVisibily); findViewById(R.id.rl_bottom).setVisibility(isVisibily);
} }
@@ -134,65 +133,45 @@ public class MainTabActivity extends BaseActivity<ActivityMainTabBinding>
.init(); .init();
initView(); initView();
getData(); getData();
// RegisterUser user = Config.getInstance(MainTabActivity.this).getUser(); verifyStoragePermissions(this);
// Map<String, String> map = new HashMap<>();
// if (user != null) {
// map.put("userid", user.getUserid());
// } else {
// map.put("userid", 0 + "");
// }
// map.put("app", "Cas");
// map.put("class", "MyHouseList");
// //map.put("home_id", "GetHomeByPid");
// map.put("sign", Md5.md5("Cas" + "MyHouseList" + Md5.secret));
// getGankList(ApiConfig.BASE_URL, map, getResources().getString(R.string.requsting), 0);
}
public void verifyStoragePermissions(Activity activity) {
try {
//判断当前系统是否是Android6.0(对应API 23)以及以上,如果是则判断是否含有了权限
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP) {
//检测是否有写的权限
int permission = ActivityCompat.checkSelfPermission(activity,
"android.permission.WRITE_EXTERNAL_STORAGE");
/***
* checkSelfPermission返回两个值
* 有权限: PackageManager.PERMISSION_GRANTED
* 无权限: PackageManager.PERMISSION_DENIED
*/
if (permission != PackageManager.PERMISSION_GRANTED) {
// 没有写的权限,去申请写的权限,会弹出对话框
ActivityCompat.requestPermissions(this, PERMISSIONS_STORAGE, REQUEST_PERMISSION_CODE);
}
}
} catch (Exception e) {
e.printStackTrace();
}
} }
// private void getGankList(String myurl, Map<String, String> map, String msg, final int requstecode) { //回调函数,申请权限后回调onRequestPermissionResult函数,第一个参数为请求码,第二个参数是刚刚请求的权限集,第三个参数是请求结果,0表示授权成功,-1表示授权失败
//// progressDialog.setMessage(msg); //requestCode:这个对应请求状态码,permissions:这个是前面你要申请的权限集合,grantResults:这个是申请权限的结果
//// progressDialog.setCancelable(false); @Override
//// progressDialog.show(); public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
// mGankLoader = new Loader(); super.onRequestPermissionsResult(requestCode, permissions, grantResults);
// Subscription subscription = mGankLoader.getMovie(myurl, map).subscribe(new Action1<Resultcode>() { if (requestCode == REQUEST_PERMISSION_CODE) {
// @Override for (int i = 0; i < permissions.length; i++) {
// public void call(Resultcode resultcode) { //grantResults[i]:返回0,表示授权成功,返回-1,表示授权失败
// progressDialog.dismiss(); Log.i("111333", "申请的权限为:" + permissions[i] + ",申请结果:" + grantResults[i]);
// }
// if (!(resultcode.status == 0)) { }
// setToast(resultcode.msg); }
// }
// if (resultcode.status == 0) {
// if (requstecode == 0) {
// Gson gs = new Gson();
// ArrayList<LinkedTreeMap> adta = (ArrayList<LinkedTreeMap>) resultcode.data;
// String s = gs.toJson(adta);
// //final ArrayList<MyHomequEntity> list = null;
// Type type = new TypeToken<ArrayList<MyHouseEntity>>() {
// }.getType();
// final ArrayList<MyHouseEntity> list = new Gson().fromJson(s, type);
// if(list.size()==0){
// SPUtils.setSP(MainTabActivity.this, DoConfig.FANGCHAN_DATA, "0");
// }else {
// SPUtils.setSP(MainTabActivity.this, DoConfig.FANGCHAN_DATA, "1");
// }
// }
// }
// }
//
// }, new Action1<Throwable>() {
// @Override
// public void call(Throwable throwable) {
// progressDialog.dismiss();
// setToast(getString(R.string.getdatafailure));
// throwable.printStackTrace();
// }
// });
//
// addSubscription(subscription);
// }
@SuppressLint("MissingSuperCall") @SuppressLint("MissingSuperCall")
@Override @Override
@@ -290,15 +269,6 @@ public class MainTabActivity extends BaseActivity<ActivityMainTabBinding>
} }
currentFragment = fragment4; currentFragment = fragment4;
break; break;
// case R.id.like:
// if (likeFragment == null) {
// likeFragment = LikeFragment.newInstance();
// fragmentTransaction.add(R.id.mycontent, likeFragment, "likeFragment");
// } else {
// fragmentTransaction.show(likeFragment);
// }
// currentFragment = likeFragment;
// break;
} }
try { try {
fragmentTransaction.commit(); fragmentTransaction.commit();
@@ -338,37 +308,9 @@ public class MainTabActivity extends BaseActivity<ActivityMainTabBinding>
Log.e("测试","测试"); Log.e("测试","测试");
if (resultCode == RESUlT_CODE_4) { if (resultCode == RESUlT_CODE_4) {
if (currentFragment == fragment4) { if (currentFragment == fragment4) {
// if(fragment0!=null){
// fragmentTransaction.remove(fragment0);
// fragment0 = null;
// }
// if(fragment1!=null){
// fragmentTransaction.remove(fragment1);
// fragment1 = null;
// }
// if(fragment2!=null){
// fragmentTransaction.remove(fragment2);
// fragment2 = null;
// }
// if(fragment3!=null){
// fragmentTransaction.remove(fragment3);
// fragment3 = null;
// }
//
// fragmentTransaction.remove(fragment4);
// mDataBinding.getRoot().setBackground(getResources().getDrawable(R.mipmap.beijing));
// if (fragment4 == null) {
// fragment4 = Main4Fragment.newInstance("", "");
// fragmentTransaction.add(R.id.mycontent, fragment4, "fragment4");
// } else {
//
// }
// fragmentTransaction.show(fragment4);
// currentFragment = fragment4;
fragment4.refreshData(); fragment4.refreshData();
} }
try { try {
// fragmentTransaction.commit();
} catch (Exception e) { } catch (Exception e) {
e.fillInStackTrace(); e.fillInStackTrace();
fragmentTransaction.commitAllowingStateLoss(); fragmentTransaction.commitAllowingStateLoss();
@@ -413,16 +355,8 @@ public class MainTabActivity extends BaseActivity<ActivityMainTabBinding>
MessageEntity messageEntity = gs.fromJson(s, MessageEntity.class); MessageEntity messageEntity = gs.fromJson(s, MessageEntity.class);
int i = Integer.parseInt(messageEntity.getMsg_count()); int i = Integer.parseInt(messageEntity.getMsg_count());
if (i > 0) { if (i > 0) {
setMessageCount(i); setMessageCount(i);
} }
} }
}, new Action1<Throwable>() { }, new Action1<Throwable>() {
@Override @Override

View File

@@ -34,10 +34,10 @@ public class GetVesionResponseBean {
* version : 1.1.0 * version : 1.1.0
*/ */
private int success; private int success=0;
private String msg; private String msg="";
private String version; private String version="112";
private String content; private String content="aas";
public int getSuccess() { public int getSuccess() {
return success; return success;

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" <shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle"> android:shape="rectangle">
<solid android:color="#ffd700" /> <solid android:color="#FE773B" />
<corners android:radius="25dp" /> <corners android:radius="25dp" />
</shape> </shape>

View File

@@ -1,12 +1,12 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<LinearLayout <LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"> android:layout_height="wrap_content">
<ProgressBar <ProgressBar
android:id="@+id/progress" android:id="@+id/progress"
android:layout_width="fill_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
style="?android:attr/progressBarStyleHorizontal" style="?android:attr/progressBarStyleHorizontal"
/> />

View File

@@ -29,7 +29,7 @@
<color name="text_name">#606492</color> <color name="text_name">#606492</color>
<color name="color_5b4c00">#5b4c00</color> <color name="color_5b4c00">#5b4c00</color>
<color name="color_6c6c6c">#6c6c6c</color> <color name="color_6c6c6c">#6c6c6c</color>
<color name="color_8c619">#f8c619</color> <color name="color_8c619">#FE773B</color>
<color name="color_ffeb7f">#ffeb7f</color> <color name="color_ffeb7f">#FE773B</color>
<color name="colorWhite">#FFF</color> <color name="colorWhite">#FFF</color>
</resources> </resources>