Skip to content

Commit

Permalink
Started working on an UploadWorker.
Browse files Browse the repository at this point in the history
  • Loading branch information
pla1 committed Jul 25, 2019
1 parent 523c988 commit 0b15b06
Show file tree
Hide file tree
Showing 9 changed files with 93 additions and 33 deletions.
15 changes: 8 additions & 7 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ android {
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
Expand All @@ -20,12 +20,13 @@ android {

dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
implementation 'com.android.support:support-v4:28.0.0'
implementation 'android.arch.lifecycle:extensions:1.1.1'
implementation 'androidx.appcompat:appcompat:1.0.2'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'androidx.lifecycle:lifecycle-extensions:2.0.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
androidTestImplementation 'androidx.test:runner:1.2.0'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
implementation 'com.google.code.gson:gson:2.8.5'
implementation "androidx.work:work-runtime:2.1.0"
}
4 changes: 3 additions & 1 deletion app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.fediphoto">

<uses-feature
Expand All @@ -16,6 +17,7 @@
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">

<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
Expand All @@ -41,7 +43,7 @@
</intent-filter>
</activity>
<provider
android:name="android.support.v4.content.FileProvider"
android:name="androidx.core.content.FileProvider"
android:authorities="com.fediphoto.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
Expand Down
7 changes: 7 additions & 0 deletions app/src/main/java/com/fediphoto/AccountActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,13 @@ protected void onCreate(Bundle savedInstanceState) {
textViewUserUrl.setText(Utils.getProperty(account, MainActivity.Literals.me.name()));
final EditText editTextText = findViewById(R.id.editTextText);
editTextText.setText(Utils.getProperty(account, MainActivity.Literals.text.name()));
final RadioButton radioVisibilityDirect = findViewById(R.id.radioVisibilityDirect);
final RadioButton radioVisibilityUnlisted = findViewById(R.id.radioVisibilityUnlisted);
final RadioButton radioVisibilityFollowers = findViewById(R.id.radioVisibilityFollowers);
final RadioButton radioVisibilityPublic = findViewById(R.id.radioVisibilityPublic);
if (MainActivity.Literals.direct.name().equals(Utils.getProperty(account, MainActivity.Literals.visibility.name()))) {
radioVisibilityDirect.setChecked(true);
}
if (MainActivity.Literals.followers.name().equals(Utils.getProperty(account, MainActivity.Literals.visibility.name()))) {
radioVisibilityFollowers.setChecked(true);
}
Expand Down Expand Up @@ -79,6 +83,9 @@ public void onClick(View view) {
accountJsonObject.addProperty(MainActivity.Literals.text.name(), editTextText.getText().toString());
accountJsonObject.addProperty(MainActivity.Literals.dateFormat.name(), editTextDateFormat.getText().toString());
accountJsonObject.addProperty(MainActivity.Literals.gpsCoordinatesFormat.name(), editTextGpsCoordinatesFormat.getText().toString());
if (radioVisibilityDirect.isChecked()) {
accountJsonObject.addProperty(MainActivity.Literals.visibility.name(), MainActivity.Literals.direct.name());
}
if (radioVisibilityFollowers.isChecked()) {
accountJsonObject.addProperty(MainActivity.Literals.visibility.name(), MainActivity.Literals.followers.name());
}
Expand Down
49 changes: 28 additions & 21 deletions app/src/main/java/com/fediphoto/MainActivity.java
Original file line number Diff line number Diff line change
@@ -1,26 +1,33 @@
package com.fediphoto;

import android.Manifest;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.graphics.Bitmap;
import android.media.ExifInterface;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Environment;
import android.os.StrictMode;
import android.preference.PreferenceManager;
import android.provider.MediaStore;
import android.support.v4.app.ActivityCompat;
import android.support.v4.content.ContextCompat;
import android.support.v4.content.FileProvider;
import android.support.v7.app.AppCompatActivity;

import androidx.annotation.NonNull;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import androidx.core.content.FileProvider;
import androidx.appcompat.app.AppCompatActivity;
import androidx.work.Data;
import androidx.work.OneTimeWorkRequest;
import androidx.work.WorkManager;
import androidx.work.Worker;
import androidx.work.WorkerParameters;

import android.text.InputType;
import android.util.Log;
import android.view.Menu;
Expand Down Expand Up @@ -48,14 +55,9 @@
import java.io.PrintWriter;
import java.math.BigInteger;
import java.net.URL;
import java.nio.file.Paths;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Random;
import java.util.zip.DataFormatException;

import javax.net.ssl.HttpsURLConnection;

Expand Down Expand Up @@ -109,14 +111,16 @@ public void onClick(View view) {
checkPermissionCamera();
checkPermissionStorage();
JsonObject settings = Utils.getSettings(context);
boolean cameraOnStart = false;
if (!Utils.isJsonObject(settings)
|| settings.getAsJsonArray(Literals.accounts.name()) == null
|| settings.getAsJsonArray(Literals.accounts.name()).size() == 0) {
askForInstance();
} else {
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
cameraOnStart = sharedPreferences.getBoolean(getString(R.string.camera_on_start), false);
}
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
boolean cameraOnStart = sharedPreferences.getBoolean(getString(R.string.camera_on_start), true);
Log.i(TAG, String.format("Camera on start setting: %s",cameraOnStart));
Log.i(TAG, String.format("Camera on start setting: %s", cameraOnStart));
if (cameraOnStart) {
dispatchTakePictureIntent();
}
Expand Down Expand Up @@ -200,17 +204,23 @@ private File createPhotoFile() throws IOException {

protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
Log.i(TAG, String.format("Request code %d Result code %d", requestCode, resultCode));
if (requestCode == CAMERA_REQUEST ) {
if (requestCode == CAMERA_REQUEST) {
if (resultCode == Activity.RESULT_OK) {
Log.i(TAG, "Camera request returned OK.");
File file = new File(photoFileName);
Log.i(TAG, String.format("File %s exists %s", file.getAbsoluteFile(), file.exists()));
WorkerUpload worker = new WorkerUpload();
@SuppressLint("RestrictedApi")
Data data = new Data.Builder().put(Literals.fileName.name(), file.getAbsolutePath()).build();
worker.execute(file);
OneTimeWorkRequest uploadWorkRequest = new OneTimeWorkRequest
.Builder(UploadWorker.class)
.setInputData(data).build();
WorkManager.getInstance(context).enqueue(uploadWorkRequest);
} else {
File file = new File(photoFileName);
boolean fileDeleted = file.delete();
Log.i(TAG, String.format("File %s deleted %s", photoFileName, fileDeleted));
Log.i(TAG, String.format("File %s deleted %s", photoFileName, fileDeleted));
}

}
Expand Down Expand Up @@ -238,7 +248,7 @@ public static enum Literals {
client_name, redirect_uris, scopes, website, access_token, POST, urlString, authorization_code,
token, client_id, client_secret, redirect_uri, me, exipires_in, created_at, milliseconds,
grant_type, code, accounts, account, instance, text, followers, visibility, unlisted, PUBLIC, dateFormat,
OK, Cancel, description, file, media_ids, id, status, url, longitude, latitude, gpsCoordinatesFormat
OK, Cancel, description, file, media_ids, id, status, url, longitude, latitude, gpsCoordinatesFormat, direct, fileName
}


Expand Down Expand Up @@ -456,7 +466,7 @@ protected void onPostExecute(JsonObject jsonObject) {
}
}

// TODO look at using this https://developer.android.com/topic/libraries/architecture/workmanager/basics.html
// TODO look at using this https://developer.android.com/topic/libraries/architecture/workmanager/basics.html
class WorkerUpload extends AsyncTask<File, Void, JsonElement> {
private File file;

Expand Down Expand Up @@ -658,7 +668,4 @@ public boolean onOptionsItemSelected(MenuItem item) {
}
}




}
36 changes: 36 additions & 0 deletions app/src/main/java/com/fediphoto/UploadWorker.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
package com.fediphoto;

import android.content.Context;
import android.util.Log;

import androidx.annotation.NonNull;
import androidx.work.Data;
import androidx.work.Worker;
import androidx.work.WorkerParameters;

import java.io.File;
import java.util.Date;

public class UploadWorker extends Worker {
private final String TAG = this.getClass().getCanonicalName();

public UploadWorker(@NonNull Context context, @NonNull WorkerParameters params) {
super(context, params);
}

@Override
public Result doWork() {
Log.i(TAG, String.format("UploadWorker test started %s", new Date()));
Data data = getInputData();
String fileName = data.getString(MainActivity.Literals.fileName.name());
File file = new File(fileName);
Log.i(TAG, String.format("File name %s file exists %s", fileName, file.exists()));
try {
Thread.sleep(1000 * 60);
} catch (InterruptedException e) {
e.printStackTrace();
}
Log.i(TAG, String.format("UploadWorker test finished %s", new Date()));
return Result.success();
}
}
5 changes: 5 additions & 0 deletions app/src/main/res/layout/activity_account.xml
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,11 @@
android:text="Post visibility:" />

<RadioGroup android:layout_width="match_parent" android:layout_height="wrap_content">
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/radioVisibilityDirect"
android:text="Direct"/>
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
Expand Down
4 changes: 2 additions & 2 deletions app/src/main/res/layout/activity_main.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
Expand All @@ -13,4 +13,4 @@

</Button>

</android.support.constraint.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
4 changes: 2 additions & 2 deletions app/src/main/res/layout/activity_settings.xml
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".SettingsActivity">

</android.support.constraint.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
2 changes: 2 additions & 0 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@
# http://www.gradle.org/docs/current/userguide/build_environment.html
# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
android.enableJetifier=true
android.useAndroidX=true
org.gradle.jvmargs=-Xmx1536m
# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
Expand Down

0 comments on commit 0b15b06

Please sign in to comment.