tobiasKaminsky 10 lat temu
rodzic
commit
fb095ecc71

+ 1 - 1
build.gradle

@@ -3,7 +3,7 @@ buildscript {
         mavenCentral()
     }
     dependencies {
-        classpath 'com.android.tools.build:gradle:0.14.0'
+        classpath 'com.android.tools.build:gradle:1.0.0'
     }
 }
 

+ 2 - 2
gradle/wrapper/gradle-wrapper.properties

@@ -1,6 +1,6 @@
-#Wed Oct 15 10:45:44 CEST 2014
+#Fri Jan 23 17:48:07 CET 2015
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-2.1-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-2.2.1-all.zip

+ 1 - 1
owncloud-android-library

@@ -1 +1 @@
-Subproject commit 5bd0d7387712ce3f53869294761ac4d8537841cd
+Subproject commit cbb1c524ea989e649721ab4f8ece760701abf56b

+ 27 - 1
src/com/owncloud/android/ui/adapter/NavigationDrawerListAdapter.java

@@ -1,10 +1,13 @@
 package com.owncloud.android.ui.adapter;
 
+import java.nio.ByteBuffer;
+import java.security.MessageDigest;
 import java.util.ArrayList;
 
 import android.accounts.Account;
 import android.accounts.AccountManager;
 import android.content.Context;
+import android.graphics.Color;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -17,7 +20,9 @@ import android.widget.TextView;
 import com.owncloud.android.MainApp;
 import com.owncloud.android.R;
 import com.owncloud.android.authentication.AccountUtils;
+import com.owncloud.android.lib.common.utils.Log_OC;
 import com.owncloud.android.ui.activity.FileDisplayActivity;
+import com.owncloud.android.utils.BitmapUtils;
 
 public class NavigationDrawerListAdapter extends BaseAdapter {
 
@@ -94,8 +99,29 @@ public class NavigationDrawerListAdapter extends BaseAdapter {
                 for (Account account : mAccounts) {
                     RadioButton rb = new RadioButton(mContext);
                     rb.setText(account.name);
-                    rb.setTextColor(mContext.getResources().getColor(R.color.black));
 
+                    try {
+                        byte[] bytesOfMessage = account.name.substring(0,5).getBytes("UTF-8");
+                        MessageDigest md = MessageDigest.getInstance("MD5");
+                        byte[] digest = md.digest(bytesOfMessage);
+                        int result = Math.abs(ByteBuffer.wrap(digest).getInt());
+
+                        Log_OC.d(TAG, "Integer: " + result % 100000);
+                        Log_OC.d(TAG, "length: " + digest.length);
+
+
+                        Double hue = (result % 100000) / 99999.0;
+
+                        Log_OC.d(TAG, "hue: " + hue);
+
+                        int[] rgb = BitmapUtils.hslToRgb(hue, 0.9, 0.65);
+                        rb.setTextColor(Color.rgb(rgb[0], rgb[1], rgb[2]));
+                        Log_OC.d(TAG, "Color: " + rgb[0] + " " + rgb[1] + rgb[2]);
+
+                    } catch (Exception e){
+                        Log_OC.d(TAG, e.toString());
+                        rb.setTextColor(mContext.getResources().getColor(R.color.black));
+                    }
                     RadioGroup.LayoutParams params = new RadioGroup.LayoutParams(
                             LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
                     params.weight=1.0f;

+ 39 - 0
src/com/owncloud/android/utils/BitmapUtils.java

@@ -169,6 +169,45 @@ public class BitmapUtils {
         }
         return resultBitmap;
     }
+
+    /**
+     * Converts an HSL color value to RGB. Conversion formula
+     * adapted from http://en.wikipedia.org/wiki/HSL_color_space.
+     * Assumes h, s, and l are contained in the set [0, 1] and
+     * returns r, g, and b in the set [0, 255].
+     * from: http://axonflux.com/handy-rgb-to-hsl-and-rgb-to-hsv-color-model-c
+     *
+     * @param   integer  h       The hue
+     * @param   Integer  s       The saturation
+     * @param   Integer  l       The lightness
+     * @return  Array           The RGB representation
+     */
+    public static int[] hslToRgb(Double h, Double s, Double l){
+        Double r, g, b;
+
+        if(s == 0){
+            r = g = b = l; // achromatic
+        } else {
+            Double q = l < 0.5 ? l * (1 + s) : l + s - l * s;
+            Double p = 2 * l - q;
+            r = hue2rgb(p, q, h + 1/3) * 255;
+            g = hue2rgb(p, q, h) * 255;
+            b = hue2rgb(p, q, h - 1/3) * 255;
+        }
+
+
+        int[] array = {r.intValue(), g.intValue(), b.intValue()};
+        return array;
+    }
+
+    private static Double hue2rgb(Double p, Double q, Double t){
+        if(t < 0) t += 1;
+        if(t > 1) t -= 1;
+        if(t < 1/6) return p + (q - p) * 6 * t;
+        if(t < 1/2) return q;
+        if(t < 2/3) return p + (q - p) * (2/3 - t) * 6;
+        return p;
+    }
     
     
 }