Commit 62549d48 authored by glesik's avatar glesik
Browse files

Add Save last wallpaper feature; update SDK versions

parent 0e0861be
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<option name="DEFAULT_COMPILER" value="Javac" />
<resourceExtensions />
<wildcardResourcePatterns>
<entry name="!?*.java" />
......@@ -12,6 +11,7 @@
<entry name="!?*.flex" />
<entry name="!?*.kt" />
<entry name="!?*.clj" />
<entry name="!?*.aj" />
</wildcardResourcePatterns>
<annotationProcessing>
<profile default="true" name="Default" enabled="false">
......
......@@ -5,13 +5,13 @@
<GradleProjectSettings>
<option name="distributionType" value="DEFAULT_WRAPPED" />
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="gradleJvm" value="1.8" />
<option name="modules">
<set>
<option value="$PROJECT_DIR$" />
<option value="$PROJECT_DIR$/app" />
</set>
</option>
<option name="resolveModulePerSourceSet" value="false" />
</GradleProjectSettings>
</option>
</component>
......
......@@ -37,26 +37,10 @@
<ConfirmationsSetting value="0" id="Add" />
<ConfirmationsSetting value="0" id="Remove" />
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" assert-keyword="true" jdk-15="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" default="true" assert-keyword="true" jdk-15="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" />
</component>
<component name="ProjectType">
<option name="id" value="Android" />
</component>
<component name="masterDetails">
<states>
<state key="ProjectJDKs.UI">
<settings>
<last-edited>1.7</last-edited>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
</states>
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
<mapping directory="" vcs="Git" />
</component>
</project>
\ No newline at end of file
......@@ -13,7 +13,7 @@
<content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/.gradle" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="jdk" jdkName="1.8" jdkType="JavaSDK" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>
\ No newline at end of file
......@@ -9,13 +9,9 @@
<facet type="android" name="Android">
<configuration>
<option name="SELECTED_BUILD_VARIANT" value="debug" />
<option name="SELECTED_TEST_ARTIFACT" value="_android_test_" />
<option name="ASSEMBLE_TASK_NAME" value="assembleDebug" />
<option name="COMPILE_JAVA_TASK_NAME" value="compileDebugSources" />
<option name="ASSEMBLE_TEST_TASK_NAME" value="assembleDebugAndroidTest" />
<option name="COMPILE_JAVA_TEST_TASK_NAME" value="compileDebugAndroidTestSources" />
<afterSyncTasks>
<task>generateDebugAndroidTestSources</task>
<task>generateDebugSources</task>
</afterSyncTasks>
<option name="ALLOW_USER_CONFIGURATION" value="false" />
......@@ -28,19 +24,21 @@
</component>
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_7" inherit-compiler-output="false">
<output url="file://$MODULE_DIR$/build/intermediates/classes/debug" />
<output-test url="file://$MODULE_DIR$/build/intermediates/classes/androidTest/debug" />
<output-test url="file://$MODULE_DIR$/build/intermediates/classes/test/debug" />
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/r/debug" isTestSource="false" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/aidl/debug" isTestSource="false" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/debug" isTestSource="false" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/rs/debug" isTestSource="false" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/apt/debug" isTestSource="false" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/debug" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/resValues/debug" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/r/androidTest/debug" isTestSource="true" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/aidl/androidTest/debug" isTestSource="true" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/androidTest/debug" isTestSource="true" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/rs/androidTest/debug" isTestSource="true" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/apt/androidTest/debug" isTestSource="true" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/androidTest/debug" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/resValues/androidTest/debug" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/debug/res" type="java-resource" />
......@@ -48,46 +46,71 @@
<sourceFolder url="file://$MODULE_DIR$/src/debug/assets" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/debug/aidl" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/debug/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/debug/jni" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/debug/rs" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/debug/shaders" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/testDebug/res" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/testDebug/resources" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/testDebug/assets" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/testDebug/aidl" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/testDebug/java" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/testDebug/rs" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/testDebug/shaders" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/main/res" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/main/assets" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/main/aidl" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/jni" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/rs" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/shaders" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/res" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/resources" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/assets" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/aidl" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/java" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/jni" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/rs" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/shaders" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/res" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/assets" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/aidl" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/rs" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/shaders" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/assets" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/blame" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/builds" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/classes" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/dependency-cache" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/dex" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/appcompat-v7/23.1.1/jars" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/support-v4/23.1.1/jars" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental-classes" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental-runtime-classes" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental-safeguard" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental-verifier" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/instant-run-resources" />
<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/ndk" />
<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" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/rs" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/shaders" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/split-apk" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/symbols" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/tmp" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/transforms" />
<excludeFolder url="file://$MODULE_DIR$/build/outputs" />
<excludeFolder url="file://$MODULE_DIR$/build/tmp" />
</content>
<orderEntry type="jdk" jdkName="Android API 23 Platform" jdkType="Android SDK" />
<orderEntry type="jdk" jdkName="Android API 25 Platform" jdkType="Android SDK" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" exported="" name="support-v4-23.1.1" level="project" />
<orderEntry type="library" exported="" name="support-annotations-23.1.1" level="project" />
<orderEntry type="library" exported="" name="appcompat-v7-23.1.1" level="project" />
<orderEntry type="library" exported="" name="support-core-ui-25.3.1" level="project" />
<orderEntry type="library" exported="" name="support-v4-25.3.1" level="project" />
<orderEntry type="library" exported="" name="support-media-compat-25.3.1" level="project" />
<orderEntry type="library" exported="" name="support-annotations-25.3.1" level="project" />
<orderEntry type="library" exported="" name="appcompat-v7-25.3.1" level="project" />
<orderEntry type="library" exported="" name="support-vector-drawable-25.3.1" level="project" />
<orderEntry type="library" exported="" name="support-compat-25.3.1" level="project" />
<orderEntry type="library" exported="" name="support-core-utils-25.3.1" level="project" />
<orderEntry type="library" exported="" name="support-fragment-25.3.1" level="project" />
<orderEntry type="library" exported="" name="animated-vector-drawable-25.3.1" level="project" />
</component>
</module>
\ No newline at end of file
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.2"
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
applicationId "net.glsk.wpgen"
minSdkVersion 15
targetSdkVersion 23
versionCode 12
versionName "1.2"
targetSdkVersion 25
versionCode 13
versionName "1.3"
}
buildTypes {
release {
......@@ -21,5 +21,5 @@ android {
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:23.1.1' // see Android Support Library in SDK manager
compile 'com.android.support:appcompat-v7:25.3.1' // see Android Support Library in SDK manager
}
......@@ -3,6 +3,7 @@
package="net.glsk.wpgen" >
<uses-permission android:name="android.permission.SET_WALLPAPER" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<application
android:allowBackup="true"
......
......@@ -17,12 +17,15 @@
package net.glsk.wpgen;
import android.Manifest;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.app.WallpaperManager;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
......@@ -32,8 +35,12 @@ import android.graphics.Color;
import android.graphics.LinearGradient;
import android.graphics.Paint;
import android.graphics.Shader;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Environment;
import android.support.v4.app.ActivityCompat;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.AppCompatActivity;
import android.view.ActionMode;
import android.view.Gravity;
......@@ -53,10 +60,14 @@ import android.widget.TextView;
import android.widget.Toast;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.channels.FileChannel;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.Random;
public class ColorsActivity extends AppCompatActivity {
......@@ -102,6 +113,19 @@ public class ColorsActivity extends AppCompatActivity {
return true;
}
@Override
public boolean onPrepareOptionsMenu (Menu menu) {
MenuItem saveLastItem = menu.findItem(R.id.action_save_last);
// Show Save Last menu if there's wallpaper to save.
if (new File(this.getFilesDir(), "lastwlp.png").exists()) {
saveLastItem.setEnabled(true);
} else {
saveLastItem.setEnabled(false);
}
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks.
......@@ -139,26 +163,70 @@ public class ColorsActivity extends AppCompatActivity {
}
});
addColorDialog.show();
return true;
case R.id.action_save_last: // Save last wallpaper to a file.
// Check for write permission.
if (ContextCompat.checkSelfPermission(this,
Manifest.permission.WRITE_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 123);
} else {
// Permission was already granted.
saveLastWallpaper();
}
return true;
default:
return super.onOptionsItemSelected(item);
}
}
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
switch (requestCode) {
case 123: {
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
saveLastWallpaper();
} else {
Toast.makeText(ColorsActivity.this, getString(R.string.toast_permission_not_granted), Toast.LENGTH_SHORT).show();
}
return;
}
}
}
private void saveLastWallpaper() {
File source = new File(this.getFilesDir(), "lastwlp.png");
File picturesDir = new File(Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY_PICTURES), "WPGen");
if (!picturesDir.exists()) {
if (!picturesDir.mkdirs()) {
Toast.makeText(ColorsActivity.this, getString(R.string.toast_cannot_mkdir), Toast.LENGTH_SHORT).show();
}
}
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
String filename = "wpgen_" + sdf.format(new Date()) + ".png";
File dest = new File(picturesDir, filename);
try {
copyFile(source, dest);
sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.fromFile(dest)));
Toast.makeText(ColorsActivity.this, getString(R.string.toast_saved_to_pics), Toast.LENGTH_SHORT).show();
} catch (IOException e) {
e.printStackTrace();
}
}
// Set wallpaper to color.
protected void setColorWallpaper(String color) {
// Create small solid color bitmap.
Bitmap bitmap = createBitmap(color, 512);
WallpaperManager wpManager = WallpaperManager.getInstance(this.getApplicationContext());
try {
wpManager.setBitmap(bitmap);
String text = getString(R.string.toast_wallpaper_set_to_color);
Toast toast = Toast.makeText(this, text, Toast.LENGTH_SHORT);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.show();
} catch (IOException e) {
e.printStackTrace();
}
setBitmapAsWallpaper(wpManager, bitmap);
String text = getString(R.string.toast_wallpaper_set_to_color);
Toast toast = Toast.makeText(this, text, Toast.LENGTH_SHORT);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.show();
}
// Set wallpaper to gradient image.
......@@ -182,12 +250,7 @@ public class ColorsActivity extends AppCompatActivity {
c.drawRect(0, 0, height, height, paint);
// Add noise.
//addNoise(wallpaperBitmap);
try {
// Set wallpaper.
wpManager.setBitmap(wallpaperBitmap);
} catch (IOException e) {
e.printStackTrace();
}
setBitmapAsWallpaper(wpManager, wallpaperBitmap);
// Cleanup.
wallpaperBitmap.recycle();
}
......@@ -196,7 +259,7 @@ public class ColorsActivity extends AppCompatActivity {
protected void setPlasmaWallpaper(ArrayList<String> colors) {
WallpaperManager wpManager = WallpaperManager.getInstance(this.getApplicationContext());
// Use half screen size for speed.
int height = wpManager.getDesiredMinimumHeight()/2;
int height = wpManager.getDesiredMinimumHeight()/4;
int width = height;
// Create wallpaper bitmap.
Bitmap wallpaperBitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
......@@ -251,12 +314,7 @@ public class ColorsActivity extends AppCompatActivity {
// TODO: Add noise as option in Settings.
//addNoise(wallpaperBitmap);
wallpaperBitmap = Bitmap.createScaledBitmap(wallpaperBitmap, wpManager.getDesiredMinimumHeight(), wpManager.getDesiredMinimumHeight(), true);
try {
// Set wallpaper.
wpManager.setBitmap(wallpaperBitmap);
} catch (IOException e) {
e.printStackTrace();
}
setBitmapAsWallpaper(wpManager, wallpaperBitmap);
// Cleanup.
wallpaperBitmap.recycle();
}
......@@ -318,15 +376,25 @@ public class ColorsActivity extends AppCompatActivity {
Bitmap wallpaperBitmap = Bitmap.createBitmap(bigBitmap, x, y, smallWidth, smallHeight);
// Add noise.
//addNoise(wallpaperBitmap);
setBitmapAsWallpaper(wpManager, wallpaperBitmap);
// Cleanup.
bigBitmap.recycle();
wallpaperBitmap.recycle();
}
public void setBitmapAsWallpaper(WallpaperManager wpManager, Bitmap wallpaperBitmap) {
try {
// Set wallpaper.
wpManager.setBitmap(wallpaperBitmap);
// Write to temp file (to enable saving).
File tempfile = new File(this.getFilesDir(), "lastwlp.png");
FileOutputStream outStream = new FileOutputStream(tempfile);
wallpaperBitmap.compress(Bitmap.CompressFormat.PNG, 100, outStream);
// Enable Save menu option if inactive.
invalidateOptionsMenu();
} catch (IOException e) {
e.printStackTrace();
}
// Cleanup.
bigBitmap.recycle();
wallpaperBitmap.recycle();
}
// Load favorites from app settings.
......@@ -655,4 +723,24 @@ public class ColorsActivity extends AppCompatActivity {
canvas.drawRect(0, 0, source.getWidth(), source.getHeight(), paint);
return source;
}
private void copyFile(File sourceFile, File destFile) throws IOException {
if (!sourceFile.exists()) {
return;
}
FileChannel source = null;
FileChannel destination = null;
source = new FileInputStream(sourceFile).getChannel();
destination = new FileOutputStream(destFile).getChannel();
if (destination != null && source != null) {
destination.transferFrom(source, 0, source.size());
}
if (source != null) {
source.close();
}
if (destination != null) {
destination.close();
}
}
}
......@@ -4,6 +4,13 @@
<item android:id="@+id/action_add_color" android:title="@string/action_add_color"
android:orderInCategory="100" android:visible="true" app:showAsAction="ifRoom"
android:icon="@drawable/ic_action_add_color" />
<item android:id="@+id/action_settings" android:title="@string/action_settings"
android:orderInCategory="100" android:visible="false" app:showAsAction="never" />
<item android:id="@+id/action_save_last" android:title="@string/action_save_last"
android:orderInCategory="100" android:visible="true" app:showAsAction="never"
android:icon="@drawable/ic_action_content_save" />
<item
android:id="@+id/action_settings"
android:orderInCategory="100"
android:title="@string/action_settings"
android:visible="false"
app:showAsAction="never" />
</menu>
......@@ -7,6 +7,7 @@
<string name="action_blur">Градиент</string>
<string name="action_remove_from_favs">Удалить из избранного</string>
<string name="action_settings">Настройки</string>
<string name="action_save_last">Сохранить последние обои</string>
<plurals name="plurals_colors">
<item quantity="one">Выбран %d цвет</item>
......@@ -31,4 +32,7 @@
<string name="toast_wallpaper_set_to_plasma">Обои «плазма» установлены</string>
<string name="action_stripes">Полосы</string>
<string name="toast_wallpaper_set_to_stripes">Обои «полосы» установлены</string>
<string name="toast_saved_to_pics">Обои сохранены в папку Pictures</string>
<string name="toast_permission_not_granted">Не получено разрешение на запись файла!</string>
<string name="toast_cannot_mkdir">Невозможно создать папку в Pictures!</string>
</resources>
\ No newline at end of file
......@@ -9,6 +9,7 @@
<string name="action_plasma">Plasma</string>
<string name="action_stripes">Stripes</string>
<string name="action_add_color">Add color</string>
<string name="action_save_last">Save last wallpaper</string>
<plurals name="plurals_colors">
<item quantity="one">%d color selected</item>
......@@ -22,6 +23,9 @@
<string name="toast_wallpaper_set_to_plasma">Wallpaper set to plasma</string>
<string name="toast_wallpaper_set_to_stripes">Wallpaper set to stripes</string>
<string name="toast_invalid_color">Invalid color code</string>
<string name="toast_saved_to_pics">Wallpaper saved to Pictures</string>
<string name="toast_permission_not_granted">Write permission not granted!</string>
<string name="toast_cannot_mkdir">Cannot create directory in Pictures!</string>
<string name="dialog_add_color_title">Add color</string>
<string name="dialog_add_color_msg">Add color (#RRGGBB)</string>
......
......@@ -5,7 +5,7 @@ buildscript {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.5.0'
classpath 'com.android.tools.build:gradle:2.3.3'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
......
#Wed Apr 10 15:27:10 PDT 2013
#Sat Aug 19 15:12:40 CEST 2017
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-2.2.1-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment