diff --git a/app/src/main/java/com/sl/house_property/BaseFragment.java b/app/src/main/java/com/sl/house_property/BaseFragment.java index f9cdab3..5bb856d 100644 --- a/app/src/main/java/com/sl/house_property/BaseFragment.java +++ b/app/src/main/java/com/sl/house_property/BaseFragment.java @@ -33,6 +33,7 @@ public ProgressDialog progressDialog; @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(getLayoutId(), null); + mDataBinding = DataBindingUtil.bind(view); onCreateVew(inflater, savedInstanceState); progressDialog=new ProgressDialog(getActivity()); diff --git a/app/src/main/java/com/sl/house_property/MainTabActivity.java b/app/src/main/java/com/sl/house_property/MainTabActivity.java index 2827412..67b15bf 100644 --- a/app/src/main/java/com/sl/house_property/MainTabActivity.java +++ b/app/src/main/java/com/sl/house_property/MainTabActivity.java @@ -7,39 +7,22 @@ import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentTransaction; import android.util.Log; -import android.view.Gravity; import android.view.MotionEvent; import android.view.View; import android.widget.RadioButton; import android.widget.RadioGroup; +import android.widget.TextView; -import com.google.gson.Gson; -import com.google.gson.internal.LinkedTreeMap; -import com.google.gson.reflect.TypeToken; import com.gyf.immersionbar.ImmersionBar; -import com.selectpicker.OptionsPopupWindow; import com.sl.house_property.cart.CartFragment; import com.sl.house_property.databinding.ActivityMainTabBinding; import com.sl.house_property.discovery.DiscoveryFragment; -import com.sl.house_property.discovery.LikeFragment; -import com.sl.house_property.user.MyPropertyActivity; +import com.sl.house_property.message.MessageFragment; -import java.lang.reflect.Type; import java.util.ArrayList; -import java.util.HashMap; -import java.util.Map; -import entity.MyHomequEntity; -import entity.RegisterUser; -import entity.SimpleEntity; -import http.ApiConfig; import my_loader.Loader; -import my_loader.Resultcode; -import rx.Subscription; -import rx.functions.Action1; import tools.Config; -import utils.Md5; -import utils.SPUtils; public class MainTabActivity extends BaseActivity implements View.OnClickListener, @@ -64,13 +47,13 @@ public class MainTabActivity extends BaseActivity private Main3Fragment fragment2; private CartFragment fragment3; private Main4Fragment fragment4; + private MessageFragment messageFragment; // private LikeFragment likeFragment; private Fragment currentFragment; private int myeditcode = 1000; private Loader mGankLoader; - private int nowradioId; // @Override // public boolean dispatchTouchEvent(MotionEvent ev) { @@ -86,7 +69,15 @@ public class MainTabActivity extends BaseActivity public void visibilyBottom(int isVisibily) { findViewById(R.id.rl_bottom).setVisibility(isVisibily); } - + public void setMessageCount(int num){ + TextView viewById = findViewById(R.id.redview); + if (num>0){ + viewById.setText(num); + viewById .setVisibility(View.VISIBLE); + }else { + viewById.setVisibility(View.GONE); + } + } //2. 保存MyOnTouchListener接口的列表 private ArrayList onTouchListeners = new ArrayList(); @@ -201,14 +192,11 @@ public class MainTabActivity extends BaseActivity } private void initView() { - radioGroup = mDataBinding.radioGroup; - for (int i = 0; i < radioGroup.getChildCount(); i++) { - RadioButton myRadioButton = (RadioButton) radioGroup.getChildAt(i); - myRadioButton.setOnClickListener(this); - - } + findViewById(R.id.rl2).setOnClickListener(this); + findViewById(R.id.button).setOnClickListener(this); + findViewById(R.id.button1).setOnClickListener(this); + findViewById(R.id.button4).setOnClickListener(this); mDataBinding.button.setChecked(true); - nowradioId = mDataBinding.button.getId(); mDataBinding.getRoot().setBackground(getResources().getDrawable(R.drawable.background_slowly)); changeFragment(mDataBinding.button.getId()); @@ -221,6 +209,10 @@ public class MainTabActivity extends BaseActivity switch (i) { case R.id.button: + mDataBinding.button.setChecked(true); + mDataBinding.button1.setChecked(false); + mDataBinding.button2.setChecked(false); + mDataBinding.button4.setChecked(false); // mDataBinding.getRoot().setBackground(getResources().getDrawable(R.drawable.background_slowly)); if (fragment0 == null) { fragment0 = MainFragment.newInstance("", ""); @@ -233,6 +225,10 @@ public class MainTabActivity extends BaseActivity //setSytemBar(R.color.transparent); break; case R.id.button1: + mDataBinding.button.setChecked(false); + mDataBinding.button1.setChecked(true); + mDataBinding.button2.setChecked(false); + mDataBinding.button4.setChecked(false); // mDataBinding.getRoot().setBackground(getResources().getDrawable(R.drawable.background_slowly)); if (fragment1 == null) { @@ -246,16 +242,19 @@ public class MainTabActivity extends BaseActivity currentFragment = fragment1; break; - case R.id.button2: - - if (fragment2 == null) { - fragment2 = Main3Fragment.newInstance("", ""); - fragmentTransaction.add(R.id.mycontent, fragment2, "fragment2"); + case R.id.rl2: + mDataBinding.button.setChecked(false); + mDataBinding.button1.setChecked(false); + mDataBinding.button2.setChecked(true); + mDataBinding.button4.setChecked(false); + if (messageFragment == null) { + messageFragment = MessageFragment.newInstance(); + fragmentTransaction.add(R.id.mycontent, messageFragment, "fragment2"); } else { - fragmentTransaction.show(fragment2); + fragmentTransaction.show(messageFragment); } - currentFragment = fragment2; + currentFragment = messageFragment; break; case R.id.button3: // mDataBinding.getRoot().setBackground(getResources().getDrawable(R.drawable.background_slowly)); @@ -269,7 +268,10 @@ public class MainTabActivity extends BaseActivity currentFragment = fragment3; break; case R.id.button4: - + mDataBinding.button.setChecked(false); + mDataBinding.button1.setChecked(false); + mDataBinding.button2.setChecked(false); + mDataBinding.button4.setChecked(true); // mDataBinding.getRoot().setBackground(getResources().getDrawable(R.mipmap.beijing)); if (fragment4 == null) { fragment4 = Main4Fragment.newInstance("", ""); @@ -300,24 +302,19 @@ public class MainTabActivity extends BaseActivity @Override public void onClick(View view) { - if (view.getId() == nowradioId) return; - RadioButton myRadioButton = (RadioButton) findViewById(nowradioId); + if (view.getId() == R.id.button4) { if ((Config.getInstance(MainTabActivity.this).getUser() == null)) { Intent intent = new Intent(MainTabActivity.this, LoginActivity.class); startActivity(intent); - myRadioButton = (RadioButton) view; - myRadioButton.setChecked(false); - myRadioButton = (RadioButton) findViewById(nowradioId); - myRadioButton.setChecked(true); + mDataBinding.button.setChecked(false); + mDataBinding.button1.setChecked(false); + mDataBinding.button2.setChecked(false); + mDataBinding.button4.setChecked(false); return; } } - myRadioButton.setChecked(false); - myRadioButton = (RadioButton) view; - myRadioButton.setChecked(true); - nowradioId = view.getId(); changeFragment(view.getId()); } diff --git a/app/src/main/java/com/sl/house_property/WebActivitytwo.java b/app/src/main/java/com/sl/house_property/WebActivitytwo.java index 3f6ffe0..b514291 100644 --- a/app/src/main/java/com/sl/house_property/WebActivitytwo.java +++ b/app/src/main/java/com/sl/house_property/WebActivitytwo.java @@ -14,12 +14,14 @@ import android.widget.ProgressBar; import android.widget.RelativeLayout; import android.widget.TextView; +import com.gyf.immersionbar.ImmersionBar; + public class WebActivitytwo extends AppCompatActivity implements View.OnClickListener { public final static String URL = "url"; public final static String TITLE = "title"; private WebView webView; private ProgressBar pb; - private RelativeLayout mLayTopLeftTv; + private ImageView mLayTopLeftTv; private TextView mLayTopTitle; private TextView mRight; private ImageView mIvCode; @@ -40,6 +42,11 @@ public class WebActivitytwo extends AppCompatActivity implements View.OnClickLis setContentView(R.layout.activity_webtwo); String url = getIntent().getStringExtra(URL); String title = getIntent().getStringExtra(TITLE); + ImmersionBar.with(this) + .keyboardEnable(false) //解决软键盘与底部输入框冲突问题 + // .keyboardEnable(true, WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE + // | WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE) //软键盘自动弹出 + .barColor(R.color.colorPrimary).init(); initView(); pb.setMax(100); @@ -80,11 +87,11 @@ public class WebActivitytwo extends AppCompatActivity implements View.OnClickLis webView = (WebView) findViewById(R.id.webView); webView.setOnClickListener(this); pb = (ProgressBar) findViewById(R.id.pb); - mLayTopLeftTv = (RelativeLayout) findViewById(R.id.layTop_left_tv); + mLayTopLeftTv = (ImageView) findViewById(R.id.layTop_left_tv); mLayTopLeftTv.setOnClickListener(this); mLayTopTitle = (TextView) findViewById(R.id.layTop_title); - mRight = (TextView) findViewById(R.id.right); - mIvCode = (ImageView) findViewById(R.id.iv_code); + // mRight = (TextView) findViewById(R.id.right); + // mIvCode = (ImageView) findViewById(R.id.iv_code); mPb = (ProgressBar) findViewById(R.id.pb); mWebView = (WebView) findViewById(R.id.webView); mLayTopTitle.setText("智慧豆豆"); diff --git a/app/src/main/java/com/sl/house_property/message/GlideRoundTransform.java b/app/src/main/java/com/sl/house_property/message/GlideRoundTransform.java new file mode 100644 index 0000000..cb0da11 --- /dev/null +++ b/app/src/main/java/com/sl/house_property/message/GlideRoundTransform.java @@ -0,0 +1,55 @@ +package com.sl.house_property.message; + +import android.graphics.Bitmap; +import android.graphics.BitmapShader; +import android.graphics.Canvas; +import android.graphics.Paint; +import android.graphics.RectF; +import android.graphics.Shader; +import android.support.annotation.NonNull; + +import com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool; +import com.bumptech.glide.load.resource.bitmap.BitmapTransformation; +import com.bumptech.glide.load.resource.bitmap.TransformationUtils; + +import org.jetbrains.annotations.NotNull; + +import java.security.MessageDigest; + +public class GlideRoundTransform extends BitmapTransformation { + + private int dp; + + public GlideRoundTransform(int dp) { + this.dp = dp; + } + + @Override + protected Bitmap transform(@NonNull @NotNull BitmapPool bitmapPool, @NonNull @NotNull Bitmap bitmap, int outWidth, int outHeight) { + Bitmap bitmap1 = TransformationUtils.centerCrop(bitmapPool, bitmap, outWidth, outHeight); + return roundCrop(bitmapPool, bitmap1); + + } + + private Bitmap roundCrop(BitmapPool pool, Bitmap source) { + + if (source == null) return null; + Bitmap result = pool.get(source.getWidth(), source.getHeight(), Bitmap.Config.ARGB_8888); + if (result == null) { + result = Bitmap.createBitmap(source.getWidth(), source.getHeight(), Bitmap.Config.ARGB_8888); + } + + Canvas canvas = new Canvas(result); + Paint paint = new Paint(); + paint.setShader(new BitmapShader(source, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP)); + paint.setAntiAlias(true); + RectF rectF = new RectF(0f, 0f, source.getWidth(), source.getHeight()); + canvas.drawRoundRect(rectF, dp, dp, paint); + return result; + } + + @Override + public void updateDiskCacheKey(@NonNull @NotNull MessageDigest messageDigest) { + + } +} diff --git a/app/src/main/java/com/sl/house_property/message/MessageAdapter.java b/app/src/main/java/com/sl/house_property/message/MessageAdapter.java new file mode 100644 index 0000000..5aa3151 --- /dev/null +++ b/app/src/main/java/com/sl/house_property/message/MessageAdapter.java @@ -0,0 +1,31 @@ +package com.sl.house_property.message; + +import android.view.View; +import android.widget.ImageView; + +import com.bumptech.glide.Glide; +import com.bumptech.glide.request.RequestOptions; +import com.chad.library.adapter.base.BaseQuickAdapter; +import com.chad.library.adapter.base.BaseViewHolder; +import com.sl.house_property.R; + +public class MessageAdapter extends BaseQuickAdapter { + public MessageAdapter() { + super(R.layout.item_message); + } + + @Override + protected void convert(BaseViewHolder baseViewHolder, MessageEntity.StoreInfo messageEntity) { + Glide.with(mContext).load(messageEntity.getImg()).apply(new RequestOptions().transform(new GlideRoundTransform(16))) + .into(baseViewHolder.itemView.findViewById(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()); + if (messageEntity.getIs_dot().equals("1")) { + baseViewHolder.getView(R.id.view).setVisibility(View.VISIBLE); + } else { + baseViewHolder.getView(R.id.view).setVisibility(View.GONE); + } + } + +} diff --git a/app/src/main/java/com/sl/house_property/message/MessageEntity.java b/app/src/main/java/com/sl/house_property/message/MessageEntity.java new file mode 100644 index 0000000..6723013 --- /dev/null +++ b/app/src/main/java/com/sl/house_property/message/MessageEntity.java @@ -0,0 +1,103 @@ +package com.sl.house_property.message; + +import android.support.annotation.Keep; + +import java.util.ArrayList; + +@Keep +public class MessageEntity { + private ArrayList storeInfo; + private String userid; + private String Msg_count; + + public String getMsg_count() { + return Msg_count; + } + + public void setMsg_count(String msg_count) { + Msg_count = msg_count; + } + + public ArrayList getStoreInfo() { + return storeInfo; + } + + public void setStoreInfo(ArrayList storeInfo) { + this.storeInfo = storeInfo; + } + + public String getUserid() { + return userid; + } + + public void setUserid(String userid) { + this.userid = userid; + } + + public static class StoreInfo{ + private String title; + private String img; + private String store_name; + private String url; + private String ctime; + private String is_dot; + private String contents; + + public String getContents() { + return contents; + } + + public void setContents(String contents) { + this.contents = contents; + } + + public String getCtime() { + return ctime; + } + + public void setCtime(String ctime) { + this.ctime = ctime; + } + + public String getIs_dot() { + return is_dot; + } + + public void setIs_dot(String is_dot) { + this.is_dot = is_dot; + } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getImg() { + return img; + } + + public void setImg(String img) { + this.img = img; + } + + public String getStore_name() { + return store_name; + } + + public void setStore_name(String store_name) { + this.store_name = store_name; + } + + public String getUrl() { + return url; + } + + public void setUrl(String url) { + this.url = url; + } + } + +} diff --git a/app/src/main/java/com/sl/house_property/message/MessageFragment.java b/app/src/main/java/com/sl/house_property/message/MessageFragment.java new file mode 100644 index 0000000..9cbfa69 --- /dev/null +++ b/app/src/main/java/com/sl/house_property/message/MessageFragment.java @@ -0,0 +1,134 @@ +package com.sl.house_property.message; + +import android.os.Bundle; +import android.support.annotation.NonNull; +import android.support.annotation.Nullable; +import android.support.v4.app.Fragment; +import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; +import android.widget.Toast; + +import com.chad.library.adapter.base.BaseQuickAdapter; +import com.google.gson.Gson; +import com.google.gson.internal.LinkedTreeMap; +import com.google.gson.reflect.TypeToken; +import com.gyf.immersionbar.ImmersionBar; +import com.sl.house_property.MainTabActivity; +import com.sl.house_property.R; +import com.sl.house_property.WebActivitytwo; + +import org.jetbrains.annotations.NotNull; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Map; + +import entity.RegisterUser; +import http.ApiConfig; +import my_loader.Loader; +import my_loader.Resultcode; +import rx.functions.Action1; +import tools.Config; +import utils.Md5; + +public class MessageFragment extends Fragment { + // private int pageIndex = 0; + private MessageAdapter adapter = null; + private TextView tvTitle; + + @Nullable + @Override + public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + View view = inflater.inflate(R.layout.fragment_message, null); + return view; + } + + public static MessageFragment newInstance() { + MessageFragment fragment = new MessageFragment(); + Bundle args = new Bundle(); + + fragment.setArguments(args); + return fragment; + } + + @Override + public void onViewCreated(@NonNull @NotNull View view, @Nullable @org.jetbrains.annotations.Nullable Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); + + RecyclerView rv = view.findViewById(R.id.rv); + tvTitle = view.findViewById(R.id.tv_title); + adapter = new MessageAdapter(); + rv.setAdapter(adapter); + rv.setLayoutManager(new LinearLayoutManager(getContext())); + adapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() { + @Override + public void onItemClick(BaseQuickAdapter baseQuickAdapter, View view, int i) { + WebActivitytwo.runActivity(getContext(), adapter.getData().get(i).getTitle(), adapter.getData().get(i).getUrl()); + } + }); + + } + + @Override + public void onResume() { + super.onResume(); + getData(); + } + + private void getData() { + RegisterUser user = + Config.getInstance(getContext()).getUser(); + Map map = new HashMap<>(); + if (user != null) { + map.put("userid", user.getUserid()); + } else { + map.put("userid", 0 + ""); + } + map.put("app", "Store"); + map.put("class", "GetMsgList"); + map.put("sign", Md5.md5("Store" + "GetMsgList" + Md5.secret)); + Loader mGankLoader = new Loader(); + mGankLoader.getMovie(ApiConfig.BASE_URL, map).subscribe(new Action1() { + @Override + public void call(Resultcode resultcode) { + if (!(resultcode.status == 0)) { +// getActivity().setToast(1, resultcode.msg); + Toast.makeText(getContext(), resultcode.msg, Toast.LENGTH_SHORT).show(); + } + + Gson gs = new Gson(); + LinkedTreeMap adta = (LinkedTreeMap) resultcode.data; + String s = gs.toJson(adta); + Log.e("json", s); + + + MessageEntity messageEntity = gs.fromJson(s, MessageEntity.class); + int i = Integer.parseInt(messageEntity.getMsg_count()); + if (i > 0) { + tvTitle.setText("消息(" + i + ")"); + MainTabActivity activity = (MainTabActivity) getActivity(); + activity.setMessageCount(i); + } else { + MainTabActivity activity = (MainTabActivity) getActivity(); + activity.setMessageCount(i); + tvTitle.setText("消息"); + } + + adapter.setNewData(messageEntity.getStoreInfo()); + } + }, new Action1() { + @Override + public void call(Throwable throwable) { + throwable.fillInStackTrace(); + Toast.makeText(getContext(), getString(R.string.getdatafailure), Toast.LENGTH_SHORT).show(); + } + }); + } + +} diff --git a/app/src/main/res/drawable/circle_red.xml b/app/src/main/res/drawable/circle_red.xml new file mode 100644 index 0000000..3f34201 --- /dev/null +++ b/app/src/main/res/drawable/circle_red.xml @@ -0,0 +1,9 @@ + + + + + + + diff --git a/app/src/main/res/layout/activity_main_tab.xml b/app/src/main/res/layout/activity_main_tab.xml index 8bbaed0..d843c6c 100644 --- a/app/src/main/res/layout/activity_main_tab.xml +++ b/app/src/main/res/layout/activity_main_tab.xml @@ -42,7 +42,7 @@ android:background="@drawable/background_grey_line" android:visibility="gone" /> - + + + + + + + android:textColor="@color/radiobuttoncolor" + android:visibility="gone" /> - - + - + diff --git a/app/src/main/res/layout/activity_webtwo.xml b/app/src/main/res/layout/activity_webtwo.xml index 0ccd2cd..21f242b 100644 --- a/app/src/main/res/layout/activity_webtwo.xml +++ b/app/src/main/res/layout/activity_webtwo.xml @@ -6,7 +6,34 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> - + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/item_message.xml b/app/src/main/res/layout/item_message.xml new file mode 100644 index 0000000..81c515c --- /dev/null +++ b/app/src/main/res/layout/item_message.xml @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file