diff --git a/.idea/compiler.xml b/.idea/compiler.xml
index fb7f4a8..61a9130 100644
--- a/.idea/compiler.xml
+++ b/.idea/compiler.xml
@@ -1,6 +1,6 @@
-
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 2daba66..9a51d79 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -5,13 +5,22 @@
+
+
+
-
+
diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml
deleted file mode 100644
index e497da9..0000000
--- a/.idea/runConfigurations.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/java/com/sl/house_property/MainFragment.java b/app/src/main/java/com/sl/house_property/MainFragment.java
index 9d78d74..149d5ad 100644
--- a/app/src/main/java/com/sl/house_property/MainFragment.java
+++ b/app/src/main/java/com/sl/house_property/MainFragment.java
@@ -97,6 +97,7 @@ import utils.JsonUtils;
import utils.KeyboardUtil;
import utils.Md5;
import utils.SPUtils;
+import utils.TimeUtils;
import utils.UtilHelpers;
@@ -847,7 +848,7 @@ public class MainFragment extends BaseFragment implements V
}
});
-
+ homeGridAdapterItemBinding.tvTime.setText(TimeUtils.getRecentTimeSpanByNow(TimeUtils.dataOne(discoveryListEntity.getCtime())));
if (discoveryListEntity.getLike().isEmpty()) {
homeGridAdapterItemBinding.tvLike.setVisibility(View.GONE);
@@ -864,7 +865,7 @@ public class MainFragment extends BaseFragment implements V
}
homeGridAdapterItemBinding.tvLike.setText(likeString.toString());
- homeGridAdapterItemBinding.tvTime.setText(DateUtils.getDate(discoveryListEntity.getCtime()));
+
}
if (discoveryListEntity.getDis_content().isEmpty()) {
@@ -1307,6 +1308,18 @@ public class MainFragment extends BaseFragment implements V
page=1;
getlist(page);
+ final RegisterUser user =
+ Config.getInstance(getActivity()).getUser();
+ Map 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, false);
}
diff --git a/app/src/main/java/com/sl/house_property/discovery/DiscoveryFragment.java b/app/src/main/java/com/sl/house_property/discovery/DiscoveryFragment.java
index 8508195..7b8c483 100644
--- a/app/src/main/java/com/sl/house_property/discovery/DiscoveryFragment.java
+++ b/app/src/main/java/com/sl/house_property/discovery/DiscoveryFragment.java
@@ -2,7 +2,9 @@ package com.sl.house_property.discovery;
import android.app.ProgressDialog;
import android.content.Intent;
+import android.content.pm.ActivityInfo;
import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
import android.graphics.Rect;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
@@ -23,7 +25,11 @@ import com.google.gson.Gson;
import com.google.gson.internal.LinkedTreeMap;
import com.google.gson.reflect.TypeToken;
import com.gyf.immersionbar.ImmersionBar;
+import com.hjq.permissions.OnPermission;
+import com.hjq.permissions.Permission;
+import com.hjq.permissions.XXPermissions;
import com.lxj.xpopup.XPopup;
+import com.lxj.xpopup.interfaces.OnConfirmListener;
import com.lxj.xpopup.interfaces.OnSelectListener;
import com.lzy.ninegrid.ImageInfo;
import com.lzy.ninegrid.preview.NineGridViewClickAdapter;
@@ -39,10 +45,15 @@ import com.sl.house_property.databinding.ItemDiscoveryBinding;
import com.sl.house_property.order.SettleActivity;
import com.squareup.picasso.Picasso;
import com.squareup.picasso.Target;
+import com.zhihu.matisse.Matisse;
+import com.zhihu.matisse.MimeType;
+import com.zhihu.matisse.engine.impl.PicassoEngine;
+import com.zhihu.matisse.internal.entity.CaptureStrategy;
import org.json.JSONException;
import org.json.JSONObject;
+import java.io.File;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.HashMap;
@@ -62,11 +73,13 @@ import rx.Subscription;
import rx.functions.Action1;
import tools.Config;
import tools.PicassoRoundTransform;
+import top.zibin.luban.Luban;
import utils.CommonUtils;
import utils.DateUtils;
import utils.GetJsonDataUtil;
import utils.KeyboardUtil;
import utils.Md5;
+import utils.TimeUtils;
import utils.UtilHelpers;
public class DiscoveryFragment extends BaseFragment implements MainTabActivity.MyOnTouchListener {
@@ -137,6 +150,75 @@ public class DiscoveryFragment extends BaseFragment im
}
});
+ mDataBinding.v.setOnClickListener(v -> {
+ checkAlbumPermission(191, 1);
+ });
+ }
+
+ private void selectImage(int requestCode, int max) {
+ Matisse
+ .from(this)
+ //选择视频和图片
+ .choose(MimeType.ofImage())
+
+ //这两行要连用 是否在选择图片中展示照相 和适配安卓7.0 FileProvider
+ .capture(true)
+ .captureStrategy(new CaptureStrategy(true, "PhotoPicker"))
+ //有序选择图片 123456...
+ .countable(true)
+ //最大选择数量为9
+ .maxSelectable(max)
+ //选择方向
+ .restrictOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT)
+ //界面中缩略图的质量
+ .thumbnailScale(0.8f)
+ //蓝色主题
+ .theme(R.style.Matisse_Zhihu)
+ //Picasso加载方式
+ .imageEngine(new PicassoEngine())
+ //请求码
+ .forResult(requestCode);
+ }
+
+
+ /*
+ * 检查访问相册权限
+ * */
+ private void checkAlbumPermission(final int requestCode, final int max) {
+ XXPermissions.with(baseActivity).permission(Permission.WRITE_EXTERNAL_STORAGE, Permission.CAMERA).request(new OnPermission() {
+ @Override
+ public void hasPermission(List granted, boolean isAll) {
+ if (isAll) {
+ selectImage(requestCode, max);
+ }
+ }
+
+ @Override
+ public void noPermission(List denied, boolean quick) {
+ if (quick)
+ new XPopup.Builder(baseActivity).asConfirm(
+ "提示", "需要相册和相机权限才可以正常使用"
+ , new OnConfirmListener() {
+ @Override
+ public void onConfirm() {
+ XXPermissions.gotoPermissionSettings(baseActivity);
+ }
+ }).show();
+ }
+ });
+// if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
+// selectImage(requestCode, max);
+// return;
+// }
+// if ((ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED)&&(ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED)) {
+// //权限还没有授予,需要在这里写申请权限的代码
+// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
+// requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE,Manifest.permission.CAMERA}, 2);
+// }
+//
+// } else {
+// selectImage(requestCode, max);
+// }
}
@Override
@@ -445,7 +527,7 @@ public class DiscoveryFragment extends BaseFragment im
}
});
-
+ homeGridAdapterItemBinding.tvTime.setText(TimeUtils.getRecentTimeSpanByNow(TimeUtils.dataOne(discoveryListEntity.getCtime())));
if (discoveryListEntity.getLike().isEmpty()) {
homeGridAdapterItemBinding.tvLike.setVisibility(View.GONE);
@@ -464,8 +546,8 @@ public class DiscoveryFragment extends BaseFragment im
}
homeGridAdapterItemBinding.tvLike.setText(likeString.toString());
+ // TimeUtils.getRecentTimeSpanByNow(TimeUtils.dataOne(discoveryListEntity.getCtime()))
- homeGridAdapterItemBinding.tvTime.setText(DateUtils.getDate(discoveryListEntity.getCtime()));
}
if (discoveryListEntity.getDis_content().isEmpty()) {
@@ -963,9 +1045,32 @@ public class DiscoveryFragment extends BaseFragment im
if (requestCode == 14 && resultCode == 200) {
page = 1;
getlist(1);
+ } else if (requestCode == 191) {
+ //选取图片回调
+ if (data==null){
+ return;
+ }
+ List strings = Matisse.obtainPathResult(data);
+ if (!strings.isEmpty()){
+ try {
+
+ List list = Luban.with(baseActivity).load(strings).ignoreBy(100).setTargetDir(baseActivity.getCacheDir().getAbsolutePath()).get();
+ if (null != list && list.size() > 0) {
+ File file = list.get(0);
+ // Bitmap bitmap = BitmapFactory.decodeFile(file.toString());
+ Picasso.with(getActivity()).load(file)
+ .placeholder(R.mipmap.icon_default_rectangle)
+ .into(target);
+ }
+ }catch (Exception e){
+
+ }
+
+ }
}
}
+
private void deleteComment(String dis_id, String userid, final int superPosition, final int itemPosition) {
Map map = new HashMap<>();
diff --git a/app/src/main/java/com/sl/house_property/f1/AddcararageIttemActivity.java b/app/src/main/java/com/sl/house_property/f1/AddcararageIttemActivity.java
index 7c6ab79..431a0cc 100644
--- a/app/src/main/java/com/sl/house_property/f1/AddcararageIttemActivity.java
+++ b/app/src/main/java/com/sl/house_property/f1/AddcararageIttemActivity.java
@@ -571,7 +571,6 @@ public class AddcararageIttemActivity extends BaseActivity {
public MessageAdapter() {
super(R.layout.item_message);
@@ -20,7 +22,7 @@ public class MessageAdapter extends BaseQuickAdapterfindViewById(R.id.iv));
baseViewHolder.setText(R.id.tv_name, messageEntity.getStore_name());
baseViewHolder.setText(R.id.tv_title, messageEntity.getTitle());
- baseViewHolder.setText(R.id.tv_time, messageEntity.getCtime());
+ baseViewHolder.setText(R.id.tv_time, TimeUtils.getRecentTimeSpanByNow(TimeUtils.dataOne(messageEntity.getCtime())));
if (messageEntity.getIs_dot().equals("1")) {
baseViewHolder.getView(R.id.view).setVisibility(View.VISIBLE);
} else {
diff --git a/app/src/main/java/utils/TimeConstants.java b/app/src/main/java/utils/TimeConstants.java
new file mode 100644
index 0000000..d446091
--- /dev/null
+++ b/app/src/main/java/utils/TimeConstants.java
@@ -0,0 +1,25 @@
+package utils;
+
+
+
+import android.support.annotation.IntDef;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
+public final class TimeConstants {
+
+ public static final int MSEC = 1;
+ public static final int SEC = 1000;
+ public static final int MIN = 60000;
+ public static final int HOUR = 3600000;
+ public static final int DAY = 86400000;
+ public static final long MONTH = 2592000000L;
+ public static final long YEAR = 31104000000L;
+
+ @IntDef({MSEC, SEC, MIN, HOUR, DAY})
+ @Retention(RetentionPolicy.SOURCE)
+ public @interface Unit {
+ }
+
+}
diff --git a/app/src/main/java/utils/TimeUtils.java b/app/src/main/java/utils/TimeUtils.java
new file mode 100644
index 0000000..b376ec1
--- /dev/null
+++ b/app/src/main/java/utils/TimeUtils.java
@@ -0,0 +1,120 @@
+package utils;
+
+import android.text.TextUtils;
+import android.util.Log;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.Locale;
+
+public class TimeUtils {
+
+ public static String getRecentTimeSpanByNow(final long millis) {
+ if (millis == 0) {
+ return "未知";
+ }
+
+ long span =System.currentTimeMillis()- millis;
+ Log.e("time",System.currentTimeMillis()+"");
+ Log.e("millis",millis+"");
+ if (span < 1000) {
+ return "刚刚";
+ } else if (span < TimeConstants.MIN) {
+ return "刚刚";
+ } else if (span < TimeConstants.HOUR) {
+ return String.format(Locale.getDefault(), "%d分钟前", span / TimeConstants.MIN);
+ } else if (span < TimeConstants.DAY) {
+ return String.format(Locale.getDefault(), "%d小时前", span / TimeConstants.HOUR);
+ } else if (span < TimeConstants.MONTH) {
+ if (span / TimeConstants.DAY >= 7) {
+ SimpleDateFormat sdr = new SimpleDateFormat("MM-dd",
+ Locale.CHINA);
+ return sdr.format(millis);
+ } else {
+ String format = String.format(Locale.getDefault(), "%d天前", span / TimeConstants.DAY);
+
+ Log.e("format",format);
+ return format;
+
+ }
+ } else if (span < TimeConstants.YEAR) {
+ SimpleDateFormat sdr;
+ if (span / TimeConstants.MONTH >= 6) {
+ sdr = new SimpleDateFormat("yyyy-MM-dd",
+ Locale.CHINA);
+
+ } else {
+ sdr = new SimpleDateFormat("MM-dd",
+ Locale.CHINA);
+ }
+ return sdr.format(millis);
+
+ }
+// else if (span > TimeConstants.YEAR) {
+// return String.format(Loc
+// ale.getDefault(), "%d年前", span / TimeConstants.YEAR);
+// }
+ else {
+ SimpleDateFormat sdr = new SimpleDateFormat("yyyy-MM-dd",
+ Locale.CHINA);
+ return sdr.format(millis);
+
+ }
+ }
+
+ /**
+ * 调此方法输入所要转换的时间输入例如("2014-06-14-16-09-00")返回时间戳
+ *
+ * @param time
+ * @return
+ */
+ public static Long dataOne(String time) {
+ if (TextUtils.isEmpty(time)) {
+ return 0l;
+ }
+ SimpleDateFormat sdr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss",
+ Locale.CHINA);
+ Date date = null;
+ try {
+ date = sdr.parse(time);
+ return date.getTime();
+ } catch (ParseException e) {
+ e.printStackTrace();
+ }
+
+
+ return 0l;
+ }
+
+ public static String formatTime(String time) {
+ SimpleDateFormat sdr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss",
+ Locale.CHINA);
+ Date date = null;
+ try {
+ date = sdr.parse(time);
+ SimpleDateFormat sdr2 = new SimpleDateFormat("MM-dd",
+ Locale.CHINA);
+ return sdr2.format(date.getTime());
+ } catch (ParseException e) {
+ e.printStackTrace();
+ }
+
+
+ return "";
+ }
+
+ public static String mouthOne() {
+ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月", Locale.CHINA);
+ return simpleDateFormat.format(new Date().getTime());
+
+
+ }
+
+ public static Long deadTime(String time) {
+
+ Long aLong = dataOne(time);
+ long time1 = new Date().getTime();
+ return aLong - time1;
+ }
+}
diff --git a/app/src/main/res/layout/item_discovery.xml b/app/src/main/res/layout/item_discovery.xml
index 73cccf0..f243e7f 100644
--- a/app/src/main/res/layout/item_discovery.xml
+++ b/app/src/main/res/layout/item_discovery.xml
@@ -61,7 +61,7 @@
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="1"
- android:text="21天前"
+ android:text=""
android:textColor="@color/darkgray"
android:textSize="12sp" />