diff --git a/app/app.iml b/app/app.iml new file mode 100644 index 0000000..76680f4 --- /dev/null +++ b/app/app.iml @@ -0,0 +1,217 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 1dc7ce3..ecfe2d9 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,4 +1,6 @@ apply plugin: 'com.android.application' +apply plugin: 'kotlin-android-extensions' +apply plugin: 'kotlin-android' def appName() { return "UIUIAPPStore" @@ -15,8 +17,8 @@ android { applicationId "com.appstore.uiui" minSdkVersion 23 targetSdkVersion 29 - versionCode 1 - versionName "1.0.0" + versionCode 10 + versionName "1.1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" //极光 ndk { @@ -143,4 +145,12 @@ dependencies { implementation 'cn.jiguang.sdk:jpush:3.4.1' // 此处以JPush 3.4.1 版本为例。 implementation 'cn.jiguang.sdk:jcore:2.2.4' // 此处以JCore 2.2.4 版本为例。 + implementation 'com.zhpan.library:bannerview:2.6.4' + compile "androidx.core:core-ktx:+" + implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" + + +} +repositories { + mavenCentral() } diff --git a/app/src/main/java/com/appstore/uiui/activity/DetailsActivity.java b/app/src/main/java/com/appstore/uiui/activity/DetailsActivity.java index 8445f9d..84e2f5c 100644 --- a/app/src/main/java/com/appstore/uiui/activity/DetailsActivity.java +++ b/app/src/main/java/com/appstore/uiui/activity/DetailsActivity.java @@ -1,6 +1,7 @@ package com.appstore.uiui.activity; import android.view.View; +import android.widget.Button; import android.widget.ImageView; import android.widget.RatingBar; import android.widget.TextView; @@ -26,7 +27,8 @@ import java.util.ArrayList; import java.util.List; public class DetailsActivity extends BaseActivity { - private TextView tv_title, tv_name, tv_company, tv_update_time, tv_version, tv_content, tv_download; + private TextView tv_title, tv_name, tv_company, tv_update_time, tv_version, tv_content, detali_tv_size, detail_tv_Developers; + private Button tv_download; private RatingBar rating_bar; private ImageView iv_icon; private RecyclerView rv_image; @@ -40,7 +42,7 @@ public class DetailsActivity extends BaseActivity { @Override protected void initView() { - tv_title = findViewById(R.id.detail_tv_title); +// tv_title = findViewById(R.id.detail_tv_title); tv_name = findViewById(R.id.detail_tv_name); tv_company = findViewById(R.id.detail_tv_company); tv_update_time = findViewById(R.id.detail_tv_update_time); @@ -50,6 +52,9 @@ public class DetailsActivity extends BaseActivity { rating_bar = findViewById(R.id.detail_rating_bar); iv_icon = findViewById(R.id.detail_iv_icon); rv_image = findViewById(R.id.detail_rv_image); + detali_tv_size = findViewById(R.id.detali_tv_size); + detail_tv_Developers = findViewById(R.id.detail_tv_Developers); + } @Override @@ -59,11 +64,13 @@ public class DetailsActivity extends BaseActivity { ToastUtil.show("获取引用信息失败,返回重试"); return; } - tv_title.setText(appInfo.getApp_name()); +// tv_title.setText(appInfo.getApp_name()); tv_name.setText(appInfo.getApp_name()); tv_company.setText(appInfo.getApp_developer()); - tv_update_time.setText("更新时间:" + appInfo.getCreatetime()); - tv_version.setText("最新版本:" + appInfo.getApp_version_name()); + detali_tv_size.setText("大小\t" + appInfo.getApp_size() + "MB"); + detail_tv_Developers.setText("供应商\t" + appInfo.getApp_developer()); + tv_update_time.setText("时间\t" + appInfo.getCreatetime()); + tv_version.setText("版本\t" + appInfo.getApp_version_name()); tv_content.setText(appInfo.getApp_desc()); rating_bar.setRating((float) appInfo.getApp_score()); Glide.with(this).asBitmap().load(appInfo.getApp_img()).into(iv_icon); diff --git a/app/src/main/java/com/appstore/uiui/activity/DownloadManagerActivity.java b/app/src/main/java/com/appstore/uiui/activity/DownloadManagerActivity.java index 0702afb..60b5a6d 100644 --- a/app/src/main/java/com/appstore/uiui/activity/DownloadManagerActivity.java +++ b/app/src/main/java/com/appstore/uiui/activity/DownloadManagerActivity.java @@ -4,6 +4,7 @@ import android.os.Handler; import android.os.Message; import android.view.View; import android.widget.Adapter; +import android.widget.ImageView; import androidx.annotation.NonNull; import androidx.recyclerview.widget.LinearLayoutManager; @@ -27,7 +28,7 @@ public class DownloadManagerActivity extends BaseActivity implements XExecutor.O private RecyclerView recyclerView; private DownloadManagerAdapter adapter; private OkDownload okDownload; - + private ImageView iv_notask; @Override protected int setLayoutResourceID() { return R.layout.activity_download_manager; @@ -36,6 +37,8 @@ public class DownloadManagerActivity extends BaseActivity implements XExecutor.O @Override protected void initView() { recyclerView = findViewById(R.id.recyclerView); + iv_notask=findViewById(R.id.iv_notask); + } @Override @@ -45,6 +48,13 @@ public class DownloadManagerActivity extends BaseActivity implements XExecutor.O adapter.updateData(DownloadManagerAdapter.TYPE_ING); recyclerView.setLayoutManager(new LinearLayoutManager(this)); recyclerView.setAdapter(adapter); + if (adapter.getItemCount() == 0) { + iv_notask.setVisibility(View.VISIBLE); + recyclerView.setVisibility(View.GONE); + } else { + iv_notask.setVisibility(View.GONE); + recyclerView.setVisibility(View.VISIBLE); + } okDownload.addOnAllTaskEndListener(this); } @@ -85,6 +95,13 @@ public class DownloadManagerActivity extends BaseActivity implements XExecutor.O if (msg.what == 100) { adapter.updateData(DownloadManagerAdapter.TYPE_ING); adapter.notifyDataSetChanged(); + if (adapter.getItemCount() == 0) { + iv_notask.setVisibility(View.VISIBLE); + recyclerView.setVisibility(View.GONE); + } else { + iv_notask.setVisibility(View.GONE); + recyclerView.setVisibility(View.VISIBLE); + } } } }; diff --git a/app/src/main/java/com/appstore/uiui/activity/LocalManagerActivity.java b/app/src/main/java/com/appstore/uiui/activity/LocalManagerActivity.java index 7daa4c7..bb1bed7 100644 --- a/app/src/main/java/com/appstore/uiui/activity/LocalManagerActivity.java +++ b/app/src/main/java/com/appstore/uiui/activity/LocalManagerActivity.java @@ -12,6 +12,7 @@ import android.content.pm.ResolveInfo; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.view.View; +import android.widget.ImageView; import com.appstore.uiui.R; import com.appstore.uiui.adapter.LocalAppAdapter; @@ -22,14 +23,16 @@ import com.scwang.smartrefresh.layout.SmartRefreshLayout; import com.scwang.smartrefresh.layout.api.RefreshLayout; import com.scwang.smartrefresh.layout.listener.OnRefreshListener; +import java.io.File; import java.util.ArrayList; import java.util.List; public class LocalManagerActivity extends BaseActivity implements RefreshManager.RefreshInterface { private RecyclerView mRvApp; private SmartRefreshLayout mRefreshLayout; - private List localAppList; + private List localAppList = new ArrayList<>(); private LocalAppAdapter adapter; + private ImageView iv_nodata; @Override protected int setLayoutResourceID() { @@ -39,9 +42,9 @@ public class LocalManagerActivity extends BaseActivity implements RefreshManager @Override protected void initView() { mRvApp = findViewById(R.id.local_app_rv_app); + iv_nodata = findViewById(R.id.iv_nodata); mRefreshLayout = findViewById(R.id.local_app_refresh_layout); RefreshManager.getInstance().register(this); - localAppList = new ArrayList<>(); mRefreshLayout.setEnableLoadMore(false); mRefreshLayout.setEnableRefresh(true); @@ -82,7 +85,7 @@ public class LocalManagerActivity extends BaseActivity implements RefreshManager LocalApp bean = new LocalApp(); bean.setAppName(resolveInfoList.get(i).loadLabel(getApplicationContext().getPackageManager()).toString()); String packageName = resolveInfoList.get(i).activityInfo.packageName; - if (packageName.equals(getApplicationContext().getPackageName())||packageName.equals("com.android.uiuios")){ + if (packageName.equals(getApplicationContext().getPackageName()) || packageName.equals("com.android.uiuios")) { continue; } bean.setPackageName(packageName); @@ -94,7 +97,9 @@ public class LocalManagerActivity extends BaseActivity implements RefreshManager String versionCode = getApplicationContext().getPackageManager() .getPackageInfo(packageName, 0).versionName; bean.setVersion(versionCode); - + String appInstallDir = packageInfo.applicationInfo.publicSourceDir; + int size = Integer.valueOf((int) new File(appInstallDir).length()); + bean.setSize(size); if ((packageInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) <= 0) { //第三方应用 localAppList.add(bean); @@ -110,7 +115,13 @@ public class LocalManagerActivity extends BaseActivity implements RefreshManager } adapter.notifyDataSetChanged(); mRefreshLayout.finishRefresh(); - + if (localAppList.size() == 0) { + mRvApp.setVisibility(View.GONE); + iv_nodata.setVisibility(View.VISIBLE); + } else { + mRvApp.setVisibility(View.VISIBLE); + iv_nodata.setVisibility(View.GONE); + } } @Override diff --git a/app/src/main/java/com/appstore/uiui/adapter/AppAdapter.java b/app/src/main/java/com/appstore/uiui/adapter/AppAdapter.java index bf5c0f0..0101cb3 100644 --- a/app/src/main/java/com/appstore/uiui/adapter/AppAdapter.java +++ b/app/src/main/java/com/appstore/uiui/adapter/AppAdapter.java @@ -102,16 +102,16 @@ public class AppAdapter extends RecyclerView.Adapter { if (appInfo.isInstall()) { if (appInfo.isUpdate()) { holder.btnDownLoad.setText("更新"); - holder.btnDownLoad.setTextColor(mContext.getColor(R.color.green)); + holder.btnDownLoad.setTextColor(mContext.getColor(R.color.install)); holder.btnDownLoad.setBackground(mContext.getDrawable(R.drawable.btn_style_none)); } else { holder.btnDownLoad.setText("打开"); - holder.btnDownLoad.setTextColor(mContext.getColor(R.color.black)); + holder.btnDownLoad.setTextColor(mContext.getColor(R.color.white)); holder.btnDownLoad.setBackground(mContext.getDrawable(R.drawable.btn_style_open)); } } else { - holder.btnDownLoad.setText("下载"); - holder.btnDownLoad.setTextColor(mContext.getColor(R.color.green)); + holder.btnDownLoad.setText("安装"); + holder.btnDownLoad.setTextColor(mContext.getColor(R.color.install)); holder.btnDownLoad.setBackground(mContext.getDrawable(R.drawable.btn_style_none)); if (downloadTask != null) { holder.refresh(downloadTask.progress); @@ -180,7 +180,7 @@ public class AppAdapter extends RecyclerView.Adapter { void refresh(Progress progress) { switch (progress.status) { case Progress.NONE: - btnDownLoad.setText("下载"); + btnDownLoad.setText("安装"); break; case Progress.PAUSE: btnDownLoad.setText("继续"); diff --git a/app/src/main/java/com/appstore/uiui/adapter/BannerViewHolder.java b/app/src/main/java/com/appstore/uiui/adapter/BannerViewHolder.java new file mode 100644 index 0000000..38e89c2 --- /dev/null +++ b/app/src/main/java/com/appstore/uiui/adapter/BannerViewHolder.java @@ -0,0 +1,22 @@ +package com.appstore.uiui.adapter; + +import android.view.View; + +import com.appstore.uiui.R; +import com.appstore.uiui.view.CornerImageView; +import com.bumptech.glide.Glide; +import com.zhpan.bannerview.holder.ViewHolder; + +public class BannerViewHolder implements ViewHolder { + @Override + public int getLayoutId() { + return R.layout.item_net; + } + + @Override + public void onBind(View itemView, String path, int position, int size) { + CornerImageView imageView = itemView.findViewById(R.id.banner_image); + imageView.setRoundCorner(imageView.getContext().getResources().getDimensionPixelOffset(R.dimen.dp_5)); + Glide.with(imageView).load(path).into(imageView); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/appstore/uiui/adapter/LocalAppAdapter.java b/app/src/main/java/com/appstore/uiui/adapter/LocalAppAdapter.java index cf6c380..fc8eece 100644 --- a/app/src/main/java/com/appstore/uiui/adapter/LocalAppAdapter.java +++ b/app/src/main/java/com/appstore/uiui/adapter/LocalAppAdapter.java @@ -4,6 +4,7 @@ import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.net.Uri; +import android.text.format.Formatter; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -59,7 +60,8 @@ public class LocalAppAdapter extends RecyclerView.Adapter= Build.VERSION_CODES.LOLLIPOP) { + activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); +// activity.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); + //需要设置这个flag contentView才能延伸到状态栏 +// activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION); + //状态栏覆盖在contentView上面,设置透明使contentView的背景透出来 + activity.getWindow().setStatusBarColor(Color.TRANSPARENT); + } else { + //让contentView延伸到状态栏并且设置状态栏颜色透明 + activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); + } + } + + /** + * 设置根布局参数 + */ + private static void setRootView(Activity activity) { + ViewGroup parent = (ViewGroup) activity.findViewById(android.R.id.content); + for (int i = 0, count = parent.getChildCount(); i < count; i++) { + View childView = parent.getChildAt(i); + if (childView instanceof ViewGroup) { + childView.setFitsSystemWindows(true); + ((ViewGroup) childView).setClipToPadding(true); + } + } + } + public static void initViewFull(final Activity activity) { activity.getWindow().getDecorView().setOnSystemUiVisibilityChangeListener(new View.OnSystemUiVisibilityChangeListener() { @Override @@ -64,7 +123,7 @@ public abstract class BaseActivity extends AppCompatActivity { }.start(); } }); - //设置无标题 + //设置无标题 activity.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); activity.getWindow().getDecorView().setSystemUiVisibility( diff --git a/app/src/main/java/com/appstore/uiui/bean/LocalApp.java b/app/src/main/java/com/appstore/uiui/bean/LocalApp.java index 666f668..ac908ee 100644 --- a/app/src/main/java/com/appstore/uiui/bean/LocalApp.java +++ b/app/src/main/java/com/appstore/uiui/bean/LocalApp.java @@ -11,7 +11,7 @@ public class LocalApp { String appName;//名字 Drawable icon;//图片 String company;//公司 - String size;//软件的大小 + int size;//软件的大小 String version;//软件的版本号 String packageName;//软件的包名 int versionCode; @@ -53,11 +53,11 @@ public class LocalApp { this.company = company; } - public String getSize() { + public int getSize() { return size; } - public void setSize(String size) { + public void setSize(int size) { this.size = size; } diff --git a/app/src/main/java/com/appstore/uiui/bean/bannerImage.java b/app/src/main/java/com/appstore/uiui/bean/bannerImage.java new file mode 100644 index 0000000..0844e5a --- /dev/null +++ b/app/src/main/java/com/appstore/uiui/bean/bannerImage.java @@ -0,0 +1,44 @@ +package com.appstore.uiui.bean; + +import java.io.Serializable; + +public class bannerImage implements Serializable { + String title; + String id; + String desc; + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getDesc() { + return desc; + } + + public void setDesc(String desc) { + this.desc = desc; + } + + public String getImg() { + return img; + } + + public void setImg(String img) { + this.img = img; + } + + String img; + +} diff --git a/app/src/main/java/com/appstore/uiui/fragment/FeaturedFragment.java b/app/src/main/java/com/appstore/uiui/fragment/FeaturedFragment.java index 0b73630..0b8fcab 100644 --- a/app/src/main/java/com/appstore/uiui/fragment/FeaturedFragment.java +++ b/app/src/main/java/com/appstore/uiui/fragment/FeaturedFragment.java @@ -17,6 +17,7 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.appstore.uiui.R; import com.appstore.uiui.adapter.AppAdapter; +import com.appstore.uiui.adapter.BannerViewHolder; import com.appstore.uiui.base.LazyLoadFragment; import com.appstore.uiui.base.RefreshManager; import com.appstore.uiui.bean.AppInfo; @@ -26,12 +27,18 @@ import com.appstore.uiui.network.URLs.Url; import com.appstore.uiui.utils.ApkUtils; import com.appstore.uiui.utils.LogUtils; import com.appstore.uiui.utils.ToastUtil; +import com.blankj.utilcode.util.ToastUtils; import com.lzy.okgo.OkGo; import com.lzy.okgo.callback.StringCallback; import com.lzy.okgo.model.Response; import com.scwang.smartrefresh.layout.SmartRefreshLayout; import com.scwang.smartrefresh.layout.api.RefreshLayout; import com.scwang.smartrefresh.layout.listener.OnRefreshListener; +import com.zhpan.bannerview.BannerViewPager; +import com.zhpan.bannerview.constants.IndicatorSlideMode; +import com.zhpan.bannerview.constants.PageStyle; +import com.zhpan.bannerview.holder.HolderCreator; +import com.zhpan.bannerview.utils.BannerUtils; import java.util.ArrayList; import java.util.List; @@ -45,9 +52,10 @@ import java.util.List; public class FeaturedFragment extends LazyLoadFragment implements RefreshManager.RefreshInterface { private RecyclerView mRvResult; private SmartRefreshLayout mRefreshLayout; + private BannerViewPager mViewPager; private List appInfoList;// - private List newAppInfoList=new ArrayList<>(); + private List newAppInfoList = new ArrayList<>(); private AppAdapter adapter; private boolean isNotLoadBitmap; @@ -92,7 +100,23 @@ public class FeaturedFragment extends LazyLoadFragment implements RefreshManager mRvResult = view.findViewById(R.id.featured_rv_result); mRefreshLayout = view.findViewById(R.id.featured_refresh_layout); RefreshManager.getInstance().register(this); - + mViewPager = view.findViewById(R.id.banner_view); + mViewPager + .setIndicatorSlideMode(IndicatorSlideMode.SMOOTH) + .setHolderCreator(new HolderCreator() { + @Override + public BannerViewHolder createViewHolder() { + return new BannerViewHolder(); + } + }) + .setIndicatorColor(getResources().getColor(R.color.colorAccent), getResources().getColor(R.color.colorAccent)) + .setOnPageClickListener(new BannerViewPager.OnPageClickListener() { + @Override + public void onPageClick(int position) { + ToastUtils.showShort("position:" + position); + } + }) + .setInterval(5000); isNotLoadBitmap = false; @@ -121,6 +145,7 @@ public class FeaturedFragment extends LazyLoadFragment implements RefreshManager synchronized private void initAPPData(final Handler handler) { OKGOPost.getAllAppInfo(handler); + OKGOPost.getBannerImg(handler); } @@ -144,7 +169,28 @@ public class FeaturedFragment extends LazyLoadFragment implements RefreshManager adapter.setData(checkUpdateOrInstalled(newAppInfoList)); adapter.notifyDataSetChanged(); break; - + case 200: + List list = (List) msg.obj; + mViewPager + .setPageMargin(getResources().getDimensionPixelOffset(R.dimen.dp_5)) + .setRevealWidth(BannerUtils.dp2px(0)) + .setPageStyle(PageStyle.MULTI_PAGE) + .setHolderCreator(new HolderCreator() { + @Override + public BannerViewHolder createViewHolder() { + return new BannerViewHolder(); + } + }) + .setIndicatorColor(getResources().getColor(R.color.colorAccent), getResources().getColor(R.color.colorAccent)) + .setOnPageClickListener(new BannerViewPager.OnPageClickListener() { + @Override + public void onPageClick(int position) { + ToastUtils.showShort("position:" + position); + } + }) + .setInterval(5000) + .create(list); + break; } mRefreshLayout.finishRefresh(); diff --git a/app/src/main/java/com/appstore/uiui/fragment/ManageFragment.java b/app/src/main/java/com/appstore/uiui/fragment/ManageFragment.java index c6473dd..01c93ea 100644 --- a/app/src/main/java/com/appstore/uiui/fragment/ManageFragment.java +++ b/app/src/main/java/com/appstore/uiui/fragment/ManageFragment.java @@ -10,6 +10,7 @@ import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.view.View; +import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; @@ -17,7 +18,9 @@ import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import com.appstore.uiui.R; +import com.appstore.uiui.activity.DownloadManagerActivity; import com.appstore.uiui.activity.LocalManagerActivity; +import com.appstore.uiui.activity.MainActivity; import com.appstore.uiui.adapter.LocalAppAdapter; import com.appstore.uiui.adapter.UpdateAppAdapter; import com.appstore.uiui.base.LazyLoadFragment; @@ -40,13 +43,14 @@ import java.util.List; public class ManageFragment extends LazyLoadFragment { private RecyclerView mRvLocal; + private ImageView iv_nodata; private TextView manage_tv_updateNum; private List localAppList; private List updateAppInfoList; private List applist; private List packageNameList = new ArrayList<>(); private UpdateAppAdapter adapter; - private LinearLayout manage_ll_localapp; + private LinearLayout manage_ll_localapp, manage_ll_downlaod; @Override public int getLayoutId() { @@ -63,6 +67,15 @@ public class ManageFragment extends LazyLoadFragment { startActivity(new Intent(getActivity(), LocalManagerActivity.class)); } }); + manage_ll_downlaod = view.findViewById(R.id.manage_ll_downlaod); + manage_ll_downlaod.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + startActivity(new Intent(getActivity(), DownloadManagerActivity.class)); + + } + }); + iv_nodata = view.findViewById(R.id.iv_nodata); mRvLocal = view.findViewById(R.id.manage_rv_local); updateAppInfoList = new ArrayList<>(); adapter = new UpdateAppAdapter(updateAppInfoList, getContext()); @@ -162,6 +175,13 @@ public class ManageFragment extends LazyLoadFragment { updateDta(applist); updateNum = updateAppInfoList.size(); manage_tv_updateNum.setText(updateNum + ""); + if (updateNum == 0) { + iv_nodata.setVisibility(View.VISIBLE); + mRvLocal.setVisibility(View.GONE); + } else { + iv_nodata.setVisibility(View.GONE); + mRvLocal.setVisibility(View.VISIBLE); + } adapter.notifyDataSetChanged(); break; } diff --git a/app/src/main/java/com/appstore/uiui/network/OKGOPost.java b/app/src/main/java/com/appstore/uiui/network/OKGOPost.java index b76448d..b87887d 100644 --- a/app/src/main/java/com/appstore/uiui/network/OKGOPost.java +++ b/app/src/main/java/com/appstore/uiui/network/OKGOPost.java @@ -1,6 +1,7 @@ package com.appstore.uiui.network; import android.content.Context; +import android.media.Image; import android.os.Handler; import android.os.Message; import android.util.Log; @@ -8,10 +9,12 @@ import android.util.Log; import androidx.annotation.NonNull; import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.appstore.uiui.TextCode.MessageWhat; import com.appstore.uiui.base.UserInfo; import com.appstore.uiui.bean.AppInfo; +import com.appstore.uiui.bean.bannerImage; import com.appstore.uiui.network.URLs.Url; import com.appstore.uiui.utils.LogUtils; import com.appstore.uiui.utils.SPUtils; @@ -21,6 +24,7 @@ import com.lzy.okgo.OkGo; import com.lzy.okgo.callback.StringCallback; import com.lzy.okgo.model.Response; +import java.util.ArrayList; import java.util.List; @@ -353,6 +357,43 @@ public class OKGOPost { }); } + public static void getBannerImg(final Handler handler) { + OkGo.get(Url.GET_BANNER_IMG).execute(new StringCallback() { + @Override + public void onSuccess(Response response) { + try { + JSONObject body = JSON.parseObject(response.body()); + int code = body.getInteger("code"); + String msg = body.getString("msg"); + if (code == 200) { + Message message = new Message(); + List data = JSON.parseArray(body.getString("data"), bannerImage.class); + if (data != null) { + List urlList = new ArrayList<>(); + for (int i = 0; i < data.size(); i++) { + urlList.add(data.get(0).getImg()); + } + message.what = 200; + message.obj = urlList; + } else { + message.what = -200; + } + handler.sendMessage(message); + } else { + Log.e("checkUpdateByPackage", msg); + } + } catch (Exception e) { + Log.e("checkUpdateByPackage", e.getMessage()); + } + } + + @Override + public void onError(Response response) { + super.onError(response); + } + }); + + } } diff --git a/app/src/main/java/com/appstore/uiui/network/URLs/Url.java b/app/src/main/java/com/appstore/uiui/network/URLs/Url.java index 3657c35..3353667 100644 --- a/app/src/main/java/com/appstore/uiui/network/URLs/Url.java +++ b/app/src/main/java/com/appstore/uiui/network/URLs/Url.java @@ -19,4 +19,6 @@ public class Url { //发送app卸载信息 public final static String GET_APP_UPDATE = NETWORK_HOME_ADDRESS + "/Update/update"; //根据包名获取更新 + public final static String GET_BANNER_IMG = NETWORK_HOME_ADDRESS + "/Slideshow/getImg"; + } diff --git a/app/src/main/java/com/appstore/uiui/view/CornerImageView.kt b/app/src/main/java/com/appstore/uiui/view/CornerImageView.kt new file mode 100644 index 0000000..9e32d7a --- /dev/null +++ b/app/src/main/java/com/appstore/uiui/view/CornerImageView.kt @@ -0,0 +1,19 @@ +package com.appstore.uiui.view + +import android.content.Context +import android.os.Build +import android.util.AttributeSet +import androidx.appcompat.widget.AppCompatImageView + + +import com.zhpan.bannerview.provider.ViewStyleSetter + +class CornerImageView @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0) : AppCompatImageView(context, attrs, defStyleAttr) { + + fun setRoundCorner(radius: Int) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { + val viewStyleSetter = ViewStyleSetter(this) + viewStyleSetter.setRoundRect(radius.toFloat()) + } + } +} diff --git a/app/src/main/res/drawable/btn_style_delete.xml b/app/src/main/res/drawable/btn_style_delete.xml new file mode 100644 index 0000000..597712d --- /dev/null +++ b/app/src/main/res/drawable/btn_style_delete.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/btn_style_none.xml b/app/src/main/res/drawable/btn_style_none.xml index cdfdf43..e92115b 100644 --- a/app/src/main/res/drawable/btn_style_none.xml +++ b/app/src/main/res/drawable/btn_style_none.xml @@ -3,7 +3,7 @@ - + @@ -15,14 +15,14 @@ android:right="1dp" android:top="1dp"> - + + + + + + + + - + @@ -15,14 +15,14 @@ android:right="1dp" android:top="1dp"> - + + + + + + + + - + \ No newline at end of file diff --git a/app/src/main/res/drawable/shap_search_left.xml b/app/src/main/res/drawable/shap_search_left.xml index 3ce0dc8..63512b3 100644 --- a/app/src/main/res/drawable/shap_search_left.xml +++ b/app/src/main/res/drawable/shap_search_left.xml @@ -1,7 +1,7 @@ - + + android:color="#d4d0d0" /> @@ -29,9 +29,9 @@ android:layout_marginLeft="10dp" android:gravity="center_vertical" android:singleLine="true" - android:text="应用" + android:text="应用详情" android:textColor="#8c8b8b" - android:textSize="17sp" + android:textSize="@dimen/sp_15" android:textStyle="bold" /> @@ -80,7 +80,8 @@ android:singleLine="true" android:text="今日头条" android:textColor="@color/black" - android:textSize="15sp" /> + android:textSize="@dimen/sp_11" + /> + android:text="应用介绍" + android:textSize="@dimen/sp_11" + android:textStyle="bold"> @@ -124,25 +127,79 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="@dimen/dp_15" - android:layout_marginTop="@dimen/dp_15" + android:layout_marginTop="@dimen/dp_2" android:layout_marginRight="@dimen/dp_15"> + android:layout_marginLeft="@dimen/dp_15" + android:layout_marginRight="@dimen/dp_15" + android:layout_marginTop="@dimen/dp_2" + android:text="更新" + android:textSize="@dimen/sp_11" + android:textStyle="bold"> + + + + + + + + + + + + + android:layout_marginLeft="@dimen/dp_15" + android:layout_marginRight="@dimen/dp_15" + android:text="版本" /> + + + + @@ -151,27 +208,26 @@ - - - + + diff --git a/app/src/main/res/layout/activity_download_manager.xml b/app/src/main/res/layout/activity_download_manager.xml index 26bedbb..571451e 100644 --- a/app/src/main/res/layout/activity_download_manager.xml +++ b/app/src/main/res/layout/activity_download_manager.xml @@ -36,14 +36,32 @@ - + android:layout_height="match_parent"> + + + + + + + + + - \ No newline at end of file diff --git a/app/src/main/res/layout/activity_local_manager.xml b/app/src/main/res/layout/activity_local_manager.xml index 7c6be19..fd9e54f 100644 --- a/app/src/main/res/layout/activity_local_manager.xml +++ b/app/src/main/res/layout/activity_local_manager.xml @@ -10,8 +10,8 @@ android:id="@+id/linearLayout2" android:layout_width="match_parent" android:layout_height="50dp" - android:orientation="horizontal" android:layout_marginLeft="20dp" + android:orientation="horizontal" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="parent"> @@ -19,9 +19,9 @@ android:id="@+id/search_iv_back" android:layout_width="20dp" android:layout_height="20dp" - android:onClick="finish" android:layout_gravity="center_vertical" android:adjustViewBounds="true" + android:onClick="finish" android:scaleType="centerInside" android:src="@drawable/ic_back" /> @@ -38,6 +38,7 @@ + - + android:layout_height="match_parent"> + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 06f2786..0df8249 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -55,10 +55,10 @@ android:src="@drawable/shap_search_left" /> @@ -68,7 +68,7 @@ android:background="@drawable/shap_search_right" android:gravity="center_vertical" android:text="@string/search_edit" - android:textColor="#c1bfbf"> + android:textColor="#ffffff"> @@ -82,6 +82,7 @@ android:layout_height="30dp" android:layout_gravity="center_vertical" android:layout_marginRight="20dp" + android:visibility="gone" android:src="@drawable/ic_action_bar"> @@ -96,7 +97,7 @@ app:tl_indicator_style="TRIANGLE" app:tl_tab_space_equal="true" app:tl_textBold="SELECT" - app:tl_textSelectColor="#000000" + app:tl_textSelectColor="#f09818" app:tl_textUnselectColor="#8c8b8b" /> - + android:layout_height="match_parent" + android:orientation="vertical"> + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_manage.xml b/app/src/main/res/layout/fragment_manage.xml index ec5c9b6..005fff8 100644 --- a/app/src/main/res/layout/fragment_manage.xml +++ b/app/src/main/res/layout/fragment_manage.xml @@ -28,6 +28,29 @@ android:background="@drawable/ic_kind_detail" /> + + + + + + @@ -42,9 +65,9 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" - android:text="可升级应用" - android:textSize="10sp" /> + android:textColor="@color/black" + android:textSize="16sp" /> + android:textSize="16sp" /> - + android:layout_height="match_parent"> + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/item_app.xml b/app/src/main/res/layout/item_app.xml index b783c70..9f1ee0a 100644 --- a/app/src/main/res/layout/item_app.xml +++ b/app/src/main/res/layout/item_app.xml @@ -75,7 +75,7 @@ android:id="@+id/app_btn_download" android:layout_width="@dimen/dp_40" android:layout_height="@dimen/dp_20" - android:textColor="#55b68a" + android:textColor="#000000" android:stateListAnimator="@null" android:layout_gravity="center_vertical" android:layout_marginRight="10dp" diff --git a/app/src/main/res/layout/item_image.xml b/app/src/main/res/layout/item_image.xml index 15856a1..a1f7746 100644 --- a/app/src/main/res/layout/item_image.xml +++ b/app/src/main/res/layout/item_image.xml @@ -1,8 +1,8 @@ diff --git a/app/src/main/res/layout/item_local_app.xml b/app/src/main/res/layout/item_local_app.xml index 9d07ece..b9536a3 100644 --- a/app/src/main/res/layout/item_local_app.xml +++ b/app/src/main/res/layout/item_local_app.xml @@ -65,10 +65,11 @@ android:layout_width="@dimen/dp_40" android:layout_height="@dimen/dp_20" android:layout_gravity="center_vertical" - android:background="@drawable/btn_style_open" android:layout_marginRight="10dp" + android:background="@drawable/btn_style_delete" android:stateListAnimator="@null" android:text="删除" + android:textColor="#ffffff" android:visibility="visible" /> diff --git a/app/src/main/res/layout/item_net.xml b/app/src/main/res/layout/item_net.xml new file mode 100644 index 0000000..b1c059b --- /dev/null +++ b/app/src/main/res/layout/item_net.xml @@ -0,0 +1,32 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/mipmap-hdpi/ic_app.png b/app/src/main/res/mipmap-hdpi/ic_app.png index bde1dfd..7cc1c63 100644 Binary files a/app/src/main/res/mipmap-hdpi/ic_app.png and b/app/src/main/res/mipmap-hdpi/ic_app.png differ diff --git a/app/src/main/res/mipmap-mdpi/ic_app.png b/app/src/main/res/mipmap-mdpi/ic_app.png index bde1dfd..7cc1c63 100644 Binary files a/app/src/main/res/mipmap-mdpi/ic_app.png and b/app/src/main/res/mipmap-mdpi/ic_app.png differ diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 386095e..52ef015 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -6,7 +6,9 @@ #FFFFFF #000000 - #c1bcbc + #f5f4f4 + #646464 + #d9d9d9 #d4d0d0 #55b68a