管灌系统巡查员智能手机App
zuoxiao
2025-02-11 dde9027478b772dd60371937413ac2838c4f3bbd
1.修改library名称
2.取水口接口相关代码
98 文件已重命名
6个文件已修改
1个文件已添加
160 ■■■■ 已修改文件
app/build.gradle 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/dayu/pipirrapp/activity/OrderDetailActivity.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/dayu/pipirrapp/dao/AppDatabase.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/dayu/pipirrapp/dao/PipeNetDao.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/dayu/pipirrapp/fragment/MapFragment.java 46 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/.gitignore 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/build.gradle 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/proguard-rules.pro 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/AndroidManifest.xml 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/java/cc/shinichi/library/GlobalContext.kt 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/java/cc/shinichi/library/ImagePreview.kt 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/java/cc/shinichi/library/InitProvider.kt 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/java/cc/shinichi/library/bean/ImageInfo.kt 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/java/cc/shinichi/library/glide/FileTarget.kt 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/java/cc/shinichi/library/glide/ImageLoader.kt 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/java/cc/shinichi/library/glide/SSLSocketClient.kt 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/java/cc/shinichi/library/glide/cache/DataCacheKey.kt 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/java/cc/shinichi/library/glide/cache/SafeKeyGenerator.kt 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/java/cc/shinichi/library/glide/progress/OnProgressListener.kt 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/java/cc/shinichi/library/glide/progress/ProgressLibraryGlideModule.kt 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/java/cc/shinichi/library/glide/progress/ProgressManager.kt 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/java/cc/shinichi/library/glide/progress/ProgressResponseBody.kt 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/java/cc/shinichi/library/tool/common/DeviceUtil.kt 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/java/cc/shinichi/library/tool/common/HandlerHolder.kt 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/java/cc/shinichi/library/tool/common/HttpUtil.kt 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/java/cc/shinichi/library/tool/common/NetworkUtil.kt 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/java/cc/shinichi/library/tool/common/PhoneUtil.kt 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/java/cc/shinichi/library/tool/common/SLog.kt 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/java/cc/shinichi/library/tool/common/ToastUtil.kt 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/java/cc/shinichi/library/tool/common/UIUtil.kt 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/java/cc/shinichi/library/tool/file/FileUtil.kt 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/java/cc/shinichi/library/tool/file/SingleMediaScanner.kt 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/java/cc/shinichi/library/tool/image/DownloadUtil.kt 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/java/cc/shinichi/library/tool/image/ImageUtil.kt 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/java/cc/shinichi/library/view/HackyViewPager.kt 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/java/cc/shinichi/library/view/ImagePreviewActivity.kt 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/java/cc/shinichi/library/view/ImagePreviewAdapter.kt 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/java/cc/shinichi/library/view/ImagePreviewFragment.kt 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/java/cc/shinichi/library/view/helper/DragCloseView.java 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/java/cc/shinichi/library/view/listener/OnBigImageClickListener.kt 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/java/cc/shinichi/library/view/listener/OnBigImageLongClickListener.kt 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/java/cc/shinichi/library/view/listener/OnBigImagePageChangeListener.kt 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/java/cc/shinichi/library/view/listener/OnCustomLayoutCallback.kt 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/java/cc/shinichi/library/view/listener/OnDownloadClickListener.kt 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/java/cc/shinichi/library/view/listener/OnDownloadListener.kt 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/java/cc/shinichi/library/view/listener/OnFinishListener.kt 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/java/cc/shinichi/library/view/listener/OnOriginProgressListener.kt 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/java/cc/shinichi/library/view/listener/OnPageDragListener.kt 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/java/cc/shinichi/library/view/listener/OnPageFinishListener.kt 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/java/cc/shinichi/library/view/listener/SimpleOnImageEventListener.kt 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/java/cc/shinichi/library/view/nine/AnimatorProxy.java 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/java/cc/shinichi/library/view/nine/ViewHelper.java 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/java/cc/shinichi/library/view/photoview/Compat.java 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/java/cc/shinichi/library/view/photoview/CustomGestureDetector.java 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/java/cc/shinichi/library/view/photoview/OnGestureListener.java 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/java/cc/shinichi/library/view/photoview/OnMatrixChangedListener.java 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/java/cc/shinichi/library/view/photoview/OnOutsidePhotoTapListener.java 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/java/cc/shinichi/library/view/photoview/OnPhotoTapListener.java 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/java/cc/shinichi/library/view/photoview/OnScaleChangedListener.java 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/java/cc/shinichi/library/view/photoview/OnSingleFlingListener.java 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/java/cc/shinichi/library/view/photoview/OnViewDragListener.java 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/java/cc/shinichi/library/view/photoview/OnViewTapListener.java 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/java/cc/shinichi/library/view/photoview/PhotoView.java 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/java/cc/shinichi/library/view/photoview/PhotoViewAttacher.java 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/java/cc/shinichi/library/view/photoview/Util.java 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/java/cc/shinichi/library/view/subsampling/ImageSource.java 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/java/cc/shinichi/library/view/subsampling/ImageViewState.java 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/java/cc/shinichi/library/view/subsampling/SubsamplingScaleImageView.java 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/java/cc/shinichi/library/view/subsampling/decoder/CompatDecoderFactory.java 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/java/cc/shinichi/library/view/subsampling/decoder/DecoderFactory.java 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/java/cc/shinichi/library/view/subsampling/decoder/ImageDecoder.java 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/java/cc/shinichi/library/view/subsampling/decoder/ImageRegionDecoder.java 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/java/cc/shinichi/library/view/subsampling/decoder/SkiaImageDecoder.java 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/java/cc/shinichi/library/view/subsampling/decoder/SkiaImageRegionDecoder.java 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/java/cc/shinichi/library/view/subsampling/decoder/SkiaPooledImageRegionDecoder.java 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/res/anim/fade_in.xml 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/res/anim/fade_out.xml 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/res/anim/scale_in.xml 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/res/anim/scale_out.xml 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/res/drawable-xhdpi/ic_action_close.png 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/res/drawable-xhdpi/icon_change_orientation.png 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/res/drawable-xhdpi/icon_download_new.png 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/res/drawable-xhdpi/icon_video_play.png 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/res/drawable-xhdpi/icon_video_stop.png 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/res/drawable-xhdpi/load_failed.png 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/res/drawable-xxhdpi/ic_action_close.png 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/res/drawable-xxhdpi/icon_change_orientation.png 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/res/drawable-xxhdpi/icon_download_new.png 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/res/drawable-xxhdpi/icon_video_play.png 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/res/drawable-xxhdpi/icon_video_stop.png 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/res/drawable-xxhdpi/load_failed.png 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/res/drawable/gray_circle_bg.xml 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/res/drawable/gray_square_circle_bg_white_stroke.xml 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/res/drawable/shape_indicator_bg.xml 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/res/layout/sh_default_progress_layout.xml 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/res/layout/sh_item_photoview.xml 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/res/layout/sh_layout_preview.xml 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/res/layout/sh_media_controller.xml 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/res/values-en-rUS/strings.xml 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/res/values/attrs.xml 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/res/values/ids.xml 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/res/values/strings.xml 补丁 | 查看 | 原始文档 | blame | 历史
bigimage_library/src/main/res/values/style.xml 补丁 | 查看 | 原始文档 | blame | 历史
expand_button/src/main/java/com/example/expand_button/ExpandButton.kt 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
settings.gradle 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/build.gradle
@@ -90,11 +90,12 @@
dependencies {
    implementation project(':expand_button')
    implementation(project(':library'))
    implementation implementation(project(':bigimage_library',))
    implementation project(':date_time_picker')
    implementation 'androidx.appcompat:appcompat:1.6.1'
    implementation 'com.google.android.material:material:1.8.0'
    implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
    implementation "androidx.activity:activity-ktx:1.7.1"
//    testImplementation 'junit:junit:4.13.2'
//    androidTestImplementation 'androidx.test.ext:junit:1.1.5'
//    androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
app/src/main/java/com/dayu/pipirrapp/activity/OrderDetailActivity.java
@@ -45,7 +45,6 @@
import java.util.List;
import java.util.Map;
import cc.shinichi.library.ImagePreview;
import cc.shinichi.library.bean.ImageInfo;
import cc.shinichi.library.bean.Type;
app/src/main/java/com/dayu/pipirrapp/dao/AppDatabase.java
@@ -9,6 +9,7 @@
import com.dayu.pipirrapp.bean.db.InspectionLocationBean;
import com.dayu.pipirrapp.bean.db.LoginBean;
import com.dayu.pipirrapp.bean.db.MarkerBean;
import com.dayu.pipirrapp.bean.db.PipeNetworkBean;
import com.dayu.pipirrapp.bean.db.TagBean;
@@ -18,7 +19,7 @@
 * Date: 2023-11-05 16:23
 * Description:
 */
@Database(entities = {DivideBean.class,InspectionBean.class,InspectionLocationBean.class, TagBean.class, LoginBean.class, CenterPointBean.class, MarkerBean.class}, version = 1, exportSchema = false)
@Database(entities = {PipeNetworkBean.class,DivideBean.class,InspectionBean.class,InspectionLocationBean.class, TagBean.class, LoginBean.class, CenterPointBean.class, MarkerBean.class}, version = 1, exportSchema = false)
public abstract class AppDatabase extends RoomDatabase {
@@ -36,4 +37,6 @@
    public abstract DivideDao divideDao();
    public abstract PipeNetDao pipeNetDao();
}
app/src/main/java/com/dayu/pipirrapp/dao/PipeNetDao.java
New file
@@ -0,0 +1,50 @@
package com.dayu.pipirrapp.dao;
import androidx.room.Delete;
import androidx.room.Insert;
import androidx.room.OnConflictStrategy;
import androidx.room.Query;
import androidx.room.Update;
import com.dayu.pipirrapp.bean.db.PipeNetworkBean;
import java.util.List;
import io.reactivex.rxjava3.core.Completable;
import io.reactivex.rxjava3.core.Maybe;
import io.reactivex.rxjava3.core.Single;
/**
 * 管网相关dao
 */
public interface PipeNetDao {
    @Insert(onConflict = OnConflictStrategy.REPLACE)
    void insert(PipeNetworkBean pipeNetworkBean);
    @Insert(onConflict = OnConflictStrategy.REPLACE)
    Completable insertAll(List<PipeNetworkBean> pipeNetworkBeans); // 使用 Completable 进行异步插入
//    @Insert(onConflict = OnConflictStrategy.REPLACE)
//    void insertAll(List<MarkerBean> markerBeans); // 使用 Completable 进行异步插入
    @Update
    void update(PipeNetworkBean pipeNetworkBean);
    @Delete
    void delete(PipeNetworkBean pipeNetworkBean);
    @Query("DELETE FROM PipeNetworkBean")
    void deleteAll();
    @Query("select  * from PipeNetworkBean limit 1")
    PipeNetworkBean findFirst();
    @Query("select  * from PipeNetworkBean")
    List<PipeNetworkBean> findAll();
    @Query("select  * from PipeNetworkBean")
    Single<List<PipeNetworkBean>> findAllToSingle();
    @Query("SELECT * FROM PipeNetworkBean")
    Maybe<List<PipeNetworkBean>> getAll();
}
app/src/main/java/com/dayu/pipirrapp/fragment/MapFragment.java
@@ -5,11 +5,9 @@
import android.content.Context;
import android.content.Intent;
import android.content.res.Resources;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
import android.util.Pair;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -42,7 +40,6 @@
import com.dayu.pipirrapp.bean.net.InspectionRequest;
import com.dayu.pipirrapp.bean.net.MarkerListResult;
import com.dayu.pipirrapp.bean.net.MarkerResult;
import com.dayu.pipirrapp.bean.net.PipeNetworkListResult;
import com.dayu.pipirrapp.bean.net.PipeNetworkResult;
import com.dayu.pipirrapp.dao.DaoSingleton;
import com.dayu.pipirrapp.databinding.FragmentMapBinding;
@@ -65,7 +62,6 @@
import com.dayu.pipirrapp.utils.WebViewUtils;
import com.dayu.pipirrapp.view.ConfirmDialog;
import com.dayu.pipirrapp.view.TipUtil;
import com.example.expand_button.ExpandButton;
import com.hjq.permissions.OnPermissionCallback;
import com.hjq.permissions.Permission;
import com.hjq.permissions.XXPermissions;
@@ -145,6 +141,7 @@
            getCenterPoint();
            getMarkerData();
            getDivideList();
            getPipeNetworkList();
        });
    }
@@ -237,6 +234,28 @@
                                for (DivideBean divide : divides) {
                                    divideBeanMap.put(divide.getId(), divide);
                                    setMapDivide(divide);
                                }
                            }
                        }, throwable -> {
                            Log.e(TAG, "Load divides error: " + throwable.getMessage());
                            getDivideList();
                        }, () -> {
                            // 当Maybe为空时调用
                            getDivideList();
                        })
        );
        //异步加载管网数据
        compositeDisposable.add(
                DaoSingleton.getAsynchInstance(this.getContext()).pipeNetDao().getAll()
                        .subscribeOn(Schedulers.io())
                        .observeOn(AndroidSchedulers.mainThread())
                        .subscribe(pipeNetworkBeans -> {
                            if (pipeNetworkBeans == null || pipeNetworkBeans.isEmpty()) {
                                getPipeNetworkList();
                            } else {
                                for (PipeNetworkBean pipeNetworkBean : pipeNetworkBeans) {
                                }
                            }
                        }, throwable -> {
@@ -1067,21 +1086,22 @@
     * 获取管网
     */
    private void getPipeNetworkList() {
        ApiManager.getInstance().requestGetHideLoading(MapFragment.this.getContext(), BASE_URL + "/project/network/all", PipeNetworkListResult.class, null, new SubscriberListener<BaseResponse<PipeNetworkListResult>>() {
        ApiManager.getInstance().requestGetHideLoading(MapFragment.this.getContext(), BASE_URL + "/project/network/all", PipeNetworkResult.class, null, new SubscriberListener<BaseResponse<List<PipeNetworkResult>>>() {
            @Override
            public void onNext(BaseResponse<PipeNetworkListResult> t) {
            public void onNext(BaseResponse<List<PipeNetworkResult>> t) {
                try {
                    if (t.isSuccess()) {
                        if (t.getContent().getObj() != null && !t.getContent().getObj().isEmpty()) {
                        if (t.getContent() != null && t.getContent().size() > 0) {
                            List<DivideBean> divideBeans = new ArrayList<>();
                            for (PipeNetworkResult divideResult : t.getContent().getObj()) {
                                PipeNetworkBean divideBean = getPipeNetworkBean(divideResult);
                                setMapDivide(divideBean);
//                                divideBeans.add(divideBean);
                            List<PipeNetworkBean> pipeNetBeans = new ArrayList<>();
                            PipeNetworkBean pipeNetBean = new PipeNetworkBean();
                            for (PipeNetworkResult pipeNetworkResult : t.getContent()) {
                                pipeNetBean.setNetworkId(pipeNetworkResult.getNetworkId());
                                pipeNetBean.setType(pipeNetworkResult.getType());
                                pipeNetBean.setData(pipeNetworkResult.getData());
                            }
                            // 使用 RxJava 异步插入数据
                            DaoSingleton.getAsynchInstance(MapFragment.this.getContext()).divideDao().insertAll(divideBeans)
                            DaoSingleton.getAsynchInstance(MapFragment.this.getContext()).pipeNetDao().insertAll(pipeNetBeans)
                                    .subscribeOn(Schedulers.io()) // 在 IO 线程上执行
                                    .observeOn(AndroidSchedulers.mainThread()) // 在主线程上观察
                                    .subscribe(() -> {
bigimage_library/.gitignore
bigimage_library/build.gradle
File was renamed from library/build.gradle
@@ -23,6 +23,7 @@
dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    compileOnly "androidx.activity:activity-ktx:1.7.1"
    compileOnly 'androidx.appcompat:appcompat:1.4.1'
    compileOnly 'com.google.android.material:material:1.5.0'
    compileOnly 'androidx.exifinterface:exifinterface:1.3.5'
bigimage_library/proguard-rules.pro
bigimage_library/src/main/AndroidManifest.xml
bigimage_library/src/main/java/cc/shinichi/library/GlobalContext.kt
bigimage_library/src/main/java/cc/shinichi/library/ImagePreview.kt
bigimage_library/src/main/java/cc/shinichi/library/InitProvider.kt
bigimage_library/src/main/java/cc/shinichi/library/bean/ImageInfo.kt
bigimage_library/src/main/java/cc/shinichi/library/glide/FileTarget.kt
bigimage_library/src/main/java/cc/shinichi/library/glide/ImageLoader.kt
bigimage_library/src/main/java/cc/shinichi/library/glide/SSLSocketClient.kt
bigimage_library/src/main/java/cc/shinichi/library/glide/cache/DataCacheKey.kt
bigimage_library/src/main/java/cc/shinichi/library/glide/cache/SafeKeyGenerator.kt
bigimage_library/src/main/java/cc/shinichi/library/glide/progress/OnProgressListener.kt
bigimage_library/src/main/java/cc/shinichi/library/glide/progress/ProgressLibraryGlideModule.kt
bigimage_library/src/main/java/cc/shinichi/library/glide/progress/ProgressManager.kt
bigimage_library/src/main/java/cc/shinichi/library/glide/progress/ProgressResponseBody.kt
bigimage_library/src/main/java/cc/shinichi/library/tool/common/DeviceUtil.kt
bigimage_library/src/main/java/cc/shinichi/library/tool/common/HandlerHolder.kt
bigimage_library/src/main/java/cc/shinichi/library/tool/common/HttpUtil.kt
bigimage_library/src/main/java/cc/shinichi/library/tool/common/NetworkUtil.kt
bigimage_library/src/main/java/cc/shinichi/library/tool/common/PhoneUtil.kt
bigimage_library/src/main/java/cc/shinichi/library/tool/common/SLog.kt
bigimage_library/src/main/java/cc/shinichi/library/tool/common/ToastUtil.kt
bigimage_library/src/main/java/cc/shinichi/library/tool/common/UIUtil.kt
bigimage_library/src/main/java/cc/shinichi/library/tool/file/FileUtil.kt
bigimage_library/src/main/java/cc/shinichi/library/tool/file/SingleMediaScanner.kt
bigimage_library/src/main/java/cc/shinichi/library/tool/image/DownloadUtil.kt
bigimage_library/src/main/java/cc/shinichi/library/tool/image/ImageUtil.kt
bigimage_library/src/main/java/cc/shinichi/library/view/HackyViewPager.kt
bigimage_library/src/main/java/cc/shinichi/library/view/ImagePreviewActivity.kt
bigimage_library/src/main/java/cc/shinichi/library/view/ImagePreviewAdapter.kt
bigimage_library/src/main/java/cc/shinichi/library/view/ImagePreviewFragment.kt
bigimage_library/src/main/java/cc/shinichi/library/view/helper/DragCloseView.java
bigimage_library/src/main/java/cc/shinichi/library/view/listener/OnBigImageClickListener.kt
bigimage_library/src/main/java/cc/shinichi/library/view/listener/OnBigImageLongClickListener.kt
bigimage_library/src/main/java/cc/shinichi/library/view/listener/OnBigImagePageChangeListener.kt
bigimage_library/src/main/java/cc/shinichi/library/view/listener/OnCustomLayoutCallback.kt
bigimage_library/src/main/java/cc/shinichi/library/view/listener/OnDownloadClickListener.kt
bigimage_library/src/main/java/cc/shinichi/library/view/listener/OnDownloadListener.kt
bigimage_library/src/main/java/cc/shinichi/library/view/listener/OnFinishListener.kt
bigimage_library/src/main/java/cc/shinichi/library/view/listener/OnOriginProgressListener.kt
bigimage_library/src/main/java/cc/shinichi/library/view/listener/OnPageDragListener.kt
bigimage_library/src/main/java/cc/shinichi/library/view/listener/OnPageFinishListener.kt
bigimage_library/src/main/java/cc/shinichi/library/view/listener/SimpleOnImageEventListener.kt
bigimage_library/src/main/java/cc/shinichi/library/view/nine/AnimatorProxy.java
bigimage_library/src/main/java/cc/shinichi/library/view/nine/ViewHelper.java
bigimage_library/src/main/java/cc/shinichi/library/view/photoview/Compat.java
bigimage_library/src/main/java/cc/shinichi/library/view/photoview/CustomGestureDetector.java
bigimage_library/src/main/java/cc/shinichi/library/view/photoview/OnGestureListener.java
bigimage_library/src/main/java/cc/shinichi/library/view/photoview/OnMatrixChangedListener.java
bigimage_library/src/main/java/cc/shinichi/library/view/photoview/OnOutsidePhotoTapListener.java
bigimage_library/src/main/java/cc/shinichi/library/view/photoview/OnPhotoTapListener.java
bigimage_library/src/main/java/cc/shinichi/library/view/photoview/OnScaleChangedListener.java
bigimage_library/src/main/java/cc/shinichi/library/view/photoview/OnSingleFlingListener.java
bigimage_library/src/main/java/cc/shinichi/library/view/photoview/OnViewDragListener.java
bigimage_library/src/main/java/cc/shinichi/library/view/photoview/OnViewTapListener.java
bigimage_library/src/main/java/cc/shinichi/library/view/photoview/PhotoView.java
bigimage_library/src/main/java/cc/shinichi/library/view/photoview/PhotoViewAttacher.java
bigimage_library/src/main/java/cc/shinichi/library/view/photoview/Util.java
bigimage_library/src/main/java/cc/shinichi/library/view/subsampling/ImageSource.java
bigimage_library/src/main/java/cc/shinichi/library/view/subsampling/ImageViewState.java
bigimage_library/src/main/java/cc/shinichi/library/view/subsampling/SubsamplingScaleImageView.java
bigimage_library/src/main/java/cc/shinichi/library/view/subsampling/decoder/CompatDecoderFactory.java
bigimage_library/src/main/java/cc/shinichi/library/view/subsampling/decoder/DecoderFactory.java
bigimage_library/src/main/java/cc/shinichi/library/view/subsampling/decoder/ImageDecoder.java
bigimage_library/src/main/java/cc/shinichi/library/view/subsampling/decoder/ImageRegionDecoder.java
bigimage_library/src/main/java/cc/shinichi/library/view/subsampling/decoder/SkiaImageDecoder.java
bigimage_library/src/main/java/cc/shinichi/library/view/subsampling/decoder/SkiaImageRegionDecoder.java
bigimage_library/src/main/java/cc/shinichi/library/view/subsampling/decoder/SkiaPooledImageRegionDecoder.java
bigimage_library/src/main/res/anim/fade_in.xml
bigimage_library/src/main/res/anim/fade_out.xml
bigimage_library/src/main/res/anim/scale_in.xml
bigimage_library/src/main/res/anim/scale_out.xml
bigimage_library/src/main/res/drawable-xhdpi/ic_action_close.png

bigimage_library/src/main/res/drawable-xhdpi/icon_change_orientation.png

bigimage_library/src/main/res/drawable-xhdpi/icon_download_new.png

bigimage_library/src/main/res/drawable-xhdpi/icon_video_play.png

bigimage_library/src/main/res/drawable-xhdpi/icon_video_stop.png

bigimage_library/src/main/res/drawable-xhdpi/load_failed.png

bigimage_library/src/main/res/drawable-xxhdpi/ic_action_close.png

bigimage_library/src/main/res/drawable-xxhdpi/icon_change_orientation.png

bigimage_library/src/main/res/drawable-xxhdpi/icon_download_new.png

bigimage_library/src/main/res/drawable-xxhdpi/icon_video_play.png

bigimage_library/src/main/res/drawable-xxhdpi/icon_video_stop.png

bigimage_library/src/main/res/drawable-xxhdpi/load_failed.png

bigimage_library/src/main/res/drawable/gray_circle_bg.xml
bigimage_library/src/main/res/drawable/gray_square_circle_bg_white_stroke.xml
bigimage_library/src/main/res/drawable/shape_indicator_bg.xml
bigimage_library/src/main/res/layout/sh_default_progress_layout.xml
bigimage_library/src/main/res/layout/sh_item_photoview.xml
bigimage_library/src/main/res/layout/sh_layout_preview.xml
bigimage_library/src/main/res/layout/sh_media_controller.xml
bigimage_library/src/main/res/values-en-rUS/strings.xml
bigimage_library/src/main/res/values/attrs.xml
bigimage_library/src/main/res/values/ids.xml
bigimage_library/src/main/res/values/strings.xml
bigimage_library/src/main/res/values/style.xml
expand_button/src/main/java/com/example/expand_button/ExpandButton.kt
@@ -86,6 +86,14 @@
    // 添加一个属性定义三角形图标的点击区域扩展范围
    private val triangleClickPadding: Float = 15f * context.resources.displayMetrics.density // 20dp
    // 添加一个标识符,用于区分不同的 ExpandButton 实例
    private var buttonId: String = "default"
    companion object {
        private const val PREFS_NAME = "expand_button_prefs"
        private const val KEY_LEGEND_STATES = "legend_states"
    }
    init {
        // 保存 XML 中设置的默认字体大小
        defaultTextSize = textSize
@@ -485,6 +493,43 @@
    }
    /**
     * 设置按钮的唯一标识符
     * @param id 标识符
     */
    fun setButtonId(id: String) {
        this.buttonId = id
        // 加载保存的状态
        loadStates()
    }
    /**
     * 保存所有图例项的状态
     */
    private fun saveStates() {
        val prefs = context.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE)
        val states = legendItems.map { it.isSelected }
        prefs.edit().putString("${KEY_LEGEND_STATES}_$buttonId", states.joinToString(",")).apply()
    }
    /**
     * 加载保存的状态
     */
    private fun loadStates() {
        val prefs = context.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE)
        val savedStates = prefs.getString("${KEY_LEGEND_STATES}_$buttonId", null)
        if (savedStates != null && legendItems.isNotEmpty()) {
            val states = savedStates.split(",").map { it.toBoolean() }
            states.forEachIndexed { index, state ->
                if (index < legendItems.size) {
                    legendItems[index].isSelected = state
                }
            }
            invalidate()
        }
    }
    /**
     * 设置图例内容
     */
    @JvmName("setLegendsList")
@@ -494,6 +539,9 @@
            unselectedIcon.setBounds(0, 0, iconSize, iconSize)
            LegendItem(selectedIcon, unselectedIcon, description)
        }
        // 加载保存的状态
        loadStates()
        
        if (!isExpanded) {
            text = collapsedText
@@ -587,6 +635,10 @@
            index, 
            legendItems[index].isSelected
        )
        // 保存状态
        saveStates()
        invalidate()
    }
settings.gradle
@@ -1,5 +1,5 @@
rootProject.name = "pipIrrApp"
include ':app'
include ':expand_button'
include ':library'
include ':bigimage_library'
include ':date_time_picker'