Implement Dark Theme (DayNight with automatic option)

This is just a first rough implementation.
A real UI designer should look over this.
This commit is contained in:
Torsten Grote
2018-05-24 11:52:13 -03:00
parent dcacae0729
commit 3c6b43b2bd
116 changed files with 619 additions and 328 deletions

View File

@@ -2,11 +2,11 @@ package org.thoughtcrime.securesms.components;
import android.content.Context;
import android.support.annotation.UiThread;
import android.support.v7.widget.AppCompatImageButton;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewConfiguration;
import android.widget.ImageButton;
import static android.view.HapticFeedbackConstants.KEYBOARD_TAP;
import static android.view.MotionEvent.ACTION_CANCEL;
@@ -14,7 +14,7 @@ import static android.view.MotionEvent.ACTION_DOWN;
import static android.view.MotionEvent.ACTION_UP;
@UiThread
public class RepeatableImageKey extends ImageButton {
public class RepeatableImageKey extends AppCompatImageButton {
private KeyEventListener listener;

View File

@@ -1,10 +1,13 @@
package org.thoughtcrime.securesms.components.emoji;
import android.content.Context;
import android.content.res.ColorStateList;
import android.support.annotation.NonNull;
import android.support.annotation.UiThread;
import android.support.v4.content.ContextCompat;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.widget.AppCompatImageView;
import android.util.AttributeSet;
import android.view.KeyEvent;
import android.view.LayoutInflater;
@@ -26,6 +29,7 @@ import java.util.logging.Logger;
import javax.annotation.Nullable;
import static android.support.v4.widget.ImageViewCompat.setImageTintList;
import static android.view.KeyEvent.ACTION_DOWN;
import static android.view.KeyEvent.KEYCODE_DEL;
import static android.widget.ImageView.ScaleType.CENTER_INSIDE;
@@ -142,8 +146,10 @@ public class EmojiDrawer extends LinearLayout {
return pages.size();
}
@NonNull
@Override
public Object instantiateItem(ViewGroup container, int position) {
public Object instantiateItem(@NonNull ViewGroup container,
int position) {
EmojiPageView page = new EmojiPageView(context);
page.setModel(pages.get(position));
page.setEmojiSelectedListener(listener);
@@ -152,21 +158,24 @@ public class EmojiDrawer extends LinearLayout {
}
@Override
public void destroyItem(ViewGroup container, int position,
Object object) {
public void destroyItem(@NonNull ViewGroup container, int position,
@NonNull Object object) {
container.removeView((View) object);
}
@Override
public boolean isViewFromObject(View view, Object object) {
public boolean isViewFromObject(@NonNull View view,
@NonNull Object object) {
return view == object;
}
@Override
public View getCustomTabView(ViewGroup viewGroup, int i) {
ImageView image = new ImageView(context);
ImageView image = new AppCompatImageView(context);
image.setScaleType(CENTER_INSIDE);
image.setImageResource(pages.get(i).getIcon());
setImageTintList(image, ColorStateList.valueOf(
ContextCompat.getColor(context, R.color.color_primary)));
return image;
}

View File

@@ -4,8 +4,8 @@ import android.content.Context;
import android.graphics.drawable.Drawable;
import android.support.annotation.UiThread;
import android.support.v4.content.ContextCompat;
import android.support.v7.widget.AppCompatImageButton;
import android.util.AttributeSet;
import android.widget.ImageButton;
import org.briarproject.briar.R;
import org.thoughtcrime.securesms.components.emoji.EmojiDrawer.EmojiDrawerListener;
@@ -13,7 +13,8 @@ import org.thoughtcrime.securesms.components.emoji.EmojiDrawer.EmojiDrawerListen
import javax.annotation.Nullable;
@UiThread
public class EmojiToggle extends ImageButton implements EmojiDrawerListener {
public class EmojiToggle extends AppCompatImageButton
implements EmojiDrawerListener {
private final Drawable emojiToggle;
private final Drawable imeToggle;
@@ -33,7 +34,7 @@ public class EmojiToggle extends ImageButton implements EmojiDrawerListener {
emojiToggle = ContextCompat
.getDrawable(getContext(), R.drawable.ic_emoji_toggle);
imeToggle = ContextCompat
.getDrawable(getContext(), R.drawable.ic_keyboard_black);
.getDrawable(getContext(), R.drawable.ic_keyboard);
setToEmoji();
}