diff --git a/app/src/main/java/com/gh/gamecenter/SplashScreenActivity.java b/app/src/main/java/com/gh/gamecenter/SplashScreenActivity.java index c24170948a..b111e596cf 100644 --- a/app/src/main/java/com/gh/gamecenter/SplashScreenActivity.java +++ b/app/src/main/java/com/gh/gamecenter/SplashScreenActivity.java @@ -15,6 +15,11 @@ import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; +import androidx.annotation.NonNull; +import androidx.core.app.ActivityCompat; +import androidx.viewpager.widget.PagerAdapter; +import androidx.viewpager.widget.ViewPager; + import com.gh.base.BaseActivity; import com.gh.common.util.DataUtils; import com.gh.common.util.DeviceTokenUtils; @@ -49,10 +54,6 @@ import java.util.Date; import java.util.List; import java.util.Locale; -import androidx.annotation.NonNull; -import androidx.core.app.ActivityCompat; -import androidx.viewpager.widget.PagerAdapter; -import androidx.viewpager.widget.ViewPager; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.schedulers.Schedulers; import okhttp3.ResponseBody; @@ -63,19 +64,19 @@ import pub.devrel.easypermissions.EasyPermissions; * 引导页面 */ public class SplashScreenActivity extends BaseActivity { - + private SharedPreferences mSharedPreferences; - + private boolean isFirst; private boolean isNewFirstLaunch; - + private static final int REQUEST_PERMISSION_TAG = 30001; private static final String SP_BRAND_NEW_USER = "brand_new_user"; // 用于标记是否为新用户,应用更新再打开的不算是新用户 private String[] mPermissions = { - Manifest.permission.WRITE_EXTERNAL_STORAGE, - Manifest.permission.READ_EXTERNAL_STORAGE, - Manifest.permission.READ_PHONE_STATE}; - + Manifest.permission.WRITE_EXTERNAL_STORAGE, + Manifest.permission.READ_EXTERNAL_STORAGE, + Manifest.permission.READ_PHONE_STATE}; + public static Intent getSplashScreenIntent(Context context, Bundle bundle) { Intent intent = new Intent(context, SplashScreenActivity.class); intent.setAction(Intent.ACTION_MAIN); @@ -84,31 +85,31 @@ public class SplashScreenActivity extends BaseActivity { intent.putExtras(bundle); return intent; } - + @Override protected void onCreate(Bundle savedInstanceState) { - + mSharedPreferences = PreferenceManager.getDefaultSharedPreferences(this); isNewFirstLaunch = mSharedPreferences.getBoolean("isNewFirstLaunchV" + PackageUtils.getVersionName(), true); - + super.onCreate(savedInstanceState); - + UserRepository.getInstance(getApplication()); // 初始化登录 - + // 处理助手已经在后台运行导致的再次启动助手 if ((getIntent().getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) != 0) { finish(); return; } - + TimestampUtils.initMap(); - + isFirst = true; - + // 判断是不是这个版本的新用户 if (isNewFirstLaunch) { setTheme(R.style.AppGuideTheme); - + // 删除更新后的光环助手包 List all = DownloadManager.getInstance(this).getAll(); for (DownloadEntity downloadEntity : all) { @@ -117,14 +118,17 @@ public class SplashScreenActivity extends BaseActivity { break; } } - + mContentView.setPadding(0, 0, 0, 0); ViewPager guideLayout = findViewById(R.id.splash_intro_vp_guide); guideLayout.setAdapter(new GuidePagerAdapter()); - + // 判断是不是光环的新用户 if (SPUtils.getBoolean(SP_BRAND_NEW_USER, true)) { + View introBackground = findViewById(R.id.splash_intro_background); + introBackground.setVisibility(View.VISIBLE); showPrivacyPolicy(() -> { + introBackground.setVisibility(View.GONE); // Dialog dismiss 后的回调 SPUtils.setBoolean(SP_BRAND_NEW_USER, false); requestPermissionAndLaunchMainActivity(); @@ -134,11 +138,11 @@ public class SplashScreenActivity extends BaseActivity { } } else { setTheme(R.style.AppFullScreenTheme); - + getWindow().getDecorView().postDelayed(this::launchMainActivity, 1000); } } - + private void requestPermissionAndLaunchMainActivity() { if (EasyPermissions.hasPermissions(this, mPermissions)) { GdtHelper.INSTANCE.logAction(ActionType.START_APP, GdtHelper.NETWORK_TYPE, DeviceUtils.getNetwork(this)); @@ -146,48 +150,48 @@ public class SplashScreenActivity extends BaseActivity { checkAndRequestPermission(); } } - + @SuppressLint("CheckResult") private void showPrivacyPolicy(EmptyCallback callback) { RetrofitManager.getInstance(this).getApi() - .getPrivacyPolicy() - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new BiResponse() { - @Override - public void onSuccess(ResponseBody data) { - String content = null; - String title = null; - try { - content = new JSONObject(data.string()).getString("content"); - title = new JSONObject(data.string()).getString("title"); - } catch (Exception e) { - e.printStackTrace(); - } finally { - DialogUtils.showPrivacyPolicyDialog(SplashScreenActivity.this, title, content, callback); + .getPrivacyPolicy() + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new BiResponse() { + @Override + public void onSuccess(ResponseBody data) { + String content = null; + String title = null; + try { + content = new JSONObject(data.string()).getString("content"); + title = new JSONObject(data.string()).getString("title"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + DialogUtils.showPrivacyPolicyDialog(SplashScreenActivity.this, title, content, callback); + } } - } - - @Override - public void onFailure(@NotNull Exception exception) { - DialogUtils.showPrivacyPolicyDialog(SplashScreenActivity.this, null, null, callback); - } - }); + + @Override + public void onFailure(@NotNull Exception exception) { + DialogUtils.showPrivacyPolicyDialog(SplashScreenActivity.this, null, null, callback); + } + }); } - + @Override protected int getLayoutId() { - + final int layoutId; if (isNewFirstLaunch) { layoutId = R.layout.activity_splash_intro; } else { layoutId = R.layout.activity_splash_normal; } - + return layoutId; } - + @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { @@ -199,30 +203,30 @@ public class SplashScreenActivity extends BaseActivity { } return super.onKeyDown(keyCode, event); } - + // 跳转到主界面 private void launchMainActivity() { getUniqueId(); - + Bundle bundle = getIntent().getExtras(); Intent intent = new Intent(SplashScreenActivity.this, MainActivity.class); if (bundle != null) intent.putExtras(bundle); startActivity(intent); finish(); } - + private void getUniqueId() { DataUtils.getGid(); } - + @Override public void onWindowFocusChanged(boolean hasFocus) { super.onWindowFocusChanged(hasFocus); if (hasFocus && isFirst) { isFirst = false; - + GameRepositoryHelper.getGameRepository(this); - + HaloApp.getInstance().getMainExecutor().execute(() -> { // 第一次启动,把package.txt文件内容加载进数据库 FilterManager filterManager = new FilterManager(getApplicationContext()); @@ -231,7 +235,7 @@ public class SplashScreenActivity extends BaseActivity { } // 获取过滤包 filterManager.getFilterFromServer(0); - + // 更新过滤表,获取自动刷新的cd,获取版本对应表 String time = mSharedPreferences.getString("refresh_time", null); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault()); @@ -241,15 +245,15 @@ public class SplashScreenActivity extends BaseActivity { PlatformUtils.getInstance(getApplicationContext()).getPlatform(); TagUtils.getInstance(getApplicationContext()).getTag(); } - + // 更新本地时间 DeviceTokenUtils.syncServerTime(this); - + DownloadManager.getInstance(this).initDownloadService(); }); } } - + @AfterPermissionGranted(REQUEST_PERMISSION_TAG) private void checkAndRequestPermission() { if (EasyPermissions.hasPermissions(this, mPermissions)) { @@ -260,25 +264,25 @@ public class SplashScreenActivity extends BaseActivity { ActivityCompat.requestPermissions(this, mPermissions, REQUEST_PERMISSION_TAG); } } - + @Override public void onPermissionsDenied(int requestCode, List perms) { if (EasyPermissions.somePermissionPermanentlyDenied(this, perms)) { // 设置"不要再询问",必须手动到系统设置授权 DialogUtils.showPermissionDialog(this, "权限申请", - "光环助手需要获取(存储空间权限)和(手机信息),以保证游戏的正常下载以及您的账号安全", "去设置", "放弃", - () -> { - Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS); - intent.setData(Uri.parse("package:" + getPackageName())); - startActivity(intent); - }, () -> logGrantedPermission(perms)); + "光环助手需要获取(存储空间权限)和(手机信息),以保证游戏的正常下载以及您的账号安全", "去设置", "放弃", + () -> { + Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS); + intent.setData(Uri.parse("package:" + getPackageName())); + startActivity(intent); + }, () -> logGrantedPermission(perms)); } else { DialogUtils.showPermissionDialog(this, "权限申请", - "在设置-应用-光环助手-权限中开启存储和手机信息权限,以保证能正常使用相关功能", "重试", "放弃", - this::checkAndRequestPermission, - () -> logGrantedPermission(perms)); + "在设置-应用-光环助手-权限中开启存储和手机信息权限,以保证能正常使用相关功能", "重试", "放弃", + this::checkAndRequestPermission, + () -> logGrantedPermission(perms)); } } - + private void logGrantedPermission(List perms) { if (perms.size() == 1) { MtaHelper.onEvent("授权情况", "启动授权", "只授权存储"); @@ -290,7 +294,7 @@ public class SplashScreenActivity extends BaseActivity { } } } - + // 检查下载文件夹下是否有旧版本的光环助手的包,有则删除 private void checkOldGhFile() { File folder = new File(FileUtils.getDownloadDir(this) + File.separator); @@ -307,23 +311,23 @@ public class SplashScreenActivity extends BaseActivity { Utils.log(file.getName() + " file delete success."); } } catch (Exception ignore) { - + } } } } } } - + private class GuidePagerAdapter extends PagerAdapter { - + private int[] mPics = {R.drawable.splash_01}; - + @Override public int getCount() { return mPics.length; } - + @NonNull @Override public Object instantiateItem(@NonNull ViewGroup container, int position) { @@ -337,16 +341,16 @@ public class SplashScreenActivity extends BaseActivity { container.addView(view); return view; } - + @Override public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) { container.removeView((View) object); } - + @Override public boolean isViewFromObject(@NonNull View view, @NonNull Object object) { return view == object; } - + } } diff --git a/app/src/main/java/com/gh/gamecenter/game/GameFragment.kt b/app/src/main/java/com/gh/gamecenter/game/GameFragment.kt index 1f4a472188..7b82fa2b46 100644 --- a/app/src/main/java/com/gh/gamecenter/game/GameFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/game/GameFragment.kt @@ -97,7 +97,11 @@ class GameFragment : NormalFragment() { if (it != null) mListAdapter?.setItemDataList(it as MutableList) }) mViewModel?.commandScrollTop?.observe(this, Observer { - mLayoutManager?.smoothScrollToPosition(mBinding?.gameList, null, 0) + if (mBlockData?.link == "5b335ad92924bc3543438cc5") { //单机板块直接定位到顶部 + mLayoutManager?.scrollToPosition(0) + } else { + mLayoutManager?.smoothScrollToPosition(mBinding?.gameList, null, 0) + } }) // 判断是否是第一次启动应用,不是的话不弹启动弹窗 diff --git a/app/src/main/java/com/gh/gamecenter/game/GameFragmentAdapter.kt b/app/src/main/java/com/gh/gamecenter/game/GameFragmentAdapter.kt index 0f252507d2..a32cc97ca7 100644 --- a/app/src/main/java/com/gh/gamecenter/game/GameFragmentAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/game/GameFragmentAdapter.kt @@ -24,7 +24,10 @@ import com.gh.common.exposure.ExposureType import com.gh.common.exposure.IExposable import com.gh.common.util.* import com.gh.common.view.DrawableView -import com.gh.gamecenter.* +import com.gh.gamecenter.BlockActivity +import com.gh.gamecenter.GameDetailActivity +import com.gh.gamecenter.MainActivity +import com.gh.gamecenter.R import com.gh.gamecenter.adapter.ImagePagerAdapter import com.gh.gamecenter.adapter.viewholder.* import com.gh.gamecenter.baselist.LoadStatus @@ -270,14 +273,16 @@ class GameFragmentAdapter(context: Context, model: GameViewModel, var blockName: binding.columnIcon.setOnClickListener(skipListener) binding.columnList.addOnScrollListener(object : RecyclerView.OnScrollListener() { - override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) { super.onScrolled(recyclerView, dx, dy) val offset = binding.columnList.computeHorizontalScrollOffset().toFloat().px2dip() - val index = if (offset > 80) 80 else offset + val index = if (offset > 70) 70 else if (offset < 5) 5 else offset val startColor = "#" + DrawableView.convertAlphaKey(index) + "000000" + val endColor = "#" + DrawableView.convertAlphaKey(70) + "000000" binding.columnBackground.background = DrawableView.getGradientDrawable( - binding.columnBackground.width, Color.parseColor(startColor), Color.BLACK) + binding.columnBackground.width, + Color.parseColor(startColor), + Color.parseColor(endColor)) } }) @@ -286,7 +291,7 @@ class GameFragmentAdapter(context: Context, model: GameViewModel, var blockName: binding.columnList.visibility = View.VISIBLE var slideAdapter = binding.columnList.adapter if (slideAdapter == null) { - slideAdapter = ImageSlideAdapter(mContext, entity!!,skipListener) + slideAdapter = ImageSlideAdapter(mContext, entity!!, skipListener) (binding.columnList.itemAnimator as DefaultItemAnimator).supportsChangeAnimations = false binding.columnList.layoutManager = LinearLayoutManager(mContext, RecyclerView.HORIZONTAL, false) binding.columnList.adapter = slideAdapter diff --git a/app/src/main/java/com/gh/gamecenter/packagehelper/PackageRepository.kt b/app/src/main/java/com/gh/gamecenter/packagehelper/PackageRepository.kt index eef06a3149..897b2b50c8 100644 --- a/app/src/main/java/com/gh/gamecenter/packagehelper/PackageRepository.kt +++ b/app/src/main/java/com/gh/gamecenter/packagehelper/PackageRepository.kt @@ -138,7 +138,7 @@ object PackageRepository { RetrofitManager.getInstance(mApplication).api.putInstalledApps(HaloApp.getInstance().gid, requestBody) .subscribeOn(Schedulers.io()) - .subscribe(object: BiResponse() { + .subscribe(object : BiResponse() { override fun onSuccess(data: ResponseBody) { SPUtils.setLong(LAST_UPLOAD_APPLIST_TIME, System.currentTimeMillis() / 1000) } diff --git a/app/src/main/java/com/gh/gamecenter/qa/editor/ArticleAdapter.kt b/app/src/main/java/com/gh/gamecenter/qa/editor/ArticleAdapter.kt index 51d92b7468..8d144eca6b 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/editor/ArticleAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/editor/ArticleAdapter.kt @@ -3,9 +3,9 @@ package com.gh.gamecenter.qa.editor import android.app.Activity import android.content.Context import android.content.Intent -import androidx.recyclerview.widget.RecyclerView import android.view.View import android.view.ViewGroup +import androidx.recyclerview.widget.RecyclerView import com.gh.common.constant.ItemViewType import com.gh.gamecenter.R import com.gh.gamecenter.adapter.viewholder.FooterViewHolder @@ -20,7 +20,7 @@ class ArticleAdapter(context: Context, private val mEntrance: String?) : ListAda return if (position == itemCount - 1) ItemViewType.ITEM_FOOTER else ItemViewType.ITEM_BODY } - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): androidx.recyclerview.widget.RecyclerView.ViewHolder { + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder { val view: View return when (viewType) { ItemViewType.ITEM_FOOTER -> { @@ -35,7 +35,7 @@ class ArticleAdapter(context: Context, private val mEntrance: String?) : ListAda } } - override fun onBindViewHolder(holder: androidx.recyclerview.widget.RecyclerView.ViewHolder, position: Int) { + override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) { when (getItemViewType(position)) { ItemViewType.ITEM_BODY -> { val articleHolder = holder as CollectionCommunityArticleViewHolder diff --git a/app/src/main/java/com/gh/gamecenter/video/upload/view/UploadVideoActivity.kt b/app/src/main/java/com/gh/gamecenter/video/upload/view/UploadVideoActivity.kt index 99de867368..06a259bec9 100644 --- a/app/src/main/java/com/gh/gamecenter/video/upload/view/UploadVideoActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/video/upload/view/UploadVideoActivity.kt @@ -17,7 +17,6 @@ import android.view.Gravity import android.view.MenuItem import android.view.View import android.view.ViewGroup -import android.webkit.MimeTypeMap import android.widget.CheckedTextView import android.widget.TextView import androidx.lifecycle.Observer diff --git a/app/src/main/java/com/gh/gamecenter/video/videomanager/VideoDraftAdapter.kt b/app/src/main/java/com/gh/gamecenter/video/videomanager/VideoDraftAdapter.kt index 301bdcb36e..abc5d28400 100644 --- a/app/src/main/java/com/gh/gamecenter/video/videomanager/VideoDraftAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/video/videomanager/VideoDraftAdapter.kt @@ -6,10 +6,7 @@ import android.view.View import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView import com.gh.common.constant.ItemViewType -import com.gh.common.util.DialogUtils -import com.gh.common.util.ImageUtils -import com.gh.common.util.MtaHelper -import com.gh.common.util.toColor +import com.gh.common.util.* import com.gh.gamecenter.R import com.gh.gamecenter.adapter.viewholder.FooterViewHolder import com.gh.gamecenter.baselist.ListAdapter @@ -59,9 +56,14 @@ class VideoDraftAdapter(context: Context, ImageUtils.display(holder.binding.videoCover, draftEntity.poster) holder.binding.videoStatus.setTextColor(R.color.text_2496FF.toColor()) holder.itemView.setOnClickListener { - MtaHelper.onEvent("上传视频", "视频投稿-草稿箱", "继续上传") - val intent = UploadVideoActivity.getIntent(mContext, draftEntity, mEntrance, mPath) - (mContext as Activity).startActivityForResult(intent, VideoManagerActivity.REQUEST_CODE_DRAFT) + PermissionHelper.checkReadPhoneStateAndStoragePermissionBeforeAction(mContext, + object : EmptyCallback { + override fun onCallback() { + MtaHelper.onEvent("上传视频", "视频投稿-草稿箱", "继续上传") + val intent = UploadVideoActivity.getIntent(mContext, draftEntity, mEntrance, mPath) + (mContext as Activity).startActivityForResult(intent, VideoManagerActivity.REQUEST_CODE_DRAFT) + } + }) } holder.itemView.setOnLongClickListener(View.OnLongClickListener { DialogUtils.showAlertDialog(mContext, "删除草稿", diff --git a/app/src/main/res/drawable-nodpi/splash_01.webp b/app/src/main/res/drawable-nodpi/splash_01.webp index 50416e99e6..797daddf32 100644 Binary files a/app/src/main/res/drawable-nodpi/splash_01.webp and b/app/src/main/res/drawable-nodpi/splash_01.webp differ diff --git a/app/src/main/res/drawable-nodpi/splash_background.png b/app/src/main/res/drawable-nodpi/splash_background.png new file mode 100644 index 0000000000..59d8a4b493 Binary files /dev/null and b/app/src/main/res/drawable-nodpi/splash_background.png differ diff --git a/app/src/main/res/drawable/game_image_slide_item_background.xml b/app/src/main/res/drawable/game_image_slide_item_background.xml index b7ff6e16af..9ed04c7e51 100644 --- a/app/src/main/res/drawable/game_image_slide_item_background.xml +++ b/app/src/main/res/drawable/game_image_slide_item_background.xml @@ -1,6 +1,8 @@ - + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_splash_intro.xml b/app/src/main/res/layout/activity_splash_intro.xml index f1fbffafa0..dd71493558 100644 --- a/app/src/main/res/layout/activity_splash_intro.xml +++ b/app/src/main/res/layout/activity_splash_intro.xml @@ -1,11 +1,19 @@ - + + android:id="@+id/splash_intro_vp_guide" + android:layout_width="match_parent" + android:layout_height="match_parent" /> - \ No newline at end of file + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_video_uplaod.xml b/app/src/main/res/layout/activity_video_uplaod.xml index ccba8713f8..5ec9c08411 100644 --- a/app/src/main/res/layout/activity_video_uplaod.xml +++ b/app/src/main/res/layout/activity_video_uplaod.xml @@ -12,12 +12,13 @@ + android:layout_height="0dp" + android:layout_weight="1" + android:background="@android:color/white"> + android:layout_height="wrap_content"> @@ -295,35 +296,44 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="16dp" + android:layout_marginBottom="20dp" android:lineSpacingExtra="5dp" android:paddingLeft="20dp" android:paddingRight="20dp" android:textColor="@color/text_999999" android:textSize="12dp" + app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toBottomOf="@id/game_tag_line" tools:text="@string/upload_protocol" /> - - + + + + + + + + diff --git a/app/src/main/res/layout/collection_comunity_article_item.xml b/app/src/main/res/layout/collection_comunity_article_item.xml index 96e25436de..2b1c88ace4 100644 --- a/app/src/main/res/layout/collection_comunity_article_item.xml +++ b/app/src/main/res/layout/collection_comunity_article_item.xml @@ -1,138 +1,169 @@ - + - + + + - - + name="data" + type="com.gh.gamecenter.qa.entity.ArticleEntity" /> + + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:background="@drawable/reuse_listview_item_style" + android:paddingLeft="20dp" + android:paddingTop="5dp" + android:paddingRight="20dp" + android:paddingBottom="10dp"> + android:id="@+id/title" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="5dp" + android:ellipsize="end" + android:maxLines="2" + android:text="@{data.title}" + android:textColor="@color/black" + android:textSize="16sp" + android:textStyle="bold" + app:layout_constraintTop_toTopOf="parent" /> + android:id="@+id/user_icon_container" + android:layout_width="22dp" + android:layout_height="22dp" + android:layout_marginTop="7dp" + app:layout_constraintLeft_toLeftOf="@id/title" + app:layout_constraintTop_toBottomOf="@id/title"> + android:id="@+id/user_icon" + style="@style/frescoCircleStyle" + imageIcon="@{data.user.icon}" + android:layout_width="20dp" + android:layout_height="20dp" + fresco:roundAsCircle="true" /> + android:id="@+id/user_badge" + imageIcon="@{data.user.auth.icon}" + visibleGone="@{data.user.auth != null}" + android:layout_width="10dp" + android:layout_height="10dp" + android:layout_alignParentRight="true" + android:layout_alignParentBottom="true" /> - + + android:id="@+id/user_name" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginLeft="10dp" + android:layout_marginBottom="2dp" + android:maxLength="10" + android:text="@{data.user.name}" + android:textColor="@color/title" + android:textSize="14sp" + app:layout_constraintBottom_toBottomOf="@id/user_icon_container" + app:layout_constraintLeft_toRightOf="@id/user_icon_container" + app:layout_constraintTop_toTopOf="@id/user_icon_container" /> + android:id="@+id/content" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="7dp" + android:ellipsize="end" + android:maxLines="3" + android:text="@{data.brief}" + android:textColor="@color/title" + android:textSize="14sp" + app:layout_constraintTop_toBottomOf="@id/user_icon_container" /> + android:id="@+id/image" + style="@style/frescoStyle" + imageUrl="@{data.images.size()>0?data.images.get(0):``}" + visibleGone="@{data.images.size()>0}" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="8dp" + app:layout_constraintTop_toBottomOf="@id/content" + app:roundedCornerRadius="4.5dp" + app:viewAspectRatio="2.3" /> + + + android:id="@+id/video_duration" + setCommunityVideoDuration="@{data.videos}" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginRight="8dp" + android:layout_marginBottom="8dp" + android:includeFontPadding="false" + android:paddingLeft="6dp" + android:paddingTop="3dp" + android:paddingRight="6dp" + android:paddingBottom="3dp" + android:textColor="@color/white" + android:textSize="12sp" + app:layout_constraintBottom_toBottomOf="@id/image" + app:layout_constraintRight_toRightOf="@id/image" /> + android:id="@+id/vote_count" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginTop="10dp" + android:text="@{data.count.vote + ` 赞同`}" + android:textColor="@color/hint" + android:textSize="11sp" + app:layout_constraintLeft_toLeftOf="parent" + app:layout_constraintTop_toBottomOf="@id/image" /> + android:id="@+id/comment_count" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginLeft="10dp" + android:layout_marginTop="10dp" + android:text="@{data.count.comment + ` 评论`}" + android:textColor="@color/hint" + android:textSize="11sp" + android:visibility="gone" + app:layout_constraintLeft_toRightOf="@id/vote_count" + app:layout_constraintTop_toBottomOf="@id/image" /> - - + + + + diff --git a/app/src/main/res/layout/community_article_item.xml b/app/src/main/res/layout/community_article_item.xml index 4db9e40a39..7aa859a0eb 100644 --- a/app/src/main/res/layout/community_article_item.xml +++ b/app/src/main/res/layout/community_article_item.xml @@ -55,6 +55,7 @@ android:layout_height="wrap_content" android:layout_marginTop="8dp" app:layout_constraintTop_toBottomOf="@id/article_item_content" + app:roundedCornerRadius="4.5dp" app:viewAspectRatio="2.3" /> + + diff --git a/app/src/main/res/layout/splash_guide_item.xml b/app/src/main/res/layout/splash_guide_item.xml index 584bb2ef28..7aea112333 100644 --- a/app/src/main/res/layout/splash_guide_item.xml +++ b/app/src/main/res/layout/splash_guide_item.xml @@ -8,7 +8,7 @@ android:id="@+id/splsh_guide_iv_image" android:layout_width="match_parent" android:layout_height="match_parent" - android:scaleType="fitXY" /> + android:scaleType="centerCrop" />