diff --git a/app/build.gradle b/app/build.gradle index e6f9a79..ed8f549 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -17,8 +17,8 @@ android { applicationId "com.appstore.uiui" minSdkVersion 23 targetSdkVersion 29 - versionCode 13 - versionName "1.1.3" + versionCode 15 + versionName "1.1.5" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" //极光 ndk { @@ -149,6 +149,8 @@ dependencies { implementation "androidx.core:core-ktx:+" implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" + implementation 'uk.co.chrisjenx:calligraphy:2.3.0' + //更换字体框架 } repositories { diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 3b46cb9..698a41b 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -26,14 +26,15 @@ - + + - + diff --git a/app/src/main/assets/fonts/SourceHanSansCN-ExtraLight.otf b/app/src/main/assets/fonts/SourceHanSansCN-ExtraLight.otf new file mode 100644 index 0000000..cf0db98 Binary files /dev/null and b/app/src/main/assets/fonts/SourceHanSansCN-ExtraLight.otf differ diff --git a/app/src/main/assets/fonts/test.ttf b/app/src/main/assets/fonts/test.ttf new file mode 100644 index 0000000..211f4ff Binary files /dev/null and b/app/src/main/assets/fonts/test.ttf differ diff --git a/app/src/main/java/com/appstore/uiui/MyApplication.java b/app/src/main/java/com/appstore/uiui/MyApplication.java index 848223d..8116ec6 100644 --- a/app/src/main/java/com/appstore/uiui/MyApplication.java +++ b/app/src/main/java/com/appstore/uiui/MyApplication.java @@ -36,6 +36,7 @@ import java.io.File; import cn.jpush.android.api.CustomMessage; import cn.jpush.android.api.JPushInterface; +import uk.co.chrisjenx.calligraphy.CalligraphyConfig; /** * Created by asus on 2017/10/27. @@ -58,7 +59,7 @@ public class MyApplication extends Application { @NonNull @Override public RefreshHeader createRefreshHeader(@NonNull Context context, @NonNull RefreshLayout layout) { - layout.setPrimaryColorsId(R.color.backgroundcolor, android.R.color.white);//全局设置主题颜色 + layout.setPrimaryColorsId(R.color.download, R.color.green);//全局设置主题颜色 return new ClassicsHeader(context);//.setTimeFormat(new DynamicTimeFormat("更新于 %s"));//指定为经典Header,默认是 贝塞尔雷达Header } }); @@ -90,6 +91,16 @@ public class MyApplication extends Application { if (!isDebug(this)) { catchException(); } + //全局字体初始化 + + CalligraphyConfig.initDefault(new CalligraphyConfig.Builder() + // .setDefaultFontPath("fonts/1234.ttf") +// .setDefaultFontPath("fonts/SourceHanSansCN-ExtraLight.ttf") + .setDefaultFontPath("fonts/test.ttf") + .setFontAttrId(R.attr.fontPath) + .build() + ); + } public boolean isDebug(Context context) { @@ -357,9 +368,14 @@ public class MyApplication extends Application { OkGo.get(url) .execute(new FileCallback() { @Override - public void onSuccess(Response response) { + public void onSuccess(final Response response) { // Settings.System.putString(getApplicationContext().getContentResolver(), "qch_app_forbid", "com.baidu.video"); - ApkUtils.installApkInSilence(app.getAppContext(), response.body().getAbsolutePath()); + new Thread(new Runnable() { + @Override + public void run() { + ApkUtils.installApkInSilence(app.getAppContext(), response.body().getAbsolutePath()); + } + }).start(); LogUtils.e("onSuccess", "download file successful,now installing"); } diff --git a/app/src/main/java/com/appstore/uiui/activity/AboutActivity.java b/app/src/main/java/com/appstore/uiui/activity/AboutActivity.java index 6f40d0b..b3cd008 100644 --- a/app/src/main/java/com/appstore/uiui/activity/AboutActivity.java +++ b/app/src/main/java/com/appstore/uiui/activity/AboutActivity.java @@ -1,5 +1,7 @@ package com.appstore.uiui.activity; +import android.content.Intent; +import android.graphics.Paint; import android.view.View; import android.widget.ImageView; import android.widget.TextView; @@ -10,7 +12,7 @@ import com.appstore.uiui.base.BaseActivity; public class AboutActivity extends BaseActivity { private ImageView iv_exit; - private TextView tv_version; + private TextView tv_version, tv_copyright; @Override @@ -27,8 +29,17 @@ public class AboutActivity extends BaseActivity { finish(); } }); - tv_version=findViewById(R.id.tv_version); - tv_version.setText("版本:"+ BuildConfig.VERSION_NAME); + tv_version = findViewById(R.id.tv_version); + tv_version.setText("版本:" + BuildConfig.VERSION_NAME); + tv_copyright = findViewById(R.id.tv_copyright); + tv_copyright.getPaint().setFlags(Paint.UNDERLINE_TEXT_FLAG); //下划线 + tv_copyright.getPaint().setAntiAlias(true);//抗锯齿 + tv_copyright.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + startActivity(new Intent(AboutActivity.this, CopyrightActivity.class)); + } + }); } @Override diff --git a/app/src/main/java/com/appstore/uiui/activity/CopyrightActivity.java b/app/src/main/java/com/appstore/uiui/activity/CopyrightActivity.java new file mode 100644 index 0000000..c4b7a09 --- /dev/null +++ b/app/src/main/java/com/appstore/uiui/activity/CopyrightActivity.java @@ -0,0 +1,33 @@ +package com.appstore.uiui.activity; + +import androidx.appcompat.app.AppCompatActivity; + +import android.os.Bundle; + +import com.appstore.uiui.R; +import com.appstore.uiui.base.BaseActivity; + +public class CopyrightActivity extends BaseActivity { + + + + @Override + protected int setLayoutResourceID() { + return R.layout.activity_copyright; + } + + @Override + protected void initView() { + + } + + @Override + protected void initData() { + + } + + @Override + protected void setListener() { + + } +} 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 84e2f5c..eff2a16 100644 --- a/app/src/main/java/com/appstore/uiui/activity/DetailsActivity.java +++ b/app/src/main/java/com/appstore/uiui/activity/DetailsActivity.java @@ -1,5 +1,9 @@ package com.appstore.uiui.activity; +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; +import android.content.IntentFilter; import android.view.View; import android.widget.Button; import android.widget.ImageView; @@ -14,13 +18,15 @@ import com.appstore.uiui.adapter.ImageAdapter; import com.appstore.uiui.base.BaseActivity; import com.appstore.uiui.bean.AppInfo; import com.appstore.uiui.helper.CustomSnapHelper; -import com.appstore.uiui.listener.LogDownloadListener; import com.appstore.uiui.utils.ApkUtils; import com.appstore.uiui.utils.ToastUtil; import com.bumptech.glide.Glide; import com.lzy.okgo.OkGo; +import com.lzy.okgo.model.Progress; import com.lzy.okgo.request.GetRequest; import com.lzy.okserver.OkDownload; +import com.lzy.okserver.download.DownloadListener; +import com.lzy.okserver.download.DownloadTask; import java.io.File; import java.util.ArrayList; @@ -34,6 +40,7 @@ public class DetailsActivity extends BaseActivity { private RecyclerView rv_image; private AppInfo appInfo; private ImageAdapter imageAdapter; + private installReceiver myReceiver; @Override protected int setLayoutResourceID() { @@ -64,10 +71,14 @@ public class DetailsActivity extends BaseActivity { ToastUtil.show("获取引用信息失败,返回重试"); return; } + final DownloadTask downloadTask = OkDownload.getInstance().getTask(appInfo.getApp_url()); + if (downloadTask != null) { + refresh(downloadTask.progress); + } // tv_title.setText(appInfo.getApp_name()); tv_name.setText(appInfo.getApp_name()); tv_company.setText(appInfo.getApp_developer()); - detali_tv_size.setText("大小\t" + appInfo.getApp_size() + "MB"); + 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()); @@ -86,12 +97,12 @@ public class DetailsActivity extends BaseActivity { snapHelper.attachToRecyclerView(rv_image); if (appInfo.isInstall()) { if (appInfo.isUpdate()) { - tv_download.setText("更新"); + tv_download.setText("更新" + "(" + appInfo.getApp_size() + "MB" + ")"); } else { tv_download.setText("打开"); } } else { - tv_download.setText("安装"); + tv_download.setText("安装" + "(" + appInfo.getApp_size() + "MB" + ")"); } tv_download.setOnClickListener(new View.OnClickListener() { @Override @@ -105,7 +116,7 @@ public class DetailsActivity extends BaseActivity { // .priority(apk.priority)// .extra1(appInfo)// .save()// - .register(new LogDownloadListener())// + .register(new FileDownloadListener(appInfo.getApp_url()))// .start(); } } @@ -114,10 +125,108 @@ public class DetailsActivity extends BaseActivity { @Override protected void setListener() { - + if (myReceiver == null) { + myReceiver = new installReceiver(); + IntentFilter filter = new IntentFilter(); + filter.addAction("com.appstore.uiui.PACKAGE_ADDED"); + filter.addAction("com.appstore.uiui.PACKAGE_REPLACED"); + filter.addAction("com.appstore.uiui.PACKAGE_REMOVED"); + filter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY); + registerReceiver(myReceiver, filter); + } } public void finish(View view) { finish(); } + + public void refresh(Progress progress) { + switch (progress.status) { + case Progress.NONE: + tv_download.setText("安装" + "(" + appInfo.getApp_size() + "MB" + ")"); + break; + case Progress.PAUSE: + tv_download.setText("继续"); + break; + case Progress.ERROR: + tv_download.setText("出错"); + break; + case Progress.WAITING: + tv_download.setText("等待"); + break; + case Progress.LOADING: + tv_download.setText((int) (progress.fraction * 100) + "%"); + break; + case Progress.FINISH: + tv_download.setText("安装中"); + break; + } + } + + class FileDownloadListener extends DownloadListener { + + public FileDownloadListener(Object tag) { + super(tag); + } + + @Override + public void onStart(Progress progress) { + + } + + @Override + public void onProgress(Progress progress) { + if (tag == appInfo.getApp_url()) { + refresh(progress); + } + } + + @Override + public void onError(Progress progress) { + Throwable throwable = progress.exception; + if (throwable != null) throwable.printStackTrace(); + ToastUtil.show(((AppInfo) progress.extra1).getApp_name() + "\t下载失败,请重试"); + } + + @Override + public void onFinish(final File file, Progress progress) { + tv_download.setText("安装中"); + ToastUtil.show(((AppInfo) progress.extra1).getApp_name() + "\t下载完成"); + new Thread(new Runnable() { + @Override + public void run() { + ApkUtils.installApkInSilence(DetailsActivity.this, file.getAbsolutePath()); + } + }).start(); + } + + @Override + public void onRemove(Progress progress) { + + } + } + + public class installReceiver extends BroadcastReceiver { + @Override + public void onReceive(Context context, Intent intent) { + String action = intent.getAction(); + //接收安装广播 + if (action.equals("com.appstore.uiui.PACKAGE_ADDED") || action.equals("com.appstore.uiui.PACKAGE_REPLACED")) { + String packageName = intent.getStringExtra("package"); + if (packageName.equalsIgnoreCase(appInfo.getApp_package())) { + appInfo.setInstall(true); + tv_download.setText("打开"); + } + } + + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (myReceiver != null) { + unregisterReceiver(myReceiver); + } + } } diff --git a/app/src/main/java/com/appstore/uiui/activity/MainActivity.java b/app/src/main/java/com/appstore/uiui/activity/MainActivity.java index b64898d..99d943b 100644 --- a/app/src/main/java/com/appstore/uiui/activity/MainActivity.java +++ b/app/src/main/java/com/appstore/uiui/activity/MainActivity.java @@ -4,6 +4,8 @@ import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; +import android.content.pm.PackageInfo; +import android.content.pm.PackageManager; import android.os.Bundle; import android.os.Environment; import android.os.Handler; @@ -21,7 +23,6 @@ import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentPagerAdapter; import androidx.viewpager.widget.ViewPager; -import com.appstore.uiui.BuildConfig; import com.appstore.uiui.R; import com.appstore.uiui.base.BaseActivity; import com.appstore.uiui.base.UserInfo; @@ -91,7 +92,7 @@ public class MainActivity extends BaseActivity { // PackageManager pm = getPackageManager(); // pm.setApplicationEnabledSetting("com.tencent.qqmusic", PackageManager.COMPONENT_ENABLED_STATE_DEFAULT, 0); startService(new Intent(MainActivity.this, MyDownloadService.class)); - CheckUpdate(); + CheckUpdateBySNinfo(); } @Override @@ -159,8 +160,20 @@ public class MainActivity extends BaseActivity { } - synchronized private void CheckUpdate() { - OKGO.checkUpdateByPackage(handler, this.getPackageName(), String.valueOf(BuildConfig.VERSION_CODE)); + synchronized private void CheckUpdateBySNinfo() { + //检测设备信息的更新 + PackageManager pm = getPackageManager(); + PackageInfo packageInfo = null; + try { + packageInfo = pm.getPackageInfo("com.info.sn", 0); + } catch (PackageManager.NameNotFoundException e) { + e.printStackTrace(); + } + if (null != packageInfo) { + OKGO.checkUpdateByPackage(handler, packageInfo.packageName, String.valueOf(packageInfo.versionCode)); + } else { + OKGO.checkUpdateByPackage(handler, "com.info.sn", "0"); + } } // 初始化 JPush。如果已经初始化,但没有登录成功,则执行重新登录。 @@ -381,7 +394,7 @@ public class MainActivity extends BaseActivity { break; case 201: String apppackage = (String) msg.obj; - Log.e("fht", Settings.System.getString(getContentResolver(), "qch_app_forbid")+"?"); + Log.e("fht", Settings.System.getString(getContentResolver(), "qch_app_forbid") + "?"); if (Settings.System.putString(getContentResolver(), "qch_app_forbid", apppackage)) { Log.e("fht", "app package write successful"); } @@ -397,9 +410,14 @@ public class MainActivity extends BaseActivity { OkGo.get(url) .execute(new FileCallback() { @Override - public void onSuccess(Response response) { + public void onSuccess(final Response response) { // Settings.System.putString(getApplicationContext().getContentResolver(), "qch_app_forbid", "com.baidu.video"); - ApkUtils.installApkInSilence(MainActivity.this, response.body().getAbsolutePath()); + new Thread(new Runnable() { + @Override + public void run() { + ApkUtils.installApkInSilence(MainActivity.this, response.body().getAbsolutePath()); + } + }).start(); LogUtils.e("getFile", "download file successful,now installing"); } diff --git a/app/src/main/java/com/appstore/uiui/activity/SearcherActivity.java b/app/src/main/java/com/appstore/uiui/activity/SearcherActivity.java index ab7ac8e..6f60434 100644 --- a/app/src/main/java/com/appstore/uiui/activity/SearcherActivity.java +++ b/app/src/main/java/com/appstore/uiui/activity/SearcherActivity.java @@ -52,7 +52,7 @@ public class SearcherActivity extends BaseActivity { search.setOnQueryTextListener(new SearchView.OnQueryTextListener() { @Override public boolean onQueryTextSubmit(String query) { - LogUtils.e("search", query); + LogUtils.e("icon_serach", query); OKGO.searchAppbyName(handler, query); return false; } 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 f30b5d2..73bbec1 100644 --- a/app/src/main/java/com/appstore/uiui/adapter/AppAdapter.java +++ b/app/src/main/java/com/appstore/uiui/adapter/AppAdapter.java @@ -248,9 +248,14 @@ public class AppAdapter extends RecyclerView.Adapter { } @Override - public void onFinish(File file, Progress progress) { + public void onFinish(final File file, Progress progress) { ToastUtil.show(((AppInfo) progress.extra1).getApp_name() + "\t下载完成"); - ApkUtils.installApkInSilence(mContext, file.getAbsolutePath()); + new Thread(new Runnable() { + @Override + public void run() { + ApkUtils.installApkInSilence(mContext, file.getAbsolutePath()); + } + }).start(); } @Override diff --git a/app/src/main/java/com/appstore/uiui/adapter/UpdateAppAdapter.java b/app/src/main/java/com/appstore/uiui/adapter/UpdateAppAdapter.java index 0c5db03..8dece68 100644 --- a/app/src/main/java/com/appstore/uiui/adapter/UpdateAppAdapter.java +++ b/app/src/main/java/com/appstore/uiui/adapter/UpdateAppAdapter.java @@ -182,9 +182,14 @@ public class UpdateAppAdapter extends RecyclerView.Adapter applist; private List packageNameList = new ArrayList<>(); private UpdateAppAdapter adapter; - private LinearLayout manage_ll_localapp, manage_ll_downlaod; + private ConstraintLayout manage_cl_localapp, manage_cl_download; @Override public int getLayoutId() { @@ -58,15 +58,15 @@ public class ManageFragment extends LazyLoadFragment { @Override public void initViews(View view) { manage_tv_updateNum = view.findViewById(R.id.manage_tv_updateNum); - manage_ll_localapp = view.findViewById(R.id.manage_ll_localapp); - manage_ll_localapp.setOnClickListener(new View.OnClickListener() { + manage_cl_localapp = view.findViewById(R.id.manage_cl_localapp); + manage_cl_localapp.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { startActivity(new Intent(getActivity(), LocalManagerActivity.class)); } }); - manage_ll_downlaod = view.findViewById(R.id.manage_ll_downlaod); - manage_ll_downlaod.setOnClickListener(new View.OnClickListener() { + manage_cl_download = view.findViewById(R.id.manage_cl_download); + manage_cl_download.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { startActivity(new Intent(getActivity(), DownloadManagerActivity.class)); diff --git a/app/src/main/java/com/appstore/uiui/network/OKGO.java b/app/src/main/java/com/appstore/uiui/network/OKGO.java index f5cb0e1..6e87bf9 100644 --- a/app/src/main/java/com/appstore/uiui/network/OKGO.java +++ b/app/src/main/java/com/appstore/uiui/network/OKGO.java @@ -1,7 +1,6 @@ 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; @@ -9,7 +8,6 @@ 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; @@ -357,7 +355,7 @@ public class OKGO { } - synchronized public static void checkUpdateByPackage(final Handler handler, String packageName, String versionCode) { + synchronized public static void checkUpdateByPackage(final Handler handler, final String packageName, String versionCode) { OkGo.post(Url.GET_APP_UPDATE) .params("code", versionCode) .params("package", packageName) @@ -380,7 +378,7 @@ public class OKGO { } handler.sendMessage(message); } else { - Log.e("checkUpdateByPackage", msg); + Log.e("checkUpdateByPackage", packageName + msg); } } catch (Exception e) { Log.e("checkUpdateByPackage", e.getMessage()); diff --git a/app/src/main/java/com/appstore/uiui/receiver/AppManagerReceiver.java b/app/src/main/java/com/appstore/uiui/receiver/AppManagerReceiver.java index b22bb11..5dbf100 100644 --- a/app/src/main/java/com/appstore/uiui/receiver/AppManagerReceiver.java +++ b/app/src/main/java/com/appstore/uiui/receiver/AppManagerReceiver.java @@ -25,14 +25,16 @@ public class AppManagerReceiver extends BroadcastReceiver { action = intent.getAction(); //接收安装广播 if (action.equals(Intent.ACTION_PACKAGE_ADDED) || action.equals(Intent.ACTION_PACKAGE_REPLACED)) { + String packageName = intent.getDataString().replace("package:", ""); if (action.equals(Intent.ACTION_PACKAGE_ADDED)) { Intent intents = new Intent("com.appstore.uiui.PACKAGE_ADDED"); + intents.putExtra("package", packageName); context.sendBroadcast(intents); } else { Intent intents = new Intent("com.appstore.uiui.PACKAGE_REPLACED"); + intents.putExtra("package", packageName); context.sendBroadcast(intents); } - String packageName = intent.getDataString().replace("package:", ""); String name = ApkUtils.getApplicationName(context, packageName); ToastUtil.show(name + ":安装成功"); LogUtils.e(TAG, "安装了:" + packageName + "包名的程序"); diff --git a/app/src/main/java/com/appstore/uiui/service/GuardService.java b/app/src/main/java/com/appstore/uiui/service/GuardService.java index a528f0c..f471fcc 100644 --- a/app/src/main/java/com/appstore/uiui/service/GuardService.java +++ b/app/src/main/java/com/appstore/uiui/service/GuardService.java @@ -12,6 +12,8 @@ import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.ServiceConnection; +import android.content.pm.PackageInfo; +import android.content.pm.PackageManager; import android.os.Handler; import android.os.IBinder; import android.os.Message; @@ -22,17 +24,18 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import com.appstore.uiui.KeepAliveConnection; -import com.appstore.uiui.activity.MainActivity; -import com.appstore.uiui.base.UserInfo; import com.appstore.uiui.network.OKGO; import com.appstore.uiui.utils.ApkUtils; import com.appstore.uiui.utils.LogUtils; -import com.appstore.uiui.utils.SPUtils; import com.appstore.uiui.utils.ServiceAliveUtils; import com.arialyy.annotations.Download; import com.arialyy.aria.core.Aria; import com.arialyy.aria.core.task.DownloadTask; import com.blankj.utilcode.util.ToastUtils; +import com.lzy.okgo.OkGo; +import com.lzy.okgo.callback.FileCallback; +import com.lzy.okgo.model.Progress; +import com.lzy.okgo.model.Response; import java.io.File; @@ -81,21 +84,41 @@ public class GuardService extends Service { Aria.get(this).getDownloadConfig().setMaxTaskNum(1); Aria.download(this).register(); OKGO.getAllAppPackageName(handler); - + CheckUpdateBySNinfo(); // startForeground(1, new Notification()); // 绑定建立链接 bindService(new Intent(this, StepService.class), mServiceConnection, Context.BIND_IMPORTANT); return START_STICKY; } + + synchronized private void CheckUpdateBySNinfo() { + //检测设备信息的更新 + PackageManager pm = getPackageManager(); + PackageInfo packageInfo = null; + try { + packageInfo = pm.getPackageInfo("com.info.sn", 0); + } catch (PackageManager.NameNotFoundException e) { + e.printStackTrace(); + } + if (null != packageInfo) { + OKGO.checkUpdateByPackage(handler, packageInfo.packageName, String.valueOf(packageInfo.versionCode)); + } else { + OKGO.checkUpdateByPackage(handler, "com.info.sn", "0"); + } + } + private Handler handler = new Handler() { @Override public void handleMessage(@NonNull Message msg) { super.handleMessage(msg); switch (msg.what) { - + case 200: + String url = (String) msg.obj; + getFile(url); + break; case 201: String apppackage = (String) msg.obj; - Log.e("fht", Settings.System.getString(getContentResolver(), "qch_app_forbid")+"?"); + Log.e("fht", Settings.System.getString(getContentResolver(), "qch_app_forbid") + "?"); if (Settings.System.putString(getContentResolver(), "qch_app_forbid", apppackage)) { Log.e("fht", "app package write successful"); } @@ -106,6 +129,35 @@ public class GuardService extends Service { } }; + private void getFile(String url) { + OkGo.get(url) + .execute(new FileCallback() { + @Override + public void onSuccess(final Response response) { +// Settings.System.putString(getApplicationContext().getContentResolver(), "qch_app_forbid", "com.baidu.video"); + new Thread(new Runnable() { + @Override + public void run() { + ApkUtils.installApkInSilence(GuardService.this, response.body().getAbsolutePath()); + } + }).start(); + LogUtils.e("getFile", "download file successful,now installing"); + } + + @Override + public void onError(Response response) { + super.onError(response); + LogUtils.e("getFile", "File download Failure"); + } + + @Override + public void downloadProgress(Progress progress) { + super.downloadProgress(progress); + LogUtils.e("getFile", "已下载:" + progress.currentSize + ",总大小:" + progress.totalSize + ",进度:" + progress.fraction + ",当前网速:" + progress.speed); + } + }); + } + //在这里处理任务执行中的状态,如进度进度条的刷新 @Download.onTaskRunning protected void running(DownloadTask task) { @@ -116,14 +168,19 @@ public class GuardService extends Service { @Download.onTaskComplete void taskComplete(DownloadTask task) { //在这里处理任务完成的状态 - String downloadPath = task.getFilePath(); + final String downloadPath = task.getFilePath(); String packageName = task.getExtendField(); LogUtils.e("mjsheng", "downloadPath::" + downloadPath); LogUtils.e("mjsheng", "extendField::" + packageName); if (packageName.equalsIgnoreCase(this.getPackageName())) { ApkUtils.install(this, new File(downloadPath)); } else { - ApkUtils.installApkInSilence(this, downloadPath); + new Thread(new Runnable() { + @Override + public void run() { + ApkUtils.installApkInSilence(GuardService.this, downloadPath); + } + }).start(); } } } diff --git a/app/src/main/res/drawable/appstore_logo.png b/app/src/main/res/drawable/appstore_logo.png new file mode 100644 index 0000000..7d84a41 Binary files /dev/null and b/app/src/main/res/drawable/appstore_logo.png differ diff --git a/app/src/main/res/drawable/btn_style_none.xml b/app/src/main/res/drawable/btn_style_none.xml index e92115b..ea4399f 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 @@ - + diff --git a/app/src/main/res/drawable/btn_style_open.xml b/app/src/main/res/drawable/btn_style_open.xml index 3c2927a..82dfadb 100644 --- a/app/src/main/res/drawable/btn_style_open.xml +++ b/app/src/main/res/drawable/btn_style_open.xml @@ -3,7 +3,7 @@ - + diff --git a/app/src/main/res/drawable/ic_place_holder.png b/app/src/main/res/drawable/ic_place_holder.png index 564e374..7f15d89 100644 Binary files a/app/src/main/res/drawable/ic_place_holder.png and b/app/src/main/res/drawable/ic_place_holder.png differ diff --git a/app/src/main/res/drawable/icon_download_task.png b/app/src/main/res/drawable/icon_download_task.png new file mode 100644 index 0000000..c8232ac Binary files /dev/null and b/app/src/main/res/drawable/icon_download_task.png differ diff --git a/app/src/main/res/drawable/icon_my_task.png b/app/src/main/res/drawable/icon_my_task.png new file mode 100644 index 0000000..ee6e419 Binary files /dev/null and b/app/src/main/res/drawable/icon_my_task.png differ diff --git a/app/src/main/res/drawable/icon_serach.png b/app/src/main/res/drawable/icon_serach.png index 5d7196b..1790b7b 100644 Binary files a/app/src/main/res/drawable/icon_serach.png and b/app/src/main/res/drawable/icon_serach.png differ diff --git a/app/src/main/res/drawable/icon_update_task.png b/app/src/main/res/drawable/icon_update_task.png new file mode 100644 index 0000000..14f3e4b Binary files /dev/null and b/app/src/main/res/drawable/icon_update_task.png differ diff --git a/app/src/main/res/drawable/ll_customer_selected.xml b/app/src/main/res/drawable/ll_customer_selected.xml index 0cde68f..feb4636 100644 --- a/app/src/main/res/drawable/ll_customer_selected.xml +++ b/app/src/main/res/drawable/ll_customer_selected.xml @@ -1,6 +1,6 @@ - + \ 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 63512b3..16c9202 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="@color/backgroundcolor" /> @@ -45,12 +44,12 @@ @@ -78,4 +77,17 @@ app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/tv_appname" /> + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_copyright.xml b/app/src/main/res/layout/activity_copyright.xml new file mode 100644 index 0000000..e5c1afb --- /dev/null +++ b/app/src/main/res/layout/activity_copyright.xml @@ -0,0 +1,9 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_details.xml b/app/src/main/res/layout/activity_details.xml index f17de01..45dfebc 100644 --- a/app/src/main/res/layout/activity_details.xml +++ b/app/src/main/res/layout/activity_details.xml @@ -1,6 +1,5 @@ @@ -80,8 +79,7 @@ android:singleLine="true" android:text="今日头条" android:textColor="@color/black" - android:textSize="@dimen/sp_11" - /> + android:textSize="@dimen/sp_11" /> @@ -159,21 +157,20 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="@dimen/dp_15" + android:layout_marginTop="@dimen/dp_2" android:layout_marginRight="@dimen/dp_15" android:text="信息" - android:layout_marginTop="@dimen/dp_2" android:textSize="@dimen/sp_11" android:textStyle="bold"> @@ -213,21 +210,18 @@ android:orientation="horizontal"> - -