Commit 096107cd by wjg

v2

parent c2ad23a7
......@@ -31,14 +31,14 @@
android:theme="@style/AppTheme"
android:usesCleartextTraffic="true"
tools:replace="android:allowBackup,android:icon">
<!-- 悬浮窗入口 -->
<meta-data
android:name="LogcatWindowEntrance"
android:value="true" />
<!-- 通知栏入口 -->
<meta-data
android:name="LogcatNotifyEntrance"
android:value="true" />
<!-- &lt;!&ndash; 悬浮窗入口 &ndash;&gt;-->
<!-- <meta-data-->
<!-- android:name="LogcatWindowEntrance"-->
<!-- android:value="true" />-->
<!-- &lt;!&ndash; 通知栏入口 &ndash;&gt;-->
<!-- <meta-data-->
<!-- android:name="LogcatNotifyEntrance"-->
<!-- android:value="true" />-->
<activity
android:name=".home.view.LauncherActivity"
android:exported="true"
......
......@@ -62,24 +62,24 @@ public class MachineInfoSocket extends Thread {
public void getMachineCode() {
if (mSocket == null) {
Utils.i("socket未连接");
Utils.i("machine socket未连接");
return;
}
try {
mSocket.emit("notice", "", (Ack) args -> {
if (CollectionUtils.isEmpty(args)) {
Utils.i("notice args empty");
Utils.i("machine notice args empty");
return;
}
String content = args[0].toString();
if (StringUtils.isEmpty(content)) {
Utils.i("notice content empty");
Utils.i("machine notice content empty");
return;
}
MachineInfoMsg msg = JsonUtils.readValue(content, MachineInfoMsg.class);
if (msg == null) {
Utils.i("notice msg empty");
Utils.i("machine notice msg empty");
return;
}
Utils.i("get machine info: " + msg);
......@@ -98,7 +98,7 @@ public class MachineInfoSocket extends Thread {
private void sendMessage(String content) {
if (mSocket == null) {
Utils.i("socket未连接");
Utils.i("machine socket未连接");
return;
}
try {
......
......@@ -39,7 +39,6 @@ public class GoodsAdapter extends BaseSectionQuickAdapter<ScrollBean, BaseViewHo
protected void convert(BaseViewHolder helper, ScrollBean item) {
ScrollBean.ScrollItemBean t = item.t;
ViewGroup layoutItem = helper.getView(R.id.layout_item);
// layoutItem.setForeground(null);
Goods goods = (Goods) t.getObject();
helper.setText(R.id.txt_name, goods.getName());
......@@ -67,9 +66,12 @@ public class GoodsAdapter extends BaseSectionQuickAdapter<ScrollBean, BaseViewHo
}
ImageView imgThumbnail = helper.getView(R.id.img_thumbnail);
// RoundedCorners roundedCorners = new RoundedCorners(5);
// RequestOptions options = RequestOptions.bitmapTransform(roundedCorners);
if (goods.getPics() == null) {
imgThumbnail.setImageDrawable(null);
} else {
// Utils.getGlide(mContext).load(Utils.getThumbnailUrl(goods.getPics().getThumbnail())).apply(options).into(imgThumbnail);
Utils.getGlide(mContext).load(Utils.getThumbnailUrl(goods.getPics().getThumbnail())).into(imgThumbnail);
}
......@@ -128,7 +130,7 @@ public class GoodsAdapter extends BaseSectionQuickAdapter<ScrollBean, BaseViewHo
int verPadding = Utils.getDimens(mContext, R.dimen.goods_padding_ver);
// 最后一个商品 并且购物条已经显示
if (getData().indexOf(item) == getItemCount() - 1) {
if (getData().indexOf(item) == getItemCount() - 1 && trolleyState) {
// int padding = Utils.getDimens(mContext, R.dimen.padding10);
int bottomPadding = Utils.getDimens(mContext, R.dimen.goods_last_padding_bottom);
layoutItem.setPadding(0, verPadding, 0, bottomPadding);
......
......@@ -19,8 +19,6 @@ import android.view.MotionEvent;
import android.view.View;
import android.view.ViewTreeObserver;
import android.view.WindowManager;
import android.view.animation.LinearInterpolator;
import android.widget.OverScroller;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.RelativeLayout;
......@@ -64,7 +62,6 @@ import com.ihaoin.hooloo.device.util.SharedPreferencesUtils;
import com.ihaoin.hooloo.device.util.StringUtils;
import com.ihaoin.hooloo.device.util.Utils;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;
......@@ -291,15 +288,15 @@ public class LauncherActivity extends Activity {
}
}
});
try {
Field field = ScrollView.class.getDeclaredField("mScroller");
field.setAccessible(true);
OverScroller scroller = new OverScroller(this, new LinearInterpolator());
scroller.setFriction(50);
field.set(scrollCategory, scroller);
} catch (Exception e) {
e.printStackTrace();
}
// try {
// Field field = ScrollView.class.getDeclaredField("mScroller");
// field.setAccessible(true);
// OverScroller scroller = new OverScroller(this, new LinearInterpolator());
// scroller.setFriction(50);
// field.set(scrollCategory, scroller);
// } catch (Exception e) {
// e.printStackTrace();
// }
}
/** 判断RecyclerView是否滚动到最下面 */
......@@ -319,6 +316,7 @@ public class LauncherActivity extends Activity {
int drawablePadding = Utils.getDimens(LauncherActivity.this, R.dimen.category_drawable_padding);
Rect rect = new Rect(0, 0, w, h);
groupCategory.setOnCheckedChangeListener(null);
groupCategory.removeAllViews();
List<Category> categorys = HLApplication.getMainData().getCategorys();
if (!CollectionUtils.isEmpty(categorys)) {
......@@ -328,30 +326,29 @@ public class LauncherActivity extends Activity {
continue;
}
RadioGroup.LayoutParams layoutParams = new RadioGroup.LayoutParams(RadioGroup.LayoutParams.MATCH_PARENT, RadioGroup.LayoutParams.WRAP_CONTENT);
RadioButton butnRadio = (RadioButton) this.getLayoutInflater().inflate(R.layout.item_category, null);
butnRadio.setText(category.getName());
butnRadio.setId(category.getId());
butnRadio.setTag(category);
RadioButton butnCategory = (RadioButton) this.getLayoutInflater().inflate(R.layout.item_category, null);
butnCategory.setText(category.getName());
butnCategory.setId(category.getId());
butnCategory.setTag(category);
if (StringUtils.isEmpty(category.getIcon())) {
if (i == 0) {
addLayoutListener(butnRadio);
butnCategory.getPaint().setFakeBoldText(true);
butnCategory.setChecked(true);
}
} else {
int finalIndex = i;
Utils.getGlide(LauncherActivity.this).load(category.getIcon()).into(new CustomTarget<Drawable>() {
@Override
public void onResourceReady(@NonNull Drawable drawable, @Nullable Transition<? super Drawable> transition) {
drawable.setBounds(rect);
butnRadio.setCompoundDrawablePadding(drawablePadding);
butnRadio.setCompoundDrawables(null, drawable, null, null);
butnCategory.setCompoundDrawablePadding(drawablePadding);
butnCategory.setCompoundDrawables(null, drawable, null, null);
Integer left = Utils.getDimens(LauncherActivity.this, R.dimen.category_padding_hor);
Integer top = Utils.getDimens(LauncherActivity.this, R.dimen.category_padding_top);
Integer right = left;
Integer bottom = Utils.getDimens(LauncherActivity.this, R.dimen.category_padding_bottom);
butnRadio.setPadding(left, top, right, bottom);
butnCategory.setPadding(left, top, right, bottom);
if (finalIndex == 0) {
addLayoutListener(butnRadio);
addLayoutListener(butnCategory);
}
}
......@@ -359,13 +356,10 @@ public class LauncherActivity extends Activity {
public void onLoadCleared(@Nullable Drawable placeholder) {
}
});
}
groupCategory.addView(butnRadio, layoutParams);
groupCategory.addView(butnCategory, layoutParams);
// butnRadio.setForeground(null);
butnRadio.setOnClickListener(v -> {
Integer checkedId = v.getId();
Category tagCategory = (Category) groupCategory.findViewById(checkedId).getTag();
butnCategory.setOnClickListener(v -> {
Category tagCategory = (Category) groupCategory.findViewById(v.getId()).getTag();
int position = categorys.indexOf(tagCategory);
goodsLayoutManager.scrollToPositionWithOffset(tPosition.get(position), 0);
});
......@@ -373,35 +367,36 @@ public class LauncherActivity extends Activity {
}
groupCategory.setOnCheckedChangeListener((group, checkedId) -> {
for (int i = 0; i < groupCategory.getChildCount(); i++) {
RadioButton butnRadio = (RadioButton) groupCategory.getChildAt(i);
if (butnRadio.getId() == checkedId) {
setShadowView(butnRadio);
butnRadio.getPaint().setFakeBoldText(true);
RadioButton butnCategory = (RadioButton) groupCategory.getChildAt(i);
if (butnCategory.getId() == checkedId) {
setShadowView(butnCategory);
butnCategory.getPaint().setFakeBoldText(true);
} else {
butnRadio.getPaint().setFakeBoldText(false);
butnCategory.getPaint().setFakeBoldText(false);
}
}
});
groupCategory.scrollTo(0, 0);
}
private void smoothTo(RadioButton butnRadio) {
scrollCategory.smoothScrollTo(0, getSmoothHeight(butnRadio));
private void smoothTo(RadioButton butnCategory) {
scrollCategory.smoothScrollTo(0, getSmoothHeight(butnCategory));
}
private void addLayoutListener(RadioButton butnRadio) {
butnRadio.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
private void addLayoutListener(RadioButton butnCategory) {
butnCategory.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
butnRadio.getViewTreeObserver().removeOnGlobalLayoutListener(this);
butnRadio.performClick();
butnCategory.getViewTreeObserver().removeOnGlobalLayoutListener(this);
setShadowView(butnCategory);
}
});
}
private void setShadowView(View butnRadio) {
private void setShadowView(View butnCategory) {
View shadow = findViewById(R.id.shadow);
RelativeLayout.LayoutParams lp = (RelativeLayout.LayoutParams) shadow.getLayoutParams();
lp.topMargin = getShadowHeight(butnRadio);
lp.topMargin = getShadowHeight(butnCategory);
shadow.setLayoutParams(lp);
}
......@@ -414,7 +409,8 @@ public class LauncherActivity extends Activity {
}
private int getHeight(View butnRadio, boolean self) {
int height = Utils.getDimens(this, R.dimen.category_margin);
// int height = Utils.getDimens(this, R.dimen.category_margin);
int height = 0;
for (int i = 0; i < groupCategory.getChildCount(); i++) {
View v = groupCategory.getChildAt(i);
if (!self && v.getId() == butnRadio.getId()) {
......@@ -459,20 +455,6 @@ public class LauncherActivity extends Activity {
}
}
// private void startLoadDataThread() {
// loadData();
//// new Thread(() -> {
//// try {
//// while (true) {
//// runOnUiThread(() -> loadData());
//// Thread.sleep(1000 * 10);
//// }
//// } catch (Exception e) {
//// e.printStackTrace();
//// }
//// }).start();
// }
private LoadDataHandler loadDataHandler;
private void loadData() {
......@@ -504,6 +486,11 @@ public class LauncherActivity extends Activity {
setRecommendsData();
initCategorys();
setGoodsData();
// initRecommends();
// setRecommendsData();
// initCategorys();
// initGoods();
// setGoodsData();
if (kdsView != null) {
kdsView.mainDataChanged();
}
......@@ -905,11 +892,11 @@ public class LauncherActivity extends Activity {
Utils.showToast(LauncherActivity.this, "hdmi state: " + state);
}
// TODO TEST
// if (state) {
// new Handler().postDelayed(() -> preparePresentView(), 1000 * 5);
// } else {
// hidePresentView();
// }
if (state) {
new Handler().postDelayed(() -> preparePresentView(), 1000 * 5);
} else {
hidePresentView();
}
}
}
......
......@@ -65,20 +65,20 @@ public class InteractionSocket extends Thread {
private void process(String func, Object[] args) {
if (CollectionUtils.isEmpty(args)) {
Utils.i(func + " args empty");
Utils.i("interaction " + func + " args empty");
return;
}
String content = args[0].toString();
if (StringUtils.isEmpty(content)) {
Utils.i(func + " content empty");
Utils.i("interaction " + func + " content empty");
return;
}
InteractionMsg msg = JsonUtils.readValue(content, InteractionMsg.class);
if (msg == null) {
Utils.i(func + " msg empty");
Utils.i("interaction " + func + " msg empty");
return;
}
Utils.i(func + " receive msg: " + content);
Utils.i("interaction " + func + " receive msg: " + content);
Utils.sendInteractionMsgBroadcast(mContext, msg);
}
......@@ -101,7 +101,7 @@ public class InteractionSocket extends Thread {
public void sendMessage(String content) {
if (mSocket == null) {
Utils.i("socket未连接");
Utils.i("interaction socket未连接");
return;
}
try {
......
......@@ -64,6 +64,7 @@ public class KDSSocket extends Thread {
Utils.i("reply msg empty");
return;
}
Utils.i("kds reply: " + content);
Utils.sendKdsMsgBroadcast(mContext, msg);
};
......@@ -86,7 +87,7 @@ public class KDSSocket extends Thread {
public void sendMessage(String content) {
if (mSocket == null) {
Utils.i("socket未连接");
Utils.i("kds socket未连接");
return;
}
try {
......
......@@ -69,7 +69,7 @@ public class KdsPresentation extends Presentation {
setOnDismissListener(dismissListener);
startImagePagerThread();
startTimer();
startSocket();
}
......@@ -125,6 +125,19 @@ public class KdsPresentation extends Presentation {
smoothScroller.setTargetPosition(position);
startSmoothScroll(smoothScroller);
}
long times = 0;
@Override
public void onScrollStateChanged(int state) {
super.onScrollStateChanged(state);
if (state == 2) {
times = System.currentTimeMillis();
}
if (state == 0) {
Utils.i("machine state: " + state + ", times: " + (System.currentTimeMillis() - times));
}
}
};
LinearLayoutManager imageLayoutManager = new LinearLayoutManager(getContext()) {
......@@ -134,12 +147,25 @@ public class KdsPresentation extends Presentation {
// 返回:滑过1px时经历的时间(ms)。
@Override
protected float calculateSpeedPerPixel(DisplayMetrics displayMetrics) {
return 0.3f;
return 0.2f;
}
};
smoothScroller.setTargetPosition(position);
startSmoothScroll(smoothScroller);
}
long times = 0;
@Override
public void onScrollStateChanged(int state) {
super.onScrollStateChanged(state);
if (state == 2) {
times = System.currentTimeMillis();
}
if (state == 0) {
Utils.i("image state: " + state + ", times: " + (System.currentTimeMillis() - times));
}
}
};
private void showImages() {
......@@ -147,6 +173,7 @@ public class KdsPresentation extends Presentation {
if (mainData == null || mainData.getImages() == null) {
return;
}
imagePosition = 0;
recyclerImagePager.removeAllViews();
if (CollectionUtils.isEmpty(mainData.getImages().getLeft())) {
return;
......@@ -166,25 +193,23 @@ public class KdsPresentation extends Presentation {
}
}
private ImagePagerThread imagePagerThread;
private ImagePagerHandler imagePagerHandler;
private TimerThread timerThread;
private void startImagePagerThread() {
imagePagerHandler = new ImagePagerHandler();
imagePagerThread = new ImagePagerThread();
imagePagerThread.start();
private void startTimer() {
timerThread = new TimerThread();
timerThread.start();
}
private class ImagePagerThread extends Thread {
private class TimerThread extends Thread {
@Override
public void run() {
try {
while (true) {
// KDSMsg msg = KDSGen.getKdsMsg();
// Utils.sendKdsMsgBroadcast(getContext(), msg);
Thread.sleep(1000 * 5);
imagePagerHandler.sendEmptyMessage(1);
timerHandler.sendEmptyMessage(1);
Thread.sleep(1000 * 5);
timerHandler.sendEmptyMessage(1);
timerHandler.sendEmptyMessage(2);
}
} catch (Exception e) {
e.printStackTrace();
......@@ -192,23 +217,34 @@ public class KdsPresentation extends Presentation {
}
}
private class ImagePagerHandler extends Handler {
@SuppressLint("HandlerLeak")
Handler timerHandler = new Handler() {
@Override
public void handleMessage(@NonNull Message msg) {
setNextImage();
if (msg.what == 1) {
smoothMachineState();
} else if (msg.what == 2) {
setNextImage();
}
}
};
private Integer imagePosition = 0;
private Integer statePosition = 3;
private void setNextImage() {
if (imagePagerAdapter == null || imagePagerAdapter.getItemCount() <= 0) {
return;
}
imagePosition++;
Utils.i("showImage: " + imagePosition);
recyclerImagePager.smoothScrollToPosition(imagePosition);
}
private void smoothMachineState() {
if (machineStateAdapter == null || machineStateAdapter.getItemCount() <= 0) {
return;
}
statePosition++;
recyclerMachineState.smoothScrollToPosition(statePosition);
}
......@@ -299,13 +335,13 @@ public class KdsPresentation extends Presentation {
Utils.i("kds present dismiss");
unregistKDSMessageReceiver();
if (imagePagerHandler != null) {
imagePagerHandler.removeCallbacksAndMessages(null);
imagePagerHandler = null;
if (timerHandler != null) {
timerHandler.removeCallbacksAndMessages(null);
timerHandler = null;
}
if (imagePagerThread != null) {
imagePagerThread.interrupt();
imagePagerThread = null;
if (timerThread != null) {
timerThread.interrupt();
timerThread = null;
}
stopSocket();
......
......@@ -51,6 +51,7 @@
android:layout_weight="0.09792"
android:descendantFocusability="afterDescendants"
android:overScrollMode="never"
android:layout_marginTop="@dimen/category_margin"
android:scrollbars="none">
<RelativeLayout
android:layout_width="match_parent"
......@@ -59,7 +60,6 @@
android:id="@+id/group_category"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/category_margin"
android:gravity="center"
android:orientation="vertical"
android:showDividers="middle" />
......
......@@ -7,6 +7,7 @@
android:foreground="@null"
android:gravity="center"
android:paddingHorizontal="@dimen/category_padding_hor"
android:checked="false"
android:paddingTop="@dimen/category_padding_top_noimg"
android:paddingBottom="@dimen/category_padding_bottom_noimg"
android:text="123123"
......
......@@ -8,21 +8,18 @@
android:orientation="horizontal">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/image_pager"
android:layout_width="0dp"
android:layout_width="@dimen/menu_left"
android:layout_height="match_parent"
android:layout_weight="0.73125"
android:descendantFocusability="afterDescendants"
android:orientation="horizontal"
android:overScrollMode="never" />
<LinearLayout
android:layout_width="0dp"
android:layout_width="@dimen/menu_right"
android:layout_height="match_parent"
android:layout_weight="0.26875"
android:orientation="vertical">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="0.70185"
android:layout_height="@dimen/menu_right_top"
android:background="@color/menu_order_bg"
android:paddingStart="@dimen/menu_content_padding_hor"
android:paddingTop="@dimen/menu_content_padding_top">
......@@ -251,8 +248,7 @@
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="0.29815"
android:layout_height="@dimen/menu_right_bottom"
android:background="@color/menu_state_bg"
android:paddingLeft="@dimen/menu_state_padding_hor"
android:paddingTop="@dimen/menu_state_padding_ver"
......
......@@ -12,19 +12,19 @@
<dimen name="recommend_padding">38px</dimen>
<dimen name="recommend_image_height_0">794px</dimen>
<dimen name="recommend_image_height_other">392px</dimen>
<dimen name="recommend_name_margin_top">82px</dimen>
<dimen name="recommend_name_margin_top">40px</dimen>
<dimen name="recommend_name_margin_left">68px</dimen>
<dimen name="recommend_desc_margin_top">18px</dimen>
<dimen name="recommend_desc_margin_left">68px</dimen>
<dimen name="goods_padding_top">30px</dimen>
<dimen name="goods_padding_top">125px</dimen>
<dimen name="goods_padding_ver">30px</dimen>
<dimen name="goods_padding_right">38px</dimen>
<dimen name="goods_last_padding_bottom">300px</dimen>
<dimen name="goods_last_padding_bottom">225px</dimen>
<dimen name="goods_thum_size">174px</dimen>
<dimen name="goods_thum_margin_right">40px</dimen>
<dimen name="goods_recommend_margin">30px</dimen>
<dimen name="goods_category_margin_top">13px</dimen>
<dimen name="goods_category_margin_top">0px</dimen>
<dimen name="goods_tag_margin_top">13px</dimen>
<dimen name="goods_tag_padding_ver">0px</dimen>
<dimen name="goods_tag_padding_hor">5px</dimen>
......@@ -40,7 +40,7 @@
<dimen name="category_drawable_padding">10px</dimen>
<dimen name="category_drawable_width">100px</dimen>
<dimen name="category_drawable_height">75px</dimen>
<dimen name="category_margin">129px</dimen>
<dimen name="category_margin">125px</dimen>
<dimen name="category_divider_padding">0px</dimen>
<dimen name="tip_margin_top">40px</dimen>
<dimen name="tip_padding_top">33px</dimen>
......
......@@ -12,19 +12,19 @@
<dimen name="recommend_padding">38px</dimen>
<dimen name="recommend_image_height_0">794px</dimen>
<dimen name="recommend_image_height_other">392px</dimen>
<dimen name="recommend_name_margin_top">82px</dimen>
<dimen name="recommend_name_margin_top">40px</dimen>
<dimen name="recommend_name_margin_left">68px</dimen>
<dimen name="recommend_desc_margin_top">18px</dimen>
<dimen name="recommend_desc_margin_left">68px</dimen>
<dimen name="goods_padding_top">30px</dimen>
<dimen name="goods_padding_top">125px</dimen>
<dimen name="goods_padding_ver">30px</dimen>
<dimen name="goods_padding_right">38px</dimen>
<dimen name="goods_last_padding_bottom">300px</dimen>
<dimen name="goods_last_padding_bottom">225px</dimen>
<dimen name="goods_thum_size">174px</dimen>
<dimen name="goods_thum_margin_right">40px</dimen>
<dimen name="goods_recommend_margin">30px</dimen>
<dimen name="goods_category_margin_top">13px</dimen>
<dimen name="goods_category_margin_top">0px</dimen>
<dimen name="goods_tag_margin_top">13px</dimen>
<dimen name="goods_tag_padding_ver">0px</dimen>
<dimen name="goods_tag_padding_hor">5px</dimen>
......@@ -40,7 +40,7 @@
<dimen name="category_drawable_padding">10px</dimen>
<dimen name="category_drawable_width">100px</dimen>
<dimen name="category_drawable_height">75px</dimen>
<dimen name="category_margin">129px</dimen>
<dimen name="category_margin">125px</dimen>
<dimen name="category_divider_padding">0px</dimen>
<dimen name="tip_margin_top">40px</dimen>
<dimen name="tip_padding_top">33px</dimen>
......
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