version:1.3

fix:
add:首页所有应用开关
This commit is contained in:
2022-01-14 15:45:30 +08:00
parent 8a8f215bdb
commit a6e3aa58e0
19 changed files with 173 additions and 90 deletions

View File

@@ -39,8 +39,8 @@ android {
productFlavors {
beta {
flavorDimensions "default"
versionCode 3
versionName "1.2"
versionCode 4
versionName "1.3"
manifestPlaceholders = [
JPUSH_PKGNAME: "com.uiui.appstore",
JPUSH_APPKEY : "c93d01f43046fa500d162817", //JPush 上注册的包名对应的 Appkey.

View File

@@ -458,9 +458,8 @@ public class MainActivity extends BaseActivity {
private void getAllAppPackageName() {
NetInterfaceManager.getInstance().getQueryAllAppControl().getAllApp(Utils.getSerial())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
NetInterfaceManager.getInstance()
.getQueryAllAppObservable()
.subscribe(new Observer<BaseResponse<List<AppInfo>>>() {
@Override
public void onSubscribe(@io.reactivex.annotations.NonNull Disposable d) {

View File

@@ -143,9 +143,8 @@ public class SearcherActivity extends BaseActivity {
}
private void getAllAppPackageName() {
NetInterfaceManager.getInstance().getQueryAllAppControl().getAllApp(Utils.getSerial())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
NetInterfaceManager.getInstance()
.getQueryAllAppObservable()
.subscribe(new Observer<BaseResponse<List<AppInfo>>>() {
@Override
public void onSubscribe(Disposable d) {

View File

@@ -1,8 +1,11 @@
package com.uiui.appstore.bean;
import com.google.gson.annotations.SerializedName;
import java.io.Serializable;
public class AppInfo implements Serializable {
@SerializedName(value = "app_id", alternate = {"id"})
private int app_id;
private String app_name;
private String app_package;

View File

@@ -9,6 +9,7 @@ import android.content.res.Resources;
import android.graphics.BitmapFactory;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.provider.Settings;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.View;
@@ -77,6 +78,8 @@ public class FeaturedFragment extends LazyLoadFragment implements RefreshManager
SmartRefreshLayout mRefreshLayout;
@BindView(R.id.iv_banner)
ImageView iv_banner;
@BindView(R.id.iv_nodata)
ImageView iv_nodata;
@BindView(R.id.banner_view)
BannerViewPager<String, BannerViewHolder> mViewPager;
@@ -145,9 +148,7 @@ public class FeaturedFragment extends LazyLoadFragment implements RefreshManager
mRvResult.setAdapter(adapter);
mRefreshLayout.setEnableLoadMore(false);
mRefreshLayout.setEnableRefresh(true);
mRefreshLayout.setOnRefreshListener(refreshlayout -> {
initAPPData();
});
mRefreshLayout.setOnRefreshListener(refreshlayout -> initAPPData());
adapter.setData(newAppInfoList);
mRefreshLayout.autoRefresh();
}
@@ -224,7 +225,12 @@ public class FeaturedFragment extends LazyLoadFragment implements RefreshManager
}
synchronized private void initAPPData() {
getAllAppInfo();
int setting_admin_app = Settings.System.getInt(getActivity().getContentResolver(), "setting_admin_app", 0);
if (setting_admin_app == 0) {
getAllAppInfo();
} else {
getAdminApp();
}
getBanner();
}
@@ -358,9 +364,8 @@ public class FeaturedFragment extends LazyLoadFragment implements RefreshManager
}
private void getAllAppInfo() {
NetInterfaceManager.getInstance().getQueryAllAppControl().getAllApp(Utils.getSerial())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
NetInterfaceManager.getInstance()
.getQueryAllAppObservable()
.subscribe(new Observer<BaseResponse<List<AppInfo>>>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
@@ -370,30 +375,13 @@ public class FeaturedFragment extends LazyLoadFragment implements RefreshManager
@Override
public void onNext(@NonNull BaseResponse<List<AppInfo>> listBaseResponse) {
Log.e("getAllAppInfo", "onNext: " + listBaseResponse);
int code = listBaseResponse.code;
if (code == 200) {
List<AppInfo> infos = listBaseResponse.data;
newAppInfoList = infos;
// mRvResult.setVisibility(View.VISIBLE);
// imageView.setVisibility(View.GONE);
adapter.setData(newAppInfoList);
adapter.notifyDataSetChanged();
} else {
// mRvResult.setVisibility(View.GONE);
// imageView.setVisibility(View.VISIBLE);
if (!BuildConfig.DEBUG) {
Intent intent = new Intent();
// intent.putExtra("text", getResources().getString(R.string.no_app));
intent.setClass(getActivity(), HintActivity.class);
startActivity(intent);
getActivity().finish();
}
}
setAllAppdata(listBaseResponse);
}
@Override
public void onError(@NonNull Throwable e) {
Log.e("getAllAppInfo", "onError: " + e.getMessage());
setAllAppError();
onComplete();
}
@@ -405,6 +393,65 @@ public class FeaturedFragment extends LazyLoadFragment implements RefreshManager
});
}
private void getAdminApp() {
NetInterfaceManager.getInstance()
.getAdminAppObservable()
.subscribe(new Observer<BaseResponse<List<AppInfo>>>() {
@Override
public void onSubscribe(Disposable d) {
Log.e("getAdminApp", "onSubscribe: ");
}
@Override
public void onNext(BaseResponse<List<AppInfo>> listBaseResponse) {
Log.e("getAdminApp", "onSubscribe: " + listBaseResponse);
setAllAppdata(listBaseResponse);
}
@Override
public void onError(Throwable e) {
Log.e("getAdminApp", "onError: " + e.getMessage());
setAllAppError();
onComplete();
}
@Override
public void onComplete() {
Log.e("getAdminApp", "onComplete: ");
mRefreshLayout.finishRefresh();
}
});
}
private void setAllAppdata(BaseResponse<List<AppInfo>> listBaseResponse) {
int code = listBaseResponse.code;
if (code == 200) {
List<AppInfo> infos = listBaseResponse.data;
newAppInfoList = infos;
mRvResult.setVisibility(View.VISIBLE);
iv_nodata.setVisibility(View.GONE);
adapter.setData(newAppInfoList);
adapter.notifyDataSetChanged();
} else {
mRvResult.setVisibility(View.GONE);
iv_nodata.setImageDrawable(getActivity().getDrawable(R.drawable.app_nodata));
iv_nodata.setVisibility(View.VISIBLE);
if (!BuildConfig.DEBUG) {
Intent intent = new Intent();
// intent.putExtra("text", getResources().getString(R.string.no_app));
intent.setClass(getActivity(), HintActivity.class);
startActivity(intent);
getActivity().finish();
}
}
}
private void setAllAppError() {
mRvResult.setVisibility(View.GONE);
iv_nodata.setImageDrawable(getActivity().getDrawable(R.drawable.app_nonetwork));
iv_nodata.setVisibility(View.VISIBLE);
}
private void getBannerImg() {
NetInterfaceManager.getInstance()
.getBannerImageControl()

View File

@@ -3,9 +3,11 @@ package com.uiui.appstore.network;
import android.content.Context;
import android.os.Environment;
import com.uiui.appstore.bean.AppInfo;
import com.uiui.appstore.bean.Banner;
import com.uiui.appstore.bean.BaseResponse;
import com.uiui.appstore.network.URLs.UrlAddress;
import com.uiui.appstore.network.api.AdminApp;
import com.uiui.appstore.network.api.BannerImage;
import com.uiui.appstore.network.api.DownloadApp;
import com.uiui.appstore.network.api.GetBanner;
@@ -14,8 +16,10 @@ import com.uiui.appstore.network.api.QueryAllApp;
import com.uiui.appstore.network.api.SNInfo;
import com.uiui.appstore.network.api.SearchApp;
import com.uiui.appstore.network.api.QueryPackageApp;
import com.uiui.appstore.utils.Utils;
import java.io.File;
import java.util.List;
import java.util.concurrent.TimeUnit;
import io.reactivex.Observable;
@@ -95,8 +99,11 @@ public class NetInterfaceManager {
return mRetrofit.create(SNInfo.class);
}
public QueryAllApp getQueryAllAppControl() {
return mRetrofit.create(QueryAllApp.class);
public Observable<BaseResponse<List<AppInfo>>> getQueryAllAppObservable() {
return mRetrofit.create(QueryAllApp.class)
.getAllApp(Utils.getSerial())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread());
}
public SearchApp getSearchAppControl() {
@@ -119,4 +126,12 @@ public class NetInterfaceManager {
return mRetrofit.create(QueryPackageApp.class);
}
public Observable<BaseResponse<List<AppInfo>>> getAdminAppObservable() {
return mRetrofit.create(AdminApp.class).getAdminApp()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread());
}
}

View File

@@ -2,9 +2,11 @@ package com.uiui.appstore.network.URLs;
public class UrlAddress {
public final static String ROOT_URL = "https://led.aolelearn.cn/android/";
public final static String GET_ALL_APPINFO = "app/queryAllApp";
//获取所有应用
public final static String GET_ALL_APPINFO = "app/queryAllApp";
//获取管理员所有应用
public final static String GET_ADMIN_APP = "getAdminApp";
//获取应用详情
public final static String GET_PACKAGE_APP = "app/queryPackageApp";
//获取所有应用排行
public final static String GET_ALL_RANK = "App/rankings";

View File

@@ -0,0 +1,17 @@
package com.uiui.appstore.network.api;
import com.uiui.appstore.bean.AppInfo;
import com.uiui.appstore.bean.BaseResponse;
import com.uiui.appstore.network.URLs.UrlAddress;
import java.util.List;
import io.reactivex.Observable;
import retrofit2.http.GET;
import retrofit2.http.Query;
public interface AdminApp {
@GET(UrlAddress.GET_ADMIN_APP)
Observable<BaseResponse<List<AppInfo>>> getAdminApp(
);
}

View File

@@ -13,6 +13,7 @@ import android.net.Uri;
import android.os.Binder;
import android.os.Build;
import android.provider.Settings;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.widget.Toast;
@@ -656,7 +657,7 @@ public class ApkUtils {
bean.setPackageName(packageName);
Drawable icon = resolveInfoList.get(i).loadIcon(context.getPackageManager());
bean.setIcon(icon);
if (packageName.contains(qch_force_app)) {
if (!TextUtils.isEmpty(qch_force_app) && qch_force_app.contains(packageName)) {
bean.setCanUnintall(false);
} else {
bean.setCanUnintall(true);

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB

View File

@@ -74,7 +74,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="32dp"
android:text="版本:"
android:textSize="20sp"
android:textSize="15sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_appname" />

View File

@@ -55,19 +55,19 @@
android:nestedScrollingEnabled="false"
android:overScrollMode="never" />
<!-- <ImageView-->
<!-- android:id="@+id/imageView"-->
<!-- android:layout_width="300dp"-->
<!-- android:layout_height="300dp"-->
<!-- android:layout_centerInParent="true"-->
<!-- android:adjustViewBounds="true"-->
<!-- android:scaleType="centerInside"-->
<!-- android:src="@drawable/icon_nodata"-->
<!-- android:visibility="gone"-->
<!-- app:layout_constraintBottom_toBottomOf="parent"-->
<!-- app:layout_constraintEnd_toEndOf="parent"-->
<!-- app:layout_constraintStart_toStartOf="parent"-->
<!-- app:layout_constraintTop_toTopOf="parent" />-->
<ImageView
android:id="@+id/iv_nodata"
android:layout_width="300dp"
android:layout_height="300dp"
android:layout_centerInParent="true"
android:adjustViewBounds="true"
android:scaleType="centerInside"
android:src="@drawable/app_nodata"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</ScrollView>

View File

@@ -165,28 +165,28 @@
<include layout="@layout/include_line_horizontal" />
<!-- <TextView-->
<!-- android:id="@+id/tv_pripolicy"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_marginStart="8dp"-->
<!-- android:layout_marginTop="4dp"-->
<!-- android:autoLink="all"-->
<!-- android:text="@string/privacy_policy"-->
<!-- android:textColor="@color/activation_color"-->
<!-- android:textSize="16sp"-->
<!-- android:visibility="visible" />-->
<!-- <TextView-->
<!-- android:id="@+id/tv_pripolicy"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_marginStart="8dp"-->
<!-- android:layout_marginTop="4dp"-->
<!-- android:autoLink="all"-->
<!-- android:text="@string/privacy_policy"-->
<!-- android:textColor="@color/activation_color"-->
<!-- android:textSize="16sp"-->
<!-- android:visibility="visible" />-->
<!-- <TextView-->
<!-- android:id="@+id/tv_useragreement"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_marginStart="8dp"-->
<!-- android:autoLink="all"-->
<!-- android:text="@string/user_agreement"-->
<!-- android:textColor="@color/activation_color"-->
<!-- android:textSize="16sp"-->
<!-- android:visibility="visible" />-->
<!-- <TextView-->
<!-- android:id="@+id/tv_useragreement"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_marginStart="8dp"-->
<!-- android:autoLink="all"-->
<!-- android:text="@string/user_agreement"-->
<!-- android:textColor="@color/activation_color"-->
<!-- android:textSize="16sp"-->
<!-- android:visibility="visible" />-->
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
@@ -216,7 +216,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:textSize="19sp"
android:textSize="14sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />

View File

@@ -74,7 +74,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="32dp"
android:text="版本:"
android:textSize="20sp"
android:textSize="15sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_appname" />

View File

@@ -59,19 +59,19 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<!-- <ImageView-->
<!-- android:id="@+id/imageView"-->
<!-- android:layout_width="300dp"-->
<!-- android:layout_height="300dp"-->
<!-- android:layout_centerInParent="true"-->
<!-- android:adjustViewBounds="true"-->
<!-- android:scaleType="centerInside"-->
<!-- android:src="@drawable/icon_nodata"-->
<!-- android:visibility="gone"-->
<!-- app:layout_constraintBottom_toBottomOf="parent"-->
<!-- app:layout_constraintEnd_toEndOf="parent"-->
<!-- app:layout_constraintStart_toStartOf="parent"-->
<!-- app:layout_constraintTop_toTopOf="parent" />-->
<ImageView
android:id="@+id/iv_nodata"
android:layout_width="300dp"
android:layout_height="300dp"
android:layout_centerInParent="true"
android:adjustViewBounds="true"
android:scaleType="centerInside"
android:src="@drawable/app_nodata"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</ScrollView>

View File

@@ -218,7 +218,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:textSize="19sp"
android:textSize="14sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />