icon, contact list and conversation redesign

This commit is contained in:
Jake McGinty
2014-01-08 12:29:05 -10:00
parent 75ce00cb90
commit 28c1c5006b
119 changed files with 31542 additions and 233 deletions

View File

@@ -0,0 +1,25 @@
package org.thoughtcrime.securesms.util;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.util.TypedValue;
import com.actionbarsherlock.app.ActionBar;
import org.thoughtcrime.securesms.R;
public class ActionBarUtil {
public static void initializeDefaultActionBar(final Context c, final ActionBar actionBar, final String title) {
actionBar.setTitle(title);
initializeDefaultActionBar(c, actionBar);
}
public static void initializeDefaultActionBar(final Context c, final ActionBar actionBar) {
TypedValue iconResValue = new TypedValue();
c.getTheme().resolveAttribute(R.attr.actionbar_icon, iconResValue, true);
int attributeResourceId = iconResValue.resourceId;
Drawable icon = c.getResources().getDrawable(attributeResourceId);
actionBar.setIcon(icon);
}
}

View File

@@ -3,6 +3,11 @@ package org.thoughtcrime.securesms.util;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.PorterDuff;
import android.graphics.PorterDuffXfermode;
import android.graphics.Rect;
import android.net.Uri;
import android.util.Log;
@@ -98,5 +103,23 @@ public class BitmapUtil {
return options;
}
public static Bitmap getCroppedBitmap(Bitmap bitmap) {
Bitmap output = Bitmap.createBitmap(bitmap.getWidth(),
bitmap.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(output);
final int color = 0xff424242;
final Paint paint = new Paint();
final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());
paint.setAntiAlias(true);
canvas.drawARGB(0, 0, 0, 0);
paint.setColor(color);
canvas.drawCircle(bitmap.getWidth() / 2, bitmap.getHeight() / 2,
bitmap.getWidth() / 2, paint);
paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
canvas.drawBitmap(bitmap, rect, rect, paint);
return output;
}
}

View File

@@ -0,0 +1,40 @@
package org.thoughtcrime.securesms.util;
import android.content.Context;
import java.util.Calendar;
/**
* Created by kaonashi on 1/6/14.
*/
public class DateUtils extends android.text.format.DateUtils {
private final static long DAY_IN_MILLIS = 86400000L;
private final static long WEEK_IN_MILLIS = 7 * DAY_IN_MILLIS;
private final static long YEAR_IN_MILLIS = (long)(52.1775 * WEEK_IN_MILLIS);
private static boolean isWithinWeek(final long millis) {
return System.currentTimeMillis() - millis <= (WEEK_IN_MILLIS - DAY_IN_MILLIS);
}
private static boolean isWithinYear(final long millis) {
return System.currentTimeMillis() - millis <= YEAR_IN_MILLIS;
}
public static String getBetterRelativeTimeSpanString(final Context c, final long millis) {
final String prettyDate;
if (isToday(millis)) {
prettyDate = DateUtils.formatDateTime(c, millis, DateUtils.FORMAT_SHOW_TIME | DateUtils.FORMAT_ABBREV_TIME);
} else if (isWithinWeek(millis)) {
prettyDate = DateUtils.formatDateTime(c, millis,
DateUtils.FORMAT_SHOW_WEEKDAY | DateUtils.FORMAT_ABBREV_WEEKDAY);
} else if (isWithinYear(millis)) {
prettyDate = DateUtils.formatDateTime(c, millis,
DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_NO_YEAR | DateUtils.FORMAT_ABBREV_ALL);
} else {
prettyDate = DateUtils.formatDateTime(c, millis,
DateUtils.FORMAT_NUMERIC_DATE);
}
return prettyDate;
}
}

View File

@@ -38,6 +38,7 @@ public class TextSecurePreferences {
private static final String REGISTERED_GCM_PREF = "pref_gcm_registered";
private static final String GCM_PASSWORD_PREF = "pref_gcm_password";
private static final String PROMPTED_PUSH_REGISTRATION_PREF = "pref_prompted_push_registration";
private static final String PROMPTED_DEFAULT_SMS_PREF = "pref_prompted_default_sms";
private static final String SIGNALING_KEY_PREF = "pref_signaling_key";
private static final String DIRECTORY_FRESH_TIME_PREF = "pref_directory_refresh_time";
private static final String IN_THREAD_NOTIFICATION_PREF = "pref_key_inthread_notifications";
@@ -175,6 +176,14 @@ public class TextSecurePreferences {
setBooleanPreference(context, PROMPTED_PUSH_REGISTRATION_PREF, value);
}
public static boolean hasPromptedDefaultSmsProvider(Context context) {
return getBooleanPreference(context, PROMPTED_DEFAULT_SMS_PREF, false);
}
public static void setPromptedDefaultSmsProvider(Context context, boolean value) {
setBooleanPreference(context, PROMPTED_DEFAULT_SMS_PREF, value);
}
public static boolean isInterceptAllMmsEnabled(Context context) {
return getBooleanPreference(context, ALL_MMS_PREF, true);
}