mirror of
https://github.com/oxen-io/session-android.git
synced 2025-10-21 05:09:28 +00:00
icon, contact list and conversation redesign
This commit is contained in:
25
src/org/thoughtcrime/securesms/util/ActionBarUtil.java
Normal file
25
src/org/thoughtcrime/securesms/util/ActionBarUtil.java
Normal 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);
|
||||
}
|
||||
|
||||
}
|
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
40
src/org/thoughtcrime/securesms/util/DateUtils.java
Normal file
40
src/org/thoughtcrime/securesms/util/DateUtils.java
Normal 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;
|
||||
}
|
||||
}
|
@@ -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);
|
||||
}
|
||||
|
Reference in New Issue
Block a user