version:1.3
fix: add:首页所有应用开关
This commit is contained in:
@@ -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.
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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());
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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(
|
||||
);
|
||||
}
|
||||
@@ -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);
|
||||
|
||||
BIN
app/src/main/res/drawable-xhdpi/app_nodata.png
Normal file
BIN
app/src/main/res/drawable-xhdpi/app_nodata.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 8.4 KiB |
BIN
app/src/main/res/drawable-xhdpi/app_nonetwork.png
Normal file
BIN
app/src/main/res/drawable-xhdpi/app_nonetwork.png
Normal file
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 |
@@ -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" />
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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" />
|
||||
|
||||
@@ -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" />
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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" />
|
||||
|
||||
Reference in New Issue
Block a user