Delete TransferService revert to native DL/UP

This commit is contained in:
lionel 2021-01-12 11:26:36 +01:00
parent 5388ef79eb
commit bb63f3b623
6 changed files with 62 additions and 156 deletions

43
.idea/misc.xml generated
View File

@ -1,5 +1,48 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="NullableNotNullManager">
<option name="myDefaultNullable" value="org.jetbrains.annotations.Nullable" />
<option name="myDefaultNotNull" value="androidx.annotation.NonNull" />
<option name="myNullables">
<value>
<list size="14">
<item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.Nullable" />
<item index="1" class="java.lang.String" itemvalue="edu.umd.cs.findbugs.annotations.Nullable" />
<item index="2" class="java.lang.String" itemvalue="android.support.annotation.Nullable" />
<item index="3" class="java.lang.String" itemvalue="androidx.annotation.Nullable" />
<item index="4" class="java.lang.String" itemvalue="androidx.annotation.RecentlyNullable" />
<item index="5" class="java.lang.String" itemvalue="com.android.annotations.Nullable" />
<item index="6" class="java.lang.String" itemvalue="javax.annotation.Nullable" />
<item index="7" class="java.lang.String" itemvalue="javax.annotation.CheckForNull" />
<item index="8" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.qual.Nullable" />
<item index="9" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NullableDecl" />
<item index="10" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NullableType" />
<item index="11" class="java.lang.String" itemvalue="org.eclipse.jdt.annotation.Nullable" />
<item index="12" class="java.lang.String" itemvalue="io.reactivex.annotations.Nullable" />
<item index="13" class="java.lang.String" itemvalue="io.reactivex.rxjava3.annotations.Nullable" />
</list>
</value>
</option>
<option name="myNotNulls">
<value>
<list size="13">
<item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.NotNull" />
<item index="1" class="java.lang.String" itemvalue="edu.umd.cs.findbugs.annotations.NonNull" />
<item index="2" class="java.lang.String" itemvalue="android.support.annotation.NonNull" />
<item index="3" class="java.lang.String" itemvalue="androidx.annotation.NonNull" />
<item index="4" class="java.lang.String" itemvalue="androidx.annotation.RecentlyNonNull" />
<item index="5" class="java.lang.String" itemvalue="com.android.annotations.NonNull" />
<item index="6" class="java.lang.String" itemvalue="javax.annotation.Nonnull" />
<item index="7" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.qual.NonNull" />
<item index="8" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NonNullDecl" />
<item index="9" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NonNullType" />
<item index="10" class="java.lang.String" itemvalue="org.eclipse.jdt.annotation.NonNull" />
<item index="11" class="java.lang.String" itemvalue="io.reactivex.annotations.NonNull" />
<item index="12" class="java.lang.String" itemvalue="io.reactivex.rxjava3.annotations.NonNull" />
</list>
</value>
</option>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" />
</component>

View File

@ -14,9 +14,6 @@
android:supportsRtl="true"
android:theme="@style/AppTheme">
<service
android:name=".TransferService" />
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="${applicationId}"

View File

@ -1,58 +0,0 @@
package com.localtransfer;
import android.net.Uri;
import android.os.Parcel;
import android.os.Parcelable;
import android.view.View;
public class Extra implements Parcelable {
public static final Parcelable.Creator CREATOR = new Parcelable.Creator() {
public Extra createFromParcel(Parcel in) {
return new Extra(in);
}
public Extra[] newArray(int size) {
return new Extra[size];
}
};
public String name;
public long size;
public String href;
public String uri;
public int id;
// Constructor
public Extra(Uri uri, String name, long size, String href, View view){
this.uri = uri.toString();
this.name = name;
this.size = size;
this.href = href;
this.id = view.getId();
}
// Parcelling part
public Extra(Parcel in){
this.uri = in.readString();
this.name = in.readString();
this.size = in.readLong();
this.href = in.readString();
this.id = in.readInt();
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(this.uri);
dest.writeString(this.name);
dest.writeLong(this.size);
dest.writeString(this.href);
dest.writeInt(this.id);
}
}

View File

@ -1,75 +0,0 @@
package com.localtransfer;
import android.app.IntentService;
import android.content.Intent;
import android.net.Uri;
import android.widget.Button;
import android.widget.LinearLayout;
import java.io.IOException;
public class TransferService extends IntentService {
public static final String ACTION_UPLOAD = "com.localtransfer.action.FOO";
public static final String ACTION_DOWNLOAD = "com.localtransfer.action.BAZ";
public static final String EXTRA_URI = "com.localtransfer.extra.URI";
public static final String EXTRA = "com.localtransfer.extra.EXTRA";
public TransferService() {
super("TransferService");
}
@Override
protected void onHandleIntent(Intent intent) {
if (intent != null) {
final String action = intent.getAction();
switch (action) {
case ACTION_UPLOAD:
handleUpload(intent);
break;
case ACTION_DOWNLOAD:
handleDownload(intent);
break;
}
}
}
private void handleUpload(Intent intent) {
final Uri uri = intent.getParcelableExtra(EXTRA_URI);
Transfer tr = new Transfer();
try {
tr.uploadFile(uri);
} catch (IOException e) {
final String ExceptionName = e.getClass().getSimpleName();
final String ExceptionMess = e.getMessage();
if(ExceptionName != null && ExceptionMess != null) {
Transfer.error(ExceptionName + ": " + ExceptionMess, null, null);
}
}
}
private void handleDownload(Intent intent) {
Extra ex = (Extra) intent.getExtras().getParcelable(EXTRA);
final LinearLayout layout = Transfer.activity.findViewById(ex.id);
Button button = null;
if(layout != null)
button = layout.findViewById(R.id.file_download);
Transfer tr = new Transfer();
try {
tr.downloadFile(Uri.parse(ex.uri), ex.name, ex.size, ex.href, button);
} catch (IOException e) {
final String ExceptionName = e.getClass().getSimpleName();
final String ExceptionMess = e.getMessage();
if(ExceptionName != null && ExceptionMess != null) {
Transfer.error(ExceptionName + ": " + ExceptionMess, null, null);
}
}
}
}

View File

@ -12,8 +12,6 @@ import androidx.fragment.app.Fragment;
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
import android.os.Environment;
import android.os.Parcelable;
import android.util.Log;
import android.view.ContextMenu;
import android.view.Gravity;
import android.view.LayoutInflater;
@ -23,18 +21,15 @@ import android.view.ViewGroup;
import android.view.animation.Animation;
import android.view.animation.LinearInterpolator;
import android.widget.Button;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.google.android.material.snackbar.Snackbar;
import com.localtransfer.BuildConfig;
import com.localtransfer.Extra;
import com.localtransfer.Progress;
import com.localtransfer.R;
import com.localtransfer.Transfer;
import com.localtransfer.TransferService;
import org.json.JSONArray;
import org.json.JSONException;
@ -46,8 +41,6 @@ import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.text.CharacterIterator;
import java.text.StringCharacterIterator;
import java.util.ArrayList;
import java.util.List;
import java.util.Timer;
@ -301,6 +294,8 @@ public class DownloadFragment extends Fragment {
private View.OnClickListener ListenerDL = v -> {
v.setEnabled(false);
final LinearLayout layout = (LinearLayout) v.getParent();
final Button button = layout.findViewById(R.id.file_download);
final String name = (String) layout.getTag(R.id.ID_FILE_NAME);
final String save_location = String.valueOf(layout.getTag(R.id.ID_SAVE_LOCATION));
final long fileSize = (long) layout.getTag(R.id.ID_FILE_SIZE);
@ -309,11 +304,21 @@ public class DownloadFragment extends Fragment {
new File(save_location).mkdirs();
Uri uri = Uri.fromFile(new File(save_location, name));
Intent intent = new Intent(getActivity(), TransferService.class);
intent.setAction(TransferService.ACTION_DOWNLOAD);
intent.putExtra(TransferService.EXTRA, new Extra(uri, name, fileSize, href, layout));
getActivity().startService(intent);
Transfer tr = new Transfer();
new Thread(() -> {
try {
tr.downloadFile(uri, name, fileSize, href, button);
} catch (IOException e) {
final String ExceptionName = e.getClass().getSimpleName();
final String ExceptionMess = e.getMessage();
if(ExceptionName != null && ExceptionMess != null) {
Transfer.error(ExceptionName + ": " + ExceptionMess, null, null);
}
}
}).start();
};
private View.OnClickListener ListenerShare = v -> {
@ -392,12 +397,12 @@ public class DownloadFragment extends Fragment {
private List<View> getAllChildren(View v) {
if (!(v instanceof ViewGroup)) {
ArrayList<View> viewArrayList = new ArrayList<View>();
ArrayList<View> viewArrayList = new ArrayList<>();
viewArrayList.add(v);
return viewArrayList;
}
ArrayList<View> result = new ArrayList<View>();
ArrayList<View> result = new ArrayList<>();
ViewGroup viewGroup = (ViewGroup) v;
for (int i = 0; i < viewGroup.getChildCount(); i++) {

View File

@ -15,10 +15,8 @@ import android.view.ViewGroup;
import android.widget.Button;
import android.widget.Toast;
import com.localtransfer.MainActivity;
import com.localtransfer.R;
import com.localtransfer.Transfer;
import com.localtransfer.TransferService;
import java.util.ArrayList;
@ -91,11 +89,7 @@ public class UploadFragment extends Fragment {
fileUris.add(uri);
}
for (Uri uri : fileUris) {
Intent intent = new Intent(getActivity(), TransferService.class);
intent.setAction(TransferService.ACTION_UPLOAD);
intent.putExtra(TransferService.EXTRA_URI, uri);
getActivity().startService(intent);
//tr.handleSendFile(uri);
tr.handleSendFile(uri);
}
}
}