diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml
index 2370474..35ffc9d 100644
--- a/.idea/jarRepositories.xml
+++ b/.idea/jarRepositories.xml
@@ -26,5 +26,10 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 6199cc2..3a2f2b4 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,5 +1,8 @@
+
+
+
diff --git a/app/build.gradle b/app/build.gradle
index 7143f04..50f56cc 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -34,10 +34,11 @@ dependencies {
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation 'com.android.support:palette-v7:29.0.0'
+ implementation 'org.jetbrains:annotations:19.0.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
- compile 'com.crossbowffs.remotepreferences:remotepreferences:0.7'
+ implementation 'com.crossbowffs.remotepreferences:remotepreferences:0.7'
def libsuVersion = '3.0.2'
@@ -53,12 +54,22 @@ dependencies {
// Optional: Bundle prebuilt BusyBox binaries
// implementation "com.github.topjohnwu.libsu:busybox:${libsuVersion}"
+
+
+
+ implementation 'com.jayway.jsonpath:json-path:2.4.0'
+
+ implementation 'com.pddstudio:earthview-android:1.2.0'
+
}
allprojects {
repositories {
google()
jcenter()
-
+ mavenCentral()
}
-}
\ No newline at end of file
+}
+
+
+
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index fda0b11..991e35b 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -1,6 +1,7 @@
+
{
+ SelectedImage selectedImage;
+ File outputFile;
+ public DownloadBitmap(SelectedImage selectedImage, File outputFile) {
+ this.selectedImage=selectedImage;
+ this.outputFile=outputFile;
+ }
+
+ @Override
+ protected Bitmap doInBackground(String... urls) {
+ try {
+ return BitmapFactory.decodeStream(new URL(urls[0]).openStream());
+ } catch (IOException e) {
+ e.printStackTrace();
+ return null;
+ }
+ }
+
+ @SuppressLint("WrongThread")
+ protected void onPostExecute(Bitmap bitmap) {
+
+ selectedImage.setBitmap(bitmap);
+ selectedImage.createPalette();
+ Earthview si=(Earthview)selectedImage;
+
+ try (OutputStream out = new FileOutputStream(outputFile)) {
+ bitmap.compress(Bitmap.CompressFormat.JPEG, 100, out);
+ }
+ catch (Exception e){
+ e.printStackTrace();
+ }
+
+
+
+ si.getImageChangeService().applyChangedImage(selectedImage);
+ }
}
diff --git a/app/src/main/java/de/valentin/colorconsistency/image/Earthview.java b/app/src/main/java/de/valentin/colorconsistency/image/Earthview.java
index cd02904..ffdc733 100644
--- a/app/src/main/java/de/valentin/colorconsistency/image/Earthview.java
+++ b/app/src/main/java/de/valentin/colorconsistency/image/Earthview.java
@@ -1,2 +1,68 @@
-package de.valentin.colorconsistency.image;public class Earthview {
+package de.valentin.colorconsistency.image;
+
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+import android.util.Log;
+import androidx.annotation.Nullable;
+import androidx.palette.graphics.Palette;
+import com.pddstudio.earthview.EarthView;
+import com.pddstudio.earthview.EarthWallpaper;
+import com.pddstudio.earthview.SingleEarthViewCallback;
+import de.valentin.colorconsistency.ImageChangeService;
+
+import java.io.File;
+import java.io.IOException;
+import java.net.MalformedURLException;
+import java.net.URL;
+
+public class Earthview extends SelectedImage implements SingleEarthViewCallback {
+
+ ImageChangeService imageChangeService;
+
+ public ImageChangeService getImageChangeService() {
+ return imageChangeService;
+ }
+
+ public Earthview(ImageChangeService imageChangeService) {
+ this.imageChangeService=imageChangeService;
+ EarthView.withGoogle().getRandomEarthWallpaper(this);
+
+
+ }
+
+ @Override
+ public void onStartedLoading() {
+
+ }
+
+ @Override
+ public void onFinishedLoading(@Nullable @org.jetbrains.annotations.Nullable EarthWallpaper earthWallpaper) {
+ if(earthWallpaper != null) {
+ Log.v("IDEARTH",earthWallpaper.getWallpaperId());
+ selected=new File("sdcard/Pictures/Earthview/"+earthWallpaper.getWallpaperId()+".jpg");
+
+ path = selected.getAbsolutePath();
+ if (!selected.exists()) {
+ // bitmap = BitmapFactory.decodeStream(url.openStream());
+ new DownloadBitmap(this,selected).execute(earthWallpaper.getWallPhotoUrl());
+ }
+ else {
+
+
+ bitmap = BitmapFactory.decodeFile(path);
+ createPalette();
+
+ imageChangeService.applyChangedImage(this);
+ }
+
+
+ }
+ }
+
+ @Override
+ public void onCancelledLoading() {
+
+ }
+
+
}
diff --git a/app/src/main/java/de/valentin/colorconsistency/image/RandomImage.java b/app/src/main/java/de/valentin/colorconsistency/image/RandomImage.java
index 9476384..7161f88 100644
--- a/app/src/main/java/de/valentin/colorconsistency/image/RandomImage.java
+++ b/app/src/main/java/de/valentin/colorconsistency/image/RandomImage.java
@@ -8,13 +8,7 @@ import androidx.palette.graphics.Palette;
import java.io.File;
import java.util.Random;
-public class RandomImage {
- File folder;
- File selected;
- String path;
- Bitmap bitmap;
- Palette palette;
- SelectedColors selectedColors;
+public class RandomImage extends SelectedImage {
public RandomImage(File folder) {
@@ -31,12 +25,7 @@ public class RandomImage {
path = selected.getAbsolutePath();
bitmap = BitmapFactory.decodeFile(path);
- palette = Palette.from(bitmap).generate();
- palette.getDarkMutedColor(0);
- selectedColors = new SelectedColors(
- palette.getLightMutedColor(Color.WHITE),
- palette.getDarkMutedColor(Color.BLACK),
- palette.getDominantColor(Color.WHITE));
+ createPalette();
}
catch (Exception e ){
path="error";
@@ -45,27 +34,4 @@ public class RandomImage {
}
- public String getPath() {
- return path;
- }
-
- public File getFolder() {
- return folder;
- }
-
- public File getSelected() {
- return selected;
- }
-
- public Bitmap getBitmap() {
- return bitmap;
- }
-
- public Palette getPalette() {
- return palette;
- }
-
- public SelectedColors getSelectedColors() {
- return selectedColors;
- }
}
diff --git a/app/src/main/java/de/valentin/colorconsistency/image/RedditImage.java b/app/src/main/java/de/valentin/colorconsistency/image/RedditImage.java
index 85e94e5..88b2243 100644
--- a/app/src/main/java/de/valentin/colorconsistency/image/RedditImage.java
+++ b/app/src/main/java/de/valentin/colorconsistency/image/RedditImage.java
@@ -1,2 +1,60 @@
-package de.valentin.colorconsistency.image;public class RedditImage {
+package de.valentin.colorconsistency.image;
+
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
+import java.net.URL;
+
+import android.util.Log;
+import com.jayway.jsonpath.JsonPath;
+
+public class RedditImage extends SelectedImage {
+ private String[] subreddits={"Art"};
+ String imageURL;
+
+
+ public RedditImage() {
+ getImageURLfromReddit();
+ }
+
+ void getImageURLfromReddit(){
+
+
+ try{
+
+ URL url = new URL("https://www.reddit.com/r/"+subreddits[0]+".json");
+
+
+ BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream()));
+ StringBuilder stringBuilder=new StringBuilder();
+ String line;
+ while (reader.ready()){
+ line = reader.readLine();
+ Log.v("OUTPUT","d"+line);
+ stringBuilder.append(line);
+ }
+
+ Log.v("OUTPUT","d"+stringBuilder.toString());
+ Log.v("OUTPUT","hallo");
+
+
+
+ imageURL= JsonPath.read(stringBuilder, ".data.children[1].data.url");
+
+ Log.v("IMAGEURL",imageURL);
+
+
+
+
+ } catch(Exception e){
+ // In your production code handle any errors and catch the individual exceptions
+ e.printStackTrace();
+ }
+
+
+
+ }
+
+ public String getImageURL() {
+ return imageURL;
+ }
}
diff --git a/app/src/main/java/de/valentin/colorconsistency/image/SelectedImage.java b/app/src/main/java/de/valentin/colorconsistency/image/SelectedImage.java
index 62af67c..df06ac4 100644
--- a/app/src/main/java/de/valentin/colorconsistency/image/SelectedImage.java
+++ b/app/src/main/java/de/valentin/colorconsistency/image/SelectedImage.java
@@ -1,2 +1,51 @@
-package de.valentin.colorconsistency.image;public class SelectedImage {
+package de.valentin.colorconsistency.image;
+
+import android.graphics.Bitmap;
+import android.graphics.Color;
+import androidx.palette.graphics.Palette;
+
+import java.io.File;
+
+public class SelectedImage {
+ File folder;
+ File selected;
+ String path;
+ Bitmap bitmap;
+ Palette palette;
+ SelectedColors selectedColors;
+
+
+ public void setBitmap(Bitmap bitmap) {
+ this.bitmap = bitmap;
+ }
+
+ void createPalette(){
+ palette = Palette.from(bitmap).generate();
+ palette.getDarkMutedColor(0);
+ selectedColors = new SelectedColors(
+ palette.getLightMutedColor(Color.WHITE),
+ palette.getDarkMutedColor(Color.BLACK),
+ palette.getDominantColor(Color.WHITE));
+ }
+
+
+ public File getSelected() {
+ return selected;
+ }
+
+ public String getPath() {
+ return path;
+ }
+
+ public Bitmap getBitmap() {
+ return bitmap;
+ }
+
+ public Palette getPalette() {
+ return palette;
+ }
+
+ public SelectedColors getSelectedColors() {
+ return selectedColors;
+ }
}
diff --git a/build.gradle b/build.gradle
index da807a2..ae5b35c 100644
--- a/build.gradle
+++ b/build.gradle
@@ -16,7 +16,9 @@ allprojects {
repositories {
google()
jcenter()
+
}
+
}
task clean(type: Delete) {