Jelajahi Sumber

1.修改RA Image Android上传列表更新。

Pen Li 8 tahun lalu
induk
melakukan
336fbda3c0

+ 1 - 0
RA Image/app/app.iml

@@ -89,6 +89,7 @@
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/instant-run-support" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/jniLibs" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/manifests" />
+      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/pre-dexed" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/reload-dex" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/res" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/restart-dex" />

+ 63 - 1
RA Image/app/src/main/java/com/usai/redant/raimage/UploadList/UploadListActivity.java

@@ -1,15 +1,19 @@
 package com.usai.redant.raimage.UploadList;
 
 import android.content.BroadcastReceiver;
+import android.content.ComponentName;
 import android.content.Context;
 import android.content.Intent;
 import android.content.IntentFilter;
+import android.content.ServiceConnection;
+import android.os.IBinder;
 import android.support.annotation.NonNull;
 import android.support.annotation.Nullable;
 import android.support.v4.content.LocalBroadcastManager;
 import android.support.v7.app.ActionBar;
 import android.support.v7.app.AppCompatActivity;
 import android.os.Bundle;
+import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.MenuItem;
 import android.view.View;
@@ -20,16 +24,45 @@ import android.widget.ProgressBar;
 import android.widget.TextView;
 
 import com.usai.redant.raimage.R;
+import com.usai.redant.raimage.UploadService;
+import com.usai.util.RAUploadManager;
 
+import java.util.ArrayList;
 import java.util.List;
 
 public class UploadListActivity extends AppCompatActivity {
 
     private ListView uploadList;
     private uploadAdapter adapter;
+    private ArrayList<Bundle> arr;
 
     private LocalBroadcastManager broadcastManager;
     private UploadBroadcastReceiver broadcastReceiver;
+
+    private RAUploadManager uploadManager;
+    private UploadService.MyBinder binder;
+    private UploadService uploadServiceservice;
+    private boolean serviceConnectionFlag = false; // 绑定服务标识
+    private ServiceConnection serviceConnection;
+    private RAUploadManager.UIUpdateListener uiUpdateListener = new RAUploadManager.UIUpdateListener() {
+        @Override
+        public void onProgress(long index, double percentage) {
+
+            Log.d("Upload Progress", " " + percentage);
+//            Object item = uploadList.getItemAtPosition((int) index);
+            int startShowIndex = uploadList.getFirstVisiblePosition();
+            int lastShowIndex = uploadList.getLastVisiblePosition();
+
+            if (index >= startShowIndex && index <= lastShowIndex) {
+                View cell = uploadList.getChildAt((int)index - startShowIndex);
+                uploadAdapter.ViewHolder holder= (uploadAdapter.ViewHolder)cell.getTag();
+                holder.progressBar.setProgress((int) (100 * percentage));
+                holder.progress_tv.setText(String.format("%.1f%%",percentage));
+            }
+
+        }
+    };
+
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
@@ -50,7 +83,29 @@ public class UploadListActivity extends AppCompatActivity {
         // 初始化视图
         uploadList = (ListView)findViewById(R.id.upload_list);
 
-        uploadList.setAdapter(adapter);
+        serviceConnection = new ServiceConnection() {
+            @Override
+            public void onServiceConnected(ComponentName name, IBinder service) {
+                serviceConnectionFlag = true;
+
+                binder = (UploadService.MyBinder)service;
+                uploadServiceservice = binder.getService();
+
+                uploadManager = uploadServiceservice.uploadManager;
+                uploadManager.uiUpdateListener = uiUpdateListener;
+                arr = uploadManager.arr_queue;
+
+                adapter = new uploadAdapter(UploadListActivity.this,R.layout.upload_list_cell,arr);
+                uploadList.setAdapter(adapter);
+            }
+
+            @Override
+            public void onServiceDisconnected(ComponentName name) {
+                serviceConnectionFlag = false;
+            }
+        };
+
+        bindService();
 
 
     }
@@ -109,6 +164,7 @@ public class UploadListActivity extends AppCompatActivity {
         }
     }
 
+    /** Broadcast */
     private class UploadBroadcastReceiver extends BroadcastReceiver {
         @Override
         public void onReceive(Context context, Intent intent) {
@@ -123,4 +179,10 @@ public class UploadListActivity extends AppCompatActivity {
             }
         }
     }
+
+    /** Service */
+    private void bindService() {
+        Intent intent = new Intent("com.usai.raimage.uploadservice");
+        bindService(intent, serviceConnection, Context.BIND_AUTO_CREATE);
+    }
 }

+ 1 - 1
RA Image/app/src/main/java/com/usai/util/RAUploadManager.java

@@ -108,7 +108,7 @@ public class RAUploadManager {
                         Log.d("", "onFinish: ");
 
                     }
-                })
+                });
 
 //                int a=0;
 //                System.out.println(a+"running  tid="+Thread.currentThread().getId());

+ 2 - 2
RA Image/app/src/main/res/layout/upload_list_cell.xml

@@ -24,7 +24,7 @@
         style="@style/Widget.AppCompat.ProgressBar.Horizontal"
         android:layout_below="@id/upload_name_tv"
         android:max="100"
-        android:progress="50"
+        android:progress="0"
         />
 
     <TextView
@@ -45,7 +45,7 @@
         android:layout_below="@id/upload_progressBar"
         android:layout_alignTop="@id/upload_state_tv"
         android:layout_alignRight="@id/upload_progressBar"
-        android:text="99.9%"
+        android:text=""
         />
 
     <TextView