parent
13d87b8d87
commit
c1ecd01cb0
|
@ -0,0 +1,23 @@
|
||||||
|
package android.support.v7.widget;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.support.v7.widget.android.support.v7.view.menu.TwidereActionMenuItemView;
|
||||||
|
import android.util.AttributeSet;
|
||||||
|
import android.view.View;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by mariotaku on 16/3/18.
|
||||||
|
*/
|
||||||
|
public class TwidereActionMenuView extends ActionMenuView {
|
||||||
|
public TwidereActionMenuView(Context context) {
|
||||||
|
super(context);
|
||||||
|
}
|
||||||
|
|
||||||
|
public TwidereActionMenuView(Context context, AttributeSet attrs) {
|
||||||
|
super(context, attrs);
|
||||||
|
}
|
||||||
|
|
||||||
|
public View createActionMenuView(Context context, AttributeSet attrs) {
|
||||||
|
return new TwidereActionMenuItemView(context, attrs);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,107 @@
|
||||||
|
package android.support.v7.widget.android.support.v7.view.menu;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.graphics.drawable.Drawable;
|
||||||
|
import android.support.annotation.Nullable;
|
||||||
|
import android.support.v7.view.menu.ActionMenuItemView;
|
||||||
|
import android.support.v7.view.menu.MenuItemImpl;
|
||||||
|
import android.util.AttributeSet;
|
||||||
|
import android.view.View;
|
||||||
|
|
||||||
|
import com.afollestad.appthemeengine.ATE;
|
||||||
|
import com.afollestad.appthemeengine.ATEActivity;
|
||||||
|
import com.afollestad.appthemeengine.inflation.ViewInterface;
|
||||||
|
import com.afollestad.appthemeengine.util.ATEUtil;
|
||||||
|
import com.afollestad.appthemeengine.util.TintHelper;
|
||||||
|
import com.afollestad.appthemeengine.viewprocessors.ViewProcessor;
|
||||||
|
|
||||||
|
import org.mariotaku.twidere.util.ThemeUtils;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by mariotaku on 16/3/18.
|
||||||
|
*/
|
||||||
|
public class TwidereActionMenuItemView extends ActionMenuItemView implements ViewInterface {
|
||||||
|
|
||||||
|
public TwidereActionMenuItemView(Context context) {
|
||||||
|
super(context);
|
||||||
|
init(context, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
public TwidereActionMenuItemView(Context context, AttributeSet attrs) {
|
||||||
|
super(context, attrs);
|
||||||
|
init(context, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
public TwidereActionMenuItemView(Context context, AttributeSet attrs, @Nullable ATEActivity keyContext) {
|
||||||
|
super(context, attrs);
|
||||||
|
init(context, keyContext);
|
||||||
|
}
|
||||||
|
|
||||||
|
private String mKey;
|
||||||
|
private int mTintColor;
|
||||||
|
private Drawable mIcon;
|
||||||
|
private boolean mCheckedActionView;
|
||||||
|
|
||||||
|
private void init(Context context, @Nullable ATEActivity keyContext) {
|
||||||
|
if (keyContext == null && context instanceof ATEActivity)
|
||||||
|
keyContext = (ATEActivity) context;
|
||||||
|
mKey = null;
|
||||||
|
if (keyContext != null)
|
||||||
|
mKey = keyContext.getATEKey();
|
||||||
|
|
||||||
|
if (mIcon != null)
|
||||||
|
setIcon(mIcon); // invalidates initial icon tint
|
||||||
|
else invalidateTintColor();
|
||||||
|
|
||||||
|
ATE.themeView(context, this, mKey);
|
||||||
|
setTextColor(mTintColor); // sets menu item text color
|
||||||
|
}
|
||||||
|
|
||||||
|
private void invalidateTintColor() {
|
||||||
|
final int colorBackground = ATEUtil.resolveColor(getContext(), android.R.attr.colorBackground);
|
||||||
|
mTintColor = ThemeUtils.getActionIconColor(getContext(), colorBackground);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setIcon(Drawable icon) {
|
||||||
|
invalidateTintColor();
|
||||||
|
mIcon = TintHelper.createTintedDrawable(icon, mTintColor);
|
||||||
|
super.setIcon(mIcon);
|
||||||
|
invalidateActionView();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setTitle(CharSequence title) {
|
||||||
|
super.setTitle(title);
|
||||||
|
invalidateActionView();
|
||||||
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
private void invalidateActionView() {
|
||||||
|
if (mCheckedActionView) return;
|
||||||
|
mCheckedActionView = true;
|
||||||
|
View actionView = getActionView();
|
||||||
|
if (actionView != null) {
|
||||||
|
ViewProcessor processor = ATE.getViewProcessor(actionView.getClass());
|
||||||
|
if (processor != null)
|
||||||
|
processor.process(getContext(), mKey, actionView, null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
private View getActionView() {
|
||||||
|
final MenuItemImpl menuImpl = getItemData();
|
||||||
|
if (menuImpl == null) return null;
|
||||||
|
return menuImpl.getActionView();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean setsStatusBarColor() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean setsToolbarColor() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,63 @@
|
||||||
|
package com.afollestad.appthemeengine.inflation;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.support.annotation.Nullable;
|
||||||
|
import android.support.v7.widget.AppCompatMultiAutoCompleteTextView;
|
||||||
|
import android.util.AttributeSet;
|
||||||
|
|
||||||
|
import com.afollestad.appthemeengine.ATE;
|
||||||
|
import com.afollestad.appthemeengine.ATEActivity;
|
||||||
|
import com.afollestad.appthemeengine.tagprocessors.ATEDefaultTags;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Aidan Follestad (afollestad)
|
||||||
|
*/
|
||||||
|
public class ATEMultiAutoCompleteTextView2 extends AppCompatMultiAutoCompleteTextView implements ViewInterface, PostInflationApplier {
|
||||||
|
|
||||||
|
public ATEMultiAutoCompleteTextView2(Context context) {
|
||||||
|
super(context);
|
||||||
|
init(context, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
public ATEMultiAutoCompleteTextView2(Context context, AttributeSet attrs) {
|
||||||
|
super(context, attrs);
|
||||||
|
init(context, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
public ATEMultiAutoCompleteTextView2(Context context, AttributeSet attrs, @Nullable ATEActivity keyContext, boolean waitForInflate) {
|
||||||
|
super(context, attrs);
|
||||||
|
mWaitForInflate = waitForInflate;
|
||||||
|
init(context, keyContext);
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean mWaitForInflate;
|
||||||
|
private ATEActivity mKeyContext;
|
||||||
|
|
||||||
|
private void init(Context context, @Nullable ATEActivity keyContext) {
|
||||||
|
ATEDefaultTags.process(this);
|
||||||
|
if (mWaitForInflate) {
|
||||||
|
mKeyContext = keyContext;
|
||||||
|
ATE.addPostInflationView(this);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
ATEViewUtil.init(keyContext, this, context);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean setsStatusBarColor() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean setsToolbarColor() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void postApply() {
|
||||||
|
if(!mWaitForInflate) return;
|
||||||
|
mWaitForInflate = false;
|
||||||
|
ATEViewUtil.init(mKeyContext, this, getContext());
|
||||||
|
mKeyContext = null;
|
||||||
|
}
|
||||||
|
}
|
|
@ -29,17 +29,18 @@ import android.view.MotionEvent;
|
||||||
import com.squareup.otto.Bus;
|
import com.squareup.otto.Bus;
|
||||||
|
|
||||||
import org.mariotaku.twidere.Constants;
|
import org.mariotaku.twidere.Constants;
|
||||||
import org.mariotaku.twidere.activity.ThemedAppCompatActivity;
|
|
||||||
import org.mariotaku.twidere.activity.iface.IControlBarActivity;
|
import org.mariotaku.twidere.activity.iface.IControlBarActivity;
|
||||||
import org.mariotaku.twidere.activity.iface.IExtendedActivity;
|
import org.mariotaku.twidere.activity.iface.IExtendedActivity;
|
||||||
import org.mariotaku.twidere.fragment.iface.IBaseFragment.SystemWindowsInsetsCallback;
|
import org.mariotaku.twidere.fragment.iface.IBaseFragment.SystemWindowsInsetsCallback;
|
||||||
import org.mariotaku.twidere.util.AsyncTwitterWrapper;
|
import org.mariotaku.twidere.util.AsyncTwitterWrapper;
|
||||||
import org.mariotaku.twidere.util.KeyboardShortcutsHandler;
|
import org.mariotaku.twidere.util.KeyboardShortcutsHandler;
|
||||||
import org.mariotaku.twidere.util.KeyboardShortcutsHandler.KeyboardShortcutCallback;
|
import org.mariotaku.twidere.util.KeyboardShortcutsHandler.KeyboardShortcutCallback;
|
||||||
|
import org.mariotaku.twidere.util.MediaLoaderWrapper;
|
||||||
import org.mariotaku.twidere.util.NotificationManagerWrapper;
|
import org.mariotaku.twidere.util.NotificationManagerWrapper;
|
||||||
import org.mariotaku.twidere.util.ReadStateManager;
|
import org.mariotaku.twidere.util.ReadStateManager;
|
||||||
import org.mariotaku.twidere.util.SharedPreferencesWrapper;
|
import org.mariotaku.twidere.util.SharedPreferencesWrapper;
|
||||||
import org.mariotaku.twidere.util.ThemeUtils;
|
import org.mariotaku.twidere.util.ThemeUtils;
|
||||||
|
import org.mariotaku.twidere.util.UserColorNameManager;
|
||||||
import org.mariotaku.twidere.util.dagger.GeneralComponentHelper;
|
import org.mariotaku.twidere.util.dagger.GeneralComponentHelper;
|
||||||
import org.mariotaku.twidere.view.iface.IExtendedView.OnFitSystemWindowsListener;
|
import org.mariotaku.twidere.view.iface.IExtendedView.OnFitSystemWindowsListener;
|
||||||
|
|
||||||
|
@ -65,6 +66,10 @@ public class BaseAppCompatActivity extends ThemedAppCompatActivity implements Co
|
||||||
protected SharedPreferencesWrapper mPreferences;
|
protected SharedPreferencesWrapper mPreferences;
|
||||||
@Inject
|
@Inject
|
||||||
protected NotificationManagerWrapper mNotificationManager;
|
protected NotificationManagerWrapper mNotificationManager;
|
||||||
|
@Inject
|
||||||
|
protected MediaLoaderWrapper mMediaLoader;
|
||||||
|
@Inject
|
||||||
|
protected UserColorNameManager mUserColorNameManager;
|
||||||
|
|
||||||
private ActionHelper mActionHelper = new ActionHelper(this);
|
private ActionHelper mActionHelper = new ActionHelper(this);
|
||||||
|
|
||||||
|
|
|
@ -46,6 +46,7 @@ import android.os.Bundle;
|
||||||
import android.os.Parcelable;
|
import android.os.Parcelable;
|
||||||
import android.provider.BaseColumns;
|
import android.provider.BaseColumns;
|
||||||
import android.support.annotation.NonNull;
|
import android.support.annotation.NonNull;
|
||||||
|
import android.support.annotation.Nullable;
|
||||||
import android.support.v4.app.ActivityCompat;
|
import android.support.v4.app.ActivityCompat;
|
||||||
import android.support.v4.app.DialogFragment;
|
import android.support.v4.app.DialogFragment;
|
||||||
import android.support.v4.app.Fragment;
|
import android.support.v4.app.Fragment;
|
||||||
|
@ -61,6 +62,7 @@ import android.support.v7.widget.RecyclerView;
|
||||||
import android.support.v7.widget.RecyclerView.ItemDecoration;
|
import android.support.v7.widget.RecyclerView.ItemDecoration;
|
||||||
import android.support.v7.widget.RecyclerView.State;
|
import android.support.v7.widget.RecyclerView.State;
|
||||||
import android.support.v7.widget.RecyclerView.ViewHolder;
|
import android.support.v7.widget.RecyclerView.ViewHolder;
|
||||||
|
import android.support.v7.widget.Toolbar;
|
||||||
import android.support.v7.widget.helper.ItemTouchHelper;
|
import android.support.v7.widget.helper.ItemTouchHelper;
|
||||||
import android.text.Editable;
|
import android.text.Editable;
|
||||||
import android.text.Spannable;
|
import android.text.Spannable;
|
||||||
|
@ -88,6 +90,9 @@ import android.widget.ImageView;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
|
||||||
|
import com.afollestad.appthemeengine.Config;
|
||||||
|
import com.afollestad.appthemeengine.customizers.ATEToolbarCustomizer;
|
||||||
|
import com.afollestad.appthemeengine.util.ATEUtil;
|
||||||
import com.github.johnpersano.supertoasts.SuperToast;
|
import com.github.johnpersano.supertoasts.SuperToast;
|
||||||
import com.github.johnpersano.supertoasts.SuperToast.Duration;
|
import com.github.johnpersano.supertoasts.SuperToast.Duration;
|
||||||
import com.github.johnpersano.supertoasts.SuperToast.OnDismissListener;
|
import com.github.johnpersano.supertoasts.SuperToast.OnDismissListener;
|
||||||
|
@ -166,8 +171,8 @@ import java.util.TreeSet;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
|
||||||
public class ComposeActivity extends ThemedFragmentActivity implements OnMenuItemClickListener,
|
public class ComposeActivity extends BaseAppCompatActivity implements OnMenuItemClickListener,
|
||||||
OnClickListener, OnLongClickListener, Callback {
|
OnClickListener, OnLongClickListener, Callback, ATEToolbarCustomizer {
|
||||||
|
|
||||||
// Constants
|
// Constants
|
||||||
private static final String FAKE_IMAGE_LINK = "https://www.example.com/fake_image.jpg";
|
private static final String FAKE_IMAGE_LINK = "https://www.example.com/fake_image.jpg";
|
||||||
|
@ -597,11 +602,11 @@ public class ComposeActivity extends ThemedFragmentActivity implements OnMenuIte
|
||||||
if (accounts.length == 1) {
|
if (accounts.length == 1) {
|
||||||
mCountView.setText(null);
|
mCountView.setText(null);
|
||||||
final ParcelableAccount account = accounts[0];
|
final ParcelableAccount account = accounts[0];
|
||||||
mImageLoader.displayProfileImage(mProfileImageView, account);
|
mMediaLoader.displayProfileImage(mProfileImageView, account);
|
||||||
mProfileImageView.setBorderColor(account.color);
|
mProfileImageView.setBorderColor(account.color);
|
||||||
} else {
|
} else {
|
||||||
mCountView.setText(String.valueOf(accounts.length));
|
mCountView.setText(String.valueOf(accounts.length));
|
||||||
mImageLoader.cancelDisplayTask(mProfileImageView);
|
mMediaLoader.cancelDisplayTask(mProfileImageView);
|
||||||
mProfileImageView.setImageDrawable(null);
|
mProfileImageView.setImageDrawable(null);
|
||||||
mProfileImageView.setBorderColors(Utils.getAccountColors(accounts));
|
mProfileImageView.setBorderColors(Utils.getAccountColors(accounts));
|
||||||
}
|
}
|
||||||
|
@ -1387,6 +1392,16 @@ public class ComposeActivity extends ThemedFragmentActivity implements OnMenuIte
|
||||||
mSendTextCountView.setTextCount(validatedCount);
|
mSendTextCountView.setTextCount(validatedCount);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getLightToolbarMode(@Nullable Toolbar toolbar) {
|
||||||
|
return Config.LIGHT_TOOLBAR_AUTO;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getToolbarColor(@Nullable Toolbar toolbar) {
|
||||||
|
return ATEUtil.resolveColor(this, android.R.attr.panelColorBackground);
|
||||||
|
}
|
||||||
|
|
||||||
static class ComposeLocationListener implements LocationListener {
|
static class ComposeLocationListener implements LocationListener {
|
||||||
|
|
||||||
final WeakReference<ComposeActivity> mActivityRef;
|
final WeakReference<ComposeActivity> mActivityRef;
|
||||||
|
|
|
@ -134,7 +134,7 @@ public class SettingsActivity extends BaseAppCompatActivity implements OnItemCli
|
||||||
R.xml.preferences_refresh);
|
R.xml.preferences_refresh);
|
||||||
mEntriesAdapter.addPreference(R.drawable.ic_action_notification, getString(R.string.notifications),
|
mEntriesAdapter.addPreference(R.drawable.ic_action_notification, getString(R.string.notifications),
|
||||||
R.xml.preferences_notifications);
|
R.xml.preferences_notifications);
|
||||||
mEntriesAdapter.addPreference(R.drawable.ic_action_server, getString(R.string.network),
|
mEntriesAdapter.addPreference(R.drawable.ic_action_web, getString(R.string.network),
|
||||||
R.xml.preferences_network);
|
R.xml.preferences_network);
|
||||||
mEntriesAdapter.addPreference(R.drawable.ic_action_status_compose, getString(R.string.compose),
|
mEntriesAdapter.addPreference(R.drawable.ic_action_status_compose, getString(R.string.compose),
|
||||||
R.xml.preferences_compose);
|
R.xml.preferences_compose);
|
||||||
|
|
|
@ -26,7 +26,8 @@ import android.os.Bundle;
|
||||||
import android.support.annotation.NonNull;
|
import android.support.annotation.NonNull;
|
||||||
import android.support.annotation.Nullable;
|
import android.support.annotation.Nullable;
|
||||||
import android.support.v7.app.AppCompatDelegate;
|
import android.support.v7.app.AppCompatDelegate;
|
||||||
import android.support.v7.widget.Toolbar;
|
import android.support.v7.view.menu.ActionMenuItemView;
|
||||||
|
import android.support.v7.widget.TwidereActionMenuView;
|
||||||
import android.util.AttributeSet;
|
import android.util.AttributeSet;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.Window;
|
import android.view.Window;
|
||||||
|
@ -39,8 +40,6 @@ import org.mariotaku.twidere.activity.iface.IAppCompatActivity;
|
||||||
import org.mariotaku.twidere.activity.iface.IThemedActivity;
|
import org.mariotaku.twidere.activity.iface.IThemedActivity;
|
||||||
import org.mariotaku.twidere.util.StrictModeUtils;
|
import org.mariotaku.twidere.util.StrictModeUtils;
|
||||||
import org.mariotaku.twidere.util.ThemeUtils;
|
import org.mariotaku.twidere.util.ThemeUtils;
|
||||||
import org.mariotaku.twidere.util.Utils;
|
|
||||||
import org.mariotaku.twidere.view.ShapedImageView.ShapeStyle;
|
|
||||||
|
|
||||||
import java.lang.reflect.Constructor;
|
import java.lang.reflect.Constructor;
|
||||||
import java.lang.reflect.InvocationTargetException;
|
import java.lang.reflect.InvocationTargetException;
|
||||||
|
@ -140,21 +139,44 @@ public abstract class ThemedAppCompatActivity extends ATEActivity implements Con
|
||||||
view = newInstance(name, context, attrs);
|
view = newInstance(name, context, attrs);
|
||||||
}
|
}
|
||||||
if (view == null) {
|
if (view == null) {
|
||||||
for (String prefix : sClassPrefixList) {
|
view = newInstance(name, context, attrs);
|
||||||
view = newInstance(prefix + name, context, attrs);
|
|
||||||
if (view != null) break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if (view != null) {
|
if (view != null) {
|
||||||
return view;
|
return view;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (parent instanceof TwidereActionMenuView) {
|
||||||
|
final Class<?> cls = findClass(name);
|
||||||
|
if (cls != null && ActionMenuItemView.class.isAssignableFrom(cls)) {
|
||||||
|
return ((TwidereActionMenuView) parent).createActionMenuView(context, attrs);
|
||||||
|
}
|
||||||
|
}
|
||||||
return super.onCreateView(parent, name, context, attrs);
|
return super.onCreateView(parent, name, context, attrs);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private Class<?> findClass(String name) {
|
||||||
|
Class<?> cls = null;
|
||||||
|
try {
|
||||||
|
cls = Class.forName(name);
|
||||||
|
} catch (ClassNotFoundException e) {
|
||||||
|
// Ignore
|
||||||
|
}
|
||||||
|
if (cls != null) return cls;
|
||||||
|
for (String prefix : sClassPrefixList) {
|
||||||
|
try {
|
||||||
|
cls = Class.forName(prefix + name);
|
||||||
|
} catch (ClassNotFoundException e) {
|
||||||
|
// Ignore
|
||||||
|
}
|
||||||
|
if (cls != null) return cls;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
private View newInstance(String name, Context context, AttributeSet attrs) {
|
private View newInstance(String name, Context context, AttributeSet attrs) {
|
||||||
try {
|
try {
|
||||||
final Class<?> cls = Class.forName(name);
|
final Class<?> cls = findClass(name);
|
||||||
|
if (cls == null) throw new ClassNotFoundException(name);
|
||||||
final Constructor<?> constructor = cls.getConstructor(Context.class, AttributeSet.class);
|
final Constructor<?> constructor = cls.getConstructor(Context.class, AttributeSet.class);
|
||||||
return (View) constructor.newInstance(context, attrs);
|
return (View) constructor.newInstance(context, attrs);
|
||||||
} catch (InstantiationException e) {
|
} catch (InstantiationException e) {
|
||||||
|
|
|
@ -68,8 +68,10 @@ import org.mariotaku.twidere.util.theme.ActionBarContextViewViewProcessor;
|
||||||
import org.mariotaku.twidere.util.theme.ExtendedSwipeRefreshLayoutViewProcessor;
|
import org.mariotaku.twidere.util.theme.ExtendedSwipeRefreshLayoutViewProcessor;
|
||||||
import org.mariotaku.twidere.util.theme.FloatingActionButtonViewProcessor;
|
import org.mariotaku.twidere.util.theme.FloatingActionButtonViewProcessor;
|
||||||
import org.mariotaku.twidere.util.theme.TabPagerIndicatorViewProcessor;
|
import org.mariotaku.twidere.util.theme.TabPagerIndicatorViewProcessor;
|
||||||
|
import org.mariotaku.twidere.util.theme.TimelineContentTextViewViewProcessor;
|
||||||
import org.mariotaku.twidere.view.TabPagerIndicator;
|
import org.mariotaku.twidere.view.TabPagerIndicator;
|
||||||
import org.mariotaku.twidere.view.themed.ExtendedSwipeRefreshLayout;
|
import org.mariotaku.twidere.view.ExtendedSwipeRefreshLayout;
|
||||||
|
import org.mariotaku.twidere.view.TimelineContentTextView;
|
||||||
|
|
||||||
public class TwidereApplication extends Application implements Constants,
|
public class TwidereApplication extends Application implements Constants,
|
||||||
OnSharedPreferenceChangeListener {
|
OnSharedPreferenceChangeListener {
|
||||||
|
@ -131,6 +133,7 @@ public class TwidereApplication extends Application implements Constants,
|
||||||
ATE.registerViewProcessor(FloatingActionButton.class, new FloatingActionButtonViewProcessor());
|
ATE.registerViewProcessor(FloatingActionButton.class, new FloatingActionButtonViewProcessor());
|
||||||
ATE.registerViewProcessor(ActionBarContextView.class, new ActionBarContextViewViewProcessor());
|
ATE.registerViewProcessor(ActionBarContextView.class, new ActionBarContextViewViewProcessor());
|
||||||
ATE.registerViewProcessor(ExtendedSwipeRefreshLayout.class, new ExtendedSwipeRefreshLayoutViewProcessor());
|
ATE.registerViewProcessor(ExtendedSwipeRefreshLayout.class, new ExtendedSwipeRefreshLayoutViewProcessor());
|
||||||
|
ATE.registerViewProcessor(TimelineContentTextView.class, new TimelineContentTextViewViewProcessor());
|
||||||
final SharedPreferences preferences = getSharedPreferences();
|
final SharedPreferences preferences = getSharedPreferences();
|
||||||
if (!ATE.config(this, null).isConfigured()) {
|
if (!ATE.config(this, null).isConfigured()) {
|
||||||
final int themeColor = preferences.getInt(KEY_THEME_COLOR, ContextCompat.getColor(this,
|
final int themeColor = preferences.getInt(KEY_THEME_COLOR, ContextCompat.getColor(this,
|
||||||
|
|
|
@ -49,7 +49,7 @@ import org.mariotaku.twidere.util.TwidereColorUtils;
|
||||||
import org.mariotaku.twidere.util.Utils;
|
import org.mariotaku.twidere.util.Utils;
|
||||||
import org.mariotaku.twidere.view.HeaderDrawerLayout;
|
import org.mariotaku.twidere.view.HeaderDrawerLayout;
|
||||||
import org.mariotaku.twidere.view.iface.IExtendedView;
|
import org.mariotaku.twidere.view.iface.IExtendedView;
|
||||||
import org.mariotaku.twidere.view.themed.ExtendedSwipeRefreshLayout;
|
import org.mariotaku.twidere.view.ExtendedSwipeRefreshLayout;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by mariotaku on 15/10/26.
|
* Created by mariotaku on 15/10/26.
|
||||||
|
|
|
@ -163,7 +163,6 @@ import org.mariotaku.twidere.view.CardMediaContainer.OnMediaClickListener;
|
||||||
import org.mariotaku.twidere.view.ColorLabelRelativeLayout;
|
import org.mariotaku.twidere.view.ColorLabelRelativeLayout;
|
||||||
import org.mariotaku.twidere.view.ExtendedRecyclerView;
|
import org.mariotaku.twidere.view.ExtendedRecyclerView;
|
||||||
import org.mariotaku.twidere.view.ForegroundColorView;
|
import org.mariotaku.twidere.view.ForegroundColorView;
|
||||||
import org.mariotaku.twidere.view.StatusTextView;
|
|
||||||
import org.mariotaku.twidere.view.TwitterCardContainer;
|
import org.mariotaku.twidere.view.TwitterCardContainer;
|
||||||
import org.mariotaku.twidere.view.holder.GapViewHolder;
|
import org.mariotaku.twidere.view.holder.GapViewHolder;
|
||||||
import org.mariotaku.twidere.view.holder.LoadIndicatorViewHolder;
|
import org.mariotaku.twidere.view.holder.LoadIndicatorViewHolder;
|
||||||
|
@ -915,7 +914,7 @@ public class StatusFragment extends BaseSupportFragment implements LoaderCallbac
|
||||||
|
|
||||||
private final ActionMenuView menuBar;
|
private final ActionMenuView menuBar;
|
||||||
private final TextView nameView, screenNameView;
|
private final TextView nameView, screenNameView;
|
||||||
private final StatusTextView textView;
|
private final TextView textView;
|
||||||
private final TextView quotedTextView;
|
private final TextView quotedTextView;
|
||||||
private final TextView quotedNameView, quotedScreenNameView;
|
private final TextView quotedNameView, quotedScreenNameView;
|
||||||
private final ImageView profileImageView;
|
private final ImageView profileImageView;
|
||||||
|
@ -951,7 +950,7 @@ public class StatusFragment extends BaseSupportFragment implements LoaderCallbac
|
||||||
menuBar = (ActionMenuView) itemView.findViewById(R.id.menu_bar);
|
menuBar = (ActionMenuView) itemView.findViewById(R.id.menu_bar);
|
||||||
nameView = (TextView) itemView.findViewById(R.id.name);
|
nameView = (TextView) itemView.findViewById(R.id.name);
|
||||||
screenNameView = (TextView) itemView.findViewById(R.id.screen_name);
|
screenNameView = (TextView) itemView.findViewById(R.id.screen_name);
|
||||||
textView = (StatusTextView) itemView.findViewById(R.id.text);
|
textView = (TextView) itemView.findViewById(R.id.text);
|
||||||
profileImageView = (ImageView) itemView.findViewById(R.id.profile_image);
|
profileImageView = (ImageView) itemView.findViewById(R.id.profile_image);
|
||||||
profileTypeView = (ImageView) itemView.findViewById(R.id.profile_type);
|
profileTypeView = (ImageView) itemView.findViewById(R.id.profile_type);
|
||||||
timeSourceView = (TextView) itemView.findViewById(R.id.time_source);
|
timeSourceView = (TextView) itemView.findViewById(R.id.time_source);
|
||||||
|
|
|
@ -183,7 +183,7 @@ public abstract class TwitterAPIStatusesLoader extends ParcelableStatusesLoader
|
||||||
final boolean filtered = shouldFilterStatus(db, status);
|
final boolean filtered = shouldFilterStatus(db, status);
|
||||||
if (filtered) {
|
if (filtered) {
|
||||||
if (!status.is_gap && i != size - 1) {
|
if (!status.is_gap && i != size - 1) {
|
||||||
data.remove(i);
|
data.remove(status);
|
||||||
} else {
|
} else {
|
||||||
status.is_filtered = true;
|
status.is_filtered = true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -657,6 +657,7 @@ public class ThemeUtils implements Constants {
|
||||||
wrapMenuIcon(view, colorDark, colorLight, excludeGroups);
|
wrapMenuIcon(view, colorDark, colorLight, excludeGroups);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static int getActionIconColor(Context context) {
|
public static int getActionIconColor(Context context) {
|
||||||
final int colorDark = ContextCompat.getColor(context, R.color.action_icon_dark);
|
final int colorDark = ContextCompat.getColor(context, R.color.action_icon_dark);
|
||||||
final int colorLight = ContextCompat.getColor(context, R.color.action_icon_light);
|
final int colorLight = ContextCompat.getColor(context, R.color.action_icon_light);
|
||||||
|
@ -664,6 +665,12 @@ public class ThemeUtils implements Constants {
|
||||||
return TwidereColorUtils.getContrastYIQ(itemBackgroundColor, colorDark, colorLight);
|
return TwidereColorUtils.getContrastYIQ(itemBackgroundColor, colorDark, colorLight);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static int getActionIconColor(Context context, int backgroundColor) {
|
||||||
|
final int colorDark = ContextCompat.getColor(context, R.color.action_icon_dark);
|
||||||
|
final int colorLight = ContextCompat.getColor(context, R.color.action_icon_light);
|
||||||
|
return ATEUtil.isColorLight(backgroundColor) ? colorDark : colorLight;
|
||||||
|
}
|
||||||
|
|
||||||
public static void wrapMenuIcon(ActionMenuView view, int colorDark, int colorLight, int... excludeGroups) {
|
public static void wrapMenuIcon(ActionMenuView view, int colorDark, int colorLight, int... excludeGroups) {
|
||||||
final Context context = view.getContext();
|
final Context context = view.getContext();
|
||||||
final int itemBackgroundColor = ThemeUtils.getThemeBackgroundColor(context);
|
final int itemBackgroundColor = ThemeUtils.getThemeBackgroundColor(context);
|
||||||
|
|
|
@ -6,7 +6,7 @@ import android.support.annotation.NonNull;
|
||||||
import com.afollestad.appthemeengine.Config;
|
import com.afollestad.appthemeengine.Config;
|
||||||
import com.afollestad.appthemeengine.viewprocessors.ViewProcessor;
|
import com.afollestad.appthemeengine.viewprocessors.ViewProcessor;
|
||||||
|
|
||||||
import org.mariotaku.twidere.view.themed.ExtendedSwipeRefreshLayout;
|
import org.mariotaku.twidere.view.ExtendedSwipeRefreshLayout;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by mariotaku on 16/3/18.
|
* Created by mariotaku on 16/3/18.
|
||||||
|
|
|
@ -0,0 +1,23 @@
|
||||||
|
package org.mariotaku.twidere.util.theme;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.support.annotation.NonNull;
|
||||||
|
import android.support.annotation.Nullable;
|
||||||
|
|
||||||
|
import com.afollestad.appthemeengine.Config;
|
||||||
|
import com.afollestad.appthemeengine.viewprocessors.ViewProcessor;
|
||||||
|
|
||||||
|
import org.mariotaku.twidere.util.ThemeUtils;
|
||||||
|
import org.mariotaku.twidere.view.TimelineContentTextView;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by mariotaku on 16/3/18.
|
||||||
|
*/
|
||||||
|
public class TimelineContentTextViewViewProcessor implements ViewProcessor<TimelineContentTextView, Object> {
|
||||||
|
@Override
|
||||||
|
public void process(@NonNull Context context, @Nullable String key, @Nullable TimelineContentTextView target, @Nullable Object extra) {
|
||||||
|
if (target == null) return;
|
||||||
|
final int accentColor = Config.accentColor(context, key);
|
||||||
|
target.setLinkTextColor(ThemeUtils.getOptimalAccentColor(accentColor, target.getCurrentTextColor()));
|
||||||
|
}
|
||||||
|
}
|
|
@ -22,7 +22,6 @@ package org.mariotaku.twidere.view;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.res.ColorStateList;
|
import android.content.res.ColorStateList;
|
||||||
import android.support.annotation.NonNull;
|
import android.support.annotation.NonNull;
|
||||||
import android.support.v7.widget.AppCompatMultiAutoCompleteTextView;
|
|
||||||
import android.text.InputType;
|
import android.text.InputType;
|
||||||
import android.text.Selection;
|
import android.text.Selection;
|
||||||
import android.text.method.ArrowKeyMovementMethod;
|
import android.text.method.ArrowKeyMovementMethod;
|
||||||
|
@ -31,6 +30,9 @@ import android.util.AttributeSet;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.widget.AdapterView;
|
import android.widget.AdapterView;
|
||||||
|
|
||||||
|
import com.afollestad.appthemeengine.inflation.ATEMultiAutoCompleteTextView;
|
||||||
|
import com.afollestad.appthemeengine.inflation.ATEMultiAutoCompleteTextView2;
|
||||||
|
|
||||||
import org.mariotaku.twidere.R;
|
import org.mariotaku.twidere.R;
|
||||||
import org.mariotaku.twidere.adapter.ComposeAutoCompleteAdapter;
|
import org.mariotaku.twidere.adapter.ComposeAutoCompleteAdapter;
|
||||||
import org.mariotaku.twidere.model.UserKey;
|
import org.mariotaku.twidere.model.UserKey;
|
||||||
|
@ -38,7 +40,7 @@ import org.mariotaku.twidere.util.EmojiSupportUtils;
|
||||||
import org.mariotaku.twidere.util.widget.StatusTextTokenizer;
|
import org.mariotaku.twidere.util.widget.StatusTextTokenizer;
|
||||||
import org.mariotaku.twidere.view.iface.IThemeBackgroundTintView;
|
import org.mariotaku.twidere.view.iface.IThemeBackgroundTintView;
|
||||||
|
|
||||||
public class ComposeEditText extends AppCompatMultiAutoCompleteTextView implements IThemeBackgroundTintView {
|
public class ComposeEditText extends ATEMultiAutoCompleteTextView2 implements IThemeBackgroundTintView {
|
||||||
|
|
||||||
private ComposeAutoCompleteAdapter mAdapter;
|
private ComposeAutoCompleteAdapter mAdapter;
|
||||||
private UserKey mAccountKey;
|
private UserKey mAccountKey;
|
||||||
|
@ -48,11 +50,7 @@ public class ComposeEditText extends AppCompatMultiAutoCompleteTextView implemen
|
||||||
}
|
}
|
||||||
|
|
||||||
public ComposeEditText(final Context context, final AttributeSet attrs) {
|
public ComposeEditText(final Context context, final AttributeSet attrs) {
|
||||||
this(context, attrs, R.attr.autoCompleteTextViewStyle);
|
super(context, attrs);
|
||||||
}
|
|
||||||
|
|
||||||
public ComposeEditText(final Context context, final AttributeSet attrs, final int defStyle) {
|
|
||||||
super(context, attrs, defStyle);
|
|
||||||
EmojiSupportUtils.initForTextView(this);
|
EmojiSupportUtils.initForTextView(this);
|
||||||
setTokenizer(new StatusTextTokenizer());
|
setTokenizer(new StatusTextTokenizer());
|
||||||
setOnItemClickListener(new AdapterView.OnItemClickListener() {
|
setOnItemClickListener(new AdapterView.OnItemClickListener() {
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.mariotaku.twidere.view.themed;
|
package org.mariotaku.twidere.view;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.graphics.Rect;
|
import android.graphics.Rect;
|
|
@ -24,6 +24,7 @@ import android.content.res.Resources;
|
||||||
import android.content.res.TypedArray;
|
import android.content.res.TypedArray;
|
||||||
import android.support.annotation.Nullable;
|
import android.support.annotation.Nullable;
|
||||||
import android.support.v4.text.BidiFormatter;
|
import android.support.v4.text.BidiFormatter;
|
||||||
|
import android.support.v7.widget.AppCompatTextView;
|
||||||
import android.text.SpannableStringBuilder;
|
import android.text.SpannableStringBuilder;
|
||||||
import android.text.Spanned;
|
import android.text.Spanned;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
|
@ -34,12 +35,11 @@ import android.util.AttributeSet;
|
||||||
import android.util.TypedValue;
|
import android.util.TypedValue;
|
||||||
|
|
||||||
import org.mariotaku.twidere.R;
|
import org.mariotaku.twidere.R;
|
||||||
import org.mariotaku.twidere.view.themed.ThemedTextView;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by mariotaku on 15/5/28.
|
* Created by mariotaku on 15/5/28.
|
||||||
*/
|
*/
|
||||||
public class NameView extends ThemedTextView {
|
public class NameView extends AppCompatTextView {
|
||||||
|
|
||||||
private boolean mNameFirst;
|
private boolean mNameFirst;
|
||||||
private boolean mTwoLine;
|
private boolean mTwoLine;
|
||||||
|
|
|
@ -22,19 +22,19 @@ package org.mariotaku.twidere.view;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.SystemClock;
|
import android.os.SystemClock;
|
||||||
|
import android.support.v7.widget.AppCompatTextView;
|
||||||
import android.text.format.DateUtils;
|
import android.text.format.DateUtils;
|
||||||
import android.util.AttributeSet;
|
import android.util.AttributeSet;
|
||||||
|
|
||||||
import org.mariotaku.twidere.Constants;
|
import org.mariotaku.twidere.Constants;
|
||||||
import org.mariotaku.twidere.R;
|
import org.mariotaku.twidere.R;
|
||||||
import org.mariotaku.twidere.view.themed.ThemedTextView;
|
|
||||||
|
|
||||||
import java.lang.ref.WeakReference;
|
import java.lang.ref.WeakReference;
|
||||||
|
|
||||||
import static android.text.format.DateUtils.getRelativeTimeSpanString;
|
import static android.text.format.DateUtils.getRelativeTimeSpanString;
|
||||||
import static org.mariotaku.twidere.util.Utils.formatSameDayTime;
|
import static org.mariotaku.twidere.util.Utils.formatSameDayTime;
|
||||||
|
|
||||||
public class ShortTimeView extends ThemedTextView implements Constants {
|
public class ShortTimeView extends AppCompatTextView implements Constants {
|
||||||
|
|
||||||
private static final long TICKER_DURATION = 5000L;
|
private static final long TICKER_DURATION = 5000L;
|
||||||
|
|
||||||
|
|
|
@ -1,48 +0,0 @@
|
||||||
package org.mariotaku.twidere.view;
|
|
||||||
|
|
||||||
import android.content.Context;
|
|
||||||
import android.text.method.LinkMovementMethod;
|
|
||||||
import android.text.method.MovementMethod;
|
|
||||||
import android.util.AttributeSet;
|
|
||||||
import android.view.MotionEvent;
|
|
||||||
|
|
||||||
import org.mariotaku.twidere.util.EmojiSupportUtils;
|
|
||||||
import org.mariotaku.twidere.view.themed.ThemedTextView;
|
|
||||||
|
|
||||||
public class StatusTextView extends ThemedTextView {
|
|
||||||
|
|
||||||
public StatusTextView(final Context context) {
|
|
||||||
super(context);
|
|
||||||
EmojiSupportUtils.initForTextView(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
public StatusTextView(final Context context, final AttributeSet attrs) {
|
|
||||||
super(context, attrs);
|
|
||||||
EmojiSupportUtils.initForTextView(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
public StatusTextView(final Context context, final AttributeSet attrs, final int defStyle) {
|
|
||||||
super(context, attrs, defStyle);
|
|
||||||
EmojiSupportUtils.initForTextView(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean dispatchTouchEvent(MotionEvent event) {
|
|
||||||
// FIXME simple workaround to https://code.google.com/p/android/issues/detail?id=191430
|
|
||||||
// Android clears TextView when setText(), so setText before touch
|
|
||||||
if (event.getActionMasked() == MotionEvent.ACTION_DOWN) {
|
|
||||||
if (getSelectionEnd() != getSelectionStart()) {
|
|
||||||
final CharSequence text = getText();
|
|
||||||
setText(null);
|
|
||||||
setText(text);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return super.dispatchTouchEvent(event);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected MovementMethod getDefaultMovementMethod() {
|
|
||||||
return LinkMovementMethod.getInstance();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -20,6 +20,7 @@
|
||||||
package org.mariotaku.twidere.view;
|
package org.mariotaku.twidere.view;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.support.v7.widget.AppCompatTextView;
|
||||||
import android.text.Layout;
|
import android.text.Layout;
|
||||||
import android.text.Spannable;
|
import android.text.Spannable;
|
||||||
import android.text.method.LinkMovementMethod;
|
import android.text.method.LinkMovementMethod;
|
||||||
|
@ -29,13 +30,12 @@ import android.util.AttributeSet;
|
||||||
import android.view.MotionEvent;
|
import android.view.MotionEvent;
|
||||||
|
|
||||||
import org.mariotaku.twidere.util.EmojiSupportUtils;
|
import org.mariotaku.twidere.util.EmojiSupportUtils;
|
||||||
import org.mariotaku.twidere.view.themed.ThemedTextView;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns true when not clicking links
|
* Returns true when not clicking links
|
||||||
* Created by mariotaku on 15/11/20.
|
* Created by mariotaku on 15/11/20.
|
||||||
*/
|
*/
|
||||||
public class TimelineContentTextView extends ThemedTextView {
|
public class TimelineContentTextView extends AppCompatTextView {
|
||||||
private boolean mFirstNotLink;
|
private boolean mFirstNotLink;
|
||||||
|
|
||||||
public TimelineContentTextView(Context context) {
|
public TimelineContentTextView(Context context) {
|
||||||
|
@ -54,8 +54,17 @@ public class TimelineContentTextView extends ThemedTextView {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected MovementMethod getDefaultMovementMethod() {
|
public boolean dispatchTouchEvent(MotionEvent event) {
|
||||||
return LinkMovementMethod.getInstance();
|
// FIXME simple workaround to https://code.google.com/p/android/issues/detail?id=191430
|
||||||
|
// Android clears TextView when setText(), so setText before touch
|
||||||
|
if (event.getActionMasked() == MotionEvent.ACTION_DOWN) {
|
||||||
|
if (getSelectionEnd() != getSelectionStart()) {
|
||||||
|
final CharSequence text = getText();
|
||||||
|
setText(null);
|
||||||
|
setText(text);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return super.dispatchTouchEvent(event);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -90,11 +99,8 @@ public class TimelineContentTextView extends ThemedTextView {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getBaseline() {
|
protected MovementMethod getDefaultMovementMethod() {
|
||||||
try {
|
return LinkMovementMethod.getInstance();
|
||||||
return super.getBaseline();
|
|
||||||
} catch (IndexOutOfBoundsException e) {
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,42 +0,0 @@
|
||||||
/*
|
|
||||||
* Twidere - Twitter client for Android
|
|
||||||
*
|
|
||||||
* Copyright (C) 2012-2015 Mariotaku Lee <mariotaku.lee@gmail.com>
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.mariotaku.twidere.view.themed;
|
|
||||||
|
|
||||||
import android.content.Context;
|
|
||||||
import android.support.v7.widget.AppCompatTextView;
|
|
||||||
import android.util.AttributeSet;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Created by mariotaku on 15/6/30.
|
|
||||||
*/
|
|
||||||
public class ThemedTextView extends AppCompatTextView {
|
|
||||||
public ThemedTextView(Context context) {
|
|
||||||
super(context);
|
|
||||||
}
|
|
||||||
|
|
||||||
public ThemedTextView(Context context, AttributeSet attrs) {
|
|
||||||
super(context, attrs);
|
|
||||||
}
|
|
||||||
|
|
||||||
public ThemedTextView(Context context, AttributeSet attrs, int defStyle) {
|
|
||||||
super(context, attrs, defStyle);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -99,7 +99,7 @@
|
||||||
android:color="?android:textColorSecondary"
|
android:color="?android:textColorSecondary"
|
||||||
android:src="@drawable/ic_action_location"/>
|
android:src="@drawable/ic_action_location"/>
|
||||||
|
|
||||||
<org.mariotaku.twidere.view.themed.ThemedTextView
|
<TextView
|
||||||
android:id="@+id/location_text"
|
android:id="@+id/location_text"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
@ -201,12 +201,13 @@
|
||||||
android:layout_toStartOf="@+id/send"
|
android:layout_toStartOf="@+id/send"
|
||||||
android:scrollbars="none">
|
android:scrollbars="none">
|
||||||
|
|
||||||
<android.support.v7.widget.ActionMenuView
|
<android.support.v7.widget.TwidereActionMenuView
|
||||||
android:id="@+id/menu_bar"
|
android:id="@+id/menu_bar"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:layout_gravity="center"
|
android:layout_gravity="center"
|
||||||
android:background="@null"/>
|
android:background="@null"
|
||||||
|
android:tag="ate_ignore"/>
|
||||||
</FrameLayout>
|
</FrameLayout>
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
android:padding="@dimen/element_spacing_normal">
|
android:padding="@dimen/element_spacing_normal">
|
||||||
|
|
||||||
<org.mariotaku.twidere.view.themed.ThemedTextView
|
<TextView
|
||||||
android:id="@+id/count"
|
android:id="@+id/count"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
@ -26,7 +26,7 @@
|
||||||
android:textStyle="bold"
|
android:textStyle="bold"
|
||||||
tools:text="255"/>
|
tools:text="255"/>
|
||||||
|
|
||||||
<org.mariotaku.twidere.view.themed.ThemedTextView
|
<TextView
|
||||||
android:id="@+id/label"
|
android:id="@+id/label"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
|
|
@ -108,7 +108,7 @@
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
||||||
<org.mariotaku.twidere.view.themed.ThemedTextView
|
<TextView
|
||||||
android:id="@+id/title"
|
android:id="@+id/title"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
@ -134,7 +134,7 @@
|
||||||
android:layout_alignParentEnd="true"
|
android:layout_alignParentEnd="true"
|
||||||
android:layout_alignParentRight="true"/>
|
android:layout_alignParentRight="true"/>
|
||||||
|
|
||||||
<org.mariotaku.twidere.view.themed.ThemedTextView
|
<TextView
|
||||||
android:id="@+id/summary"
|
android:id="@+id/summary"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
|
|
@ -18,7 +18,7 @@
|
||||||
~ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
~ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<org.mariotaku.twidere.view.themed.ThemedTextView
|
<TextView
|
||||||
android:id="@+id/gap_indicator"
|
android:id="@+id/gap_indicator"
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
|
|
|
@ -74,7 +74,7 @@
|
||||||
android:textStyle="italic"
|
android:textStyle="italic"
|
||||||
tools:text="External group at gnu.io"/>
|
tools:text="External group at gnu.io"/>
|
||||||
|
|
||||||
<org.mariotaku.twidere.view.themed.ThemedTextView
|
<TextView
|
||||||
android:id="@+id/description"
|
android:id="@+id/description"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
@ -95,7 +95,7 @@
|
||||||
android:orientation="horizontal"
|
android:orientation="horizontal"
|
||||||
android:paddingTop="@dimen/element_spacing_small">
|
android:paddingTop="@dimen/element_spacing_small">
|
||||||
|
|
||||||
<org.mariotaku.twidere.view.themed.ThemedTextView
|
<TextView
|
||||||
android:id="@+id/members_count"
|
android:id="@+id/members_count"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
@ -107,7 +107,7 @@
|
||||||
android:textAppearance="?android:attr/textAppearanceSmall"
|
android:textAppearance="?android:attr/textAppearanceSmall"
|
||||||
tools:text="255"/>
|
tools:text="255"/>
|
||||||
|
|
||||||
<org.mariotaku.twidere.view.themed.ThemedTextView
|
<TextView
|
||||||
android:id="@+id/admins_count"
|
android:id="@+id/admins_count"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
|
|
@ -47,7 +47,7 @@
|
||||||
android:textColor="?android:attr/textColorSecondary"
|
android:textColor="?android:attr/textColorSecondary"
|
||||||
tools:text="@string/sample_status_text"/>
|
tools:text="@string/sample_status_text"/>
|
||||||
|
|
||||||
<org.mariotaku.twidere.view.themed.ThemedTextView
|
<TextView
|
||||||
android:id="@+id/time"
|
android:id="@+id/time"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
|
|
@ -74,7 +74,7 @@
|
||||||
android:layout_toRightOf="@+id/status_info_icon"
|
android:layout_toRightOf="@+id/status_info_icon"
|
||||||
tools:visibility="visible"/>
|
tools:visibility="visible"/>
|
||||||
|
|
||||||
<org.mariotaku.twidere.view.themed.ThemedTextView
|
<TextView
|
||||||
android:id="@+id/status_info_label"
|
android:id="@+id/status_info_label"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
|
|
@ -78,7 +78,7 @@
|
||||||
tools:text="Created by user"/>
|
tools:text="Created by user"/>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<org.mariotaku.twidere.view.themed.ThemedTextView
|
<TextView
|
||||||
android:id="@+id/description"
|
android:id="@+id/description"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
@ -98,7 +98,7 @@
|
||||||
android:orientation="horizontal"
|
android:orientation="horizontal"
|
||||||
android:paddingTop="@dimen/element_spacing_small">
|
android:paddingTop="@dimen/element_spacing_small">
|
||||||
|
|
||||||
<org.mariotaku.twidere.view.themed.ThemedTextView
|
<TextView
|
||||||
android:id="@+id/members_count"
|
android:id="@+id/members_count"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
@ -109,7 +109,7 @@
|
||||||
android:singleLine="true"
|
android:singleLine="true"
|
||||||
android:textAppearance="?android:attr/textAppearanceSmall"/>
|
android:textAppearance="?android:attr/textAppearanceSmall"/>
|
||||||
|
|
||||||
<org.mariotaku.twidere.view.themed.ThemedTextView
|
<TextView
|
||||||
android:id="@+id/subscribers_count"
|
android:id="@+id/subscribers_count"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
|
|
||||||
<include layout="@layout/layout_content_fragment_common"/>
|
<include layout="@layout/layout_content_fragment_common"/>
|
||||||
|
|
||||||
<org.mariotaku.twidere.view.themed.ExtendedSwipeRefreshLayout
|
<org.mariotaku.twidere.view.ExtendedSwipeRefreshLayout
|
||||||
android:id="@+id/swipe_layout"
|
android:id="@+id/swipe_layout"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
|
@ -42,5 +42,5 @@
|
||||||
android:focusable="true"
|
android:focusable="true"
|
||||||
android:listSelector="?selectableItemBackground"/>
|
android:listSelector="?selectableItemBackground"/>
|
||||||
|
|
||||||
</org.mariotaku.twidere.view.themed.ExtendedSwipeRefreshLayout>
|
</org.mariotaku.twidere.view.ExtendedSwipeRefreshLayout>
|
||||||
</FrameLayout>
|
</FrameLayout>
|
|
@ -25,7 +25,7 @@
|
||||||
|
|
||||||
<include layout="@layout/layout_content_fragment_common"/>
|
<include layout="@layout/layout_content_fragment_common"/>
|
||||||
|
|
||||||
<org.mariotaku.twidere.view.themed.ExtendedSwipeRefreshLayout
|
<org.mariotaku.twidere.view.ExtendedSwipeRefreshLayout
|
||||||
android:id="@+id/swipe_layout"
|
android:id="@+id/swipe_layout"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
|
@ -39,5 +39,5 @@
|
||||||
android:focusable="true"
|
android:focusable="true"
|
||||||
android:scrollbars="vertical"/>
|
android:scrollbars="vertical"/>
|
||||||
|
|
||||||
</org.mariotaku.twidere.view.themed.ExtendedSwipeRefreshLayout>
|
</org.mariotaku.twidere.view.ExtendedSwipeRefreshLayout>
|
||||||
</FrameLayout>
|
</FrameLayout>
|
|
@ -29,7 +29,7 @@
|
||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
android:splitMotionEvents="false">
|
android:splitMotionEvents="false">
|
||||||
|
|
||||||
<org.mariotaku.twidere.view.themed.ThemedTextView
|
<TextView
|
||||||
android:id="@+id/retweeted_by"
|
android:id="@+id/retweeted_by"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
@ -104,7 +104,7 @@
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:orientation="horizontal">
|
android:orientation="horizontal">
|
||||||
|
|
||||||
<org.mariotaku.twidere.view.themed.ThemedTextView
|
<TextView
|
||||||
android:id="@+id/name"
|
android:id="@+id/name"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
@ -113,7 +113,7 @@
|
||||||
android:textColor="?android:textColorPrimary"
|
android:textColor="?android:textColorPrimary"
|
||||||
tools:text="Name"/>
|
tools:text="Name"/>
|
||||||
|
|
||||||
<org.mariotaku.twidere.view.themed.ThemedTextView
|
<TextView
|
||||||
android:id="@+id/screen_name"
|
android:id="@+id/screen_name"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
@ -125,7 +125,7 @@
|
||||||
tools:text="\@username"/>
|
tools:text="\@username"/>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<org.mariotaku.twidere.view.themed.ThemedTextView
|
<TextView
|
||||||
android:id="@+id/time_source"
|
android:id="@+id/time_source"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
@ -164,7 +164,7 @@
|
||||||
</org.mariotaku.twidere.view.ColorLabelRelativeLayout>
|
</org.mariotaku.twidere.view.ColorLabelRelativeLayout>
|
||||||
|
|
||||||
|
|
||||||
<org.mariotaku.twidere.view.StatusTextView
|
<org.mariotaku.twidere.view.TimelineContentTextView
|
||||||
android:id="@+id/text"
|
android:id="@+id/text"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
@ -242,7 +242,7 @@
|
||||||
android:visibility="gone"
|
android:visibility="gone"
|
||||||
tools:visibility="visible">
|
tools:visibility="visible">
|
||||||
|
|
||||||
<org.mariotaku.twidere.view.themed.ThemedTextView
|
<TextView
|
||||||
android:id="@+id/quoted_name"
|
android:id="@+id/quoted_name"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
@ -251,7 +251,7 @@
|
||||||
android:textColor="?android:textColorPrimary"
|
android:textColor="?android:textColorPrimary"
|
||||||
tools:text="Name"/>
|
tools:text="Name"/>
|
||||||
|
|
||||||
<org.mariotaku.twidere.view.themed.ThemedTextView
|
<TextView
|
||||||
android:id="@+id/quoted_screen_name"
|
android:id="@+id/quoted_screen_name"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
@ -263,7 +263,7 @@
|
||||||
tools:text="\@username"/>
|
tools:text="\@username"/>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<org.mariotaku.twidere.view.StatusTextView
|
<org.mariotaku.twidere.view.TimelineContentTextView
|
||||||
android:id="@+id/quoted_text"
|
android:id="@+id/quoted_text"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
@ -396,11 +396,12 @@
|
||||||
android:splitMotionEvents="false"
|
android:splitMotionEvents="false"
|
||||||
tools:visibility="invisible"/>
|
tools:visibility="invisible"/>
|
||||||
|
|
||||||
<android.support.v7.widget.ActionMenuView
|
<android.support.v7.widget.TwidereActionMenuView
|
||||||
android:id="@+id/menu_bar"
|
android:id="@+id/menu_bar"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="?android:actionBarSize"
|
android:layout_height="?android:actionBarSize"
|
||||||
android:layout_below="@+id/counts_users_height_holder"
|
android:layout_below="@+id/counts_users_height_holder"
|
||||||
android:clipChildren="false"/>
|
android:clipChildren="false"
|
||||||
|
android:tag="ate_ignore"/>
|
||||||
|
|
||||||
</RelativeLayout>
|
</RelativeLayout>
|
|
@ -91,7 +91,7 @@
|
||||||
android:minHeight="@dimen/element_size_normal"
|
android:minHeight="@dimen/element_size_normal"
|
||||||
android:orientation="vertical">
|
android:orientation="vertical">
|
||||||
|
|
||||||
<org.mariotaku.twidere.view.themed.ThemedTextView
|
<TextView
|
||||||
android:id="@+id/name"
|
android:id="@+id/name"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
@ -100,7 +100,7 @@
|
||||||
android:textColor="?android:textColorPrimary"
|
android:textColor="?android:textColorPrimary"
|
||||||
tools:text="Name"/>
|
tools:text="Name"/>
|
||||||
|
|
||||||
<org.mariotaku.twidere.view.themed.ThemedTextView
|
<TextView
|
||||||
android:id="@+id/screen_name"
|
android:id="@+id/screen_name"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
@ -110,7 +110,7 @@
|
||||||
android:textColor="?android:textColorPrimary"
|
android:textColor="?android:textColorPrimary"
|
||||||
tools:text="\@screenname"/>
|
tools:text="\@screenname"/>
|
||||||
|
|
||||||
<org.mariotaku.twidere.view.themed.ThemedTextView
|
<TextView
|
||||||
android:id="@+id/following_you_indicator"
|
android:id="@+id/following_you_indicator"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
@ -156,7 +156,7 @@
|
||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
android:padding="@dimen/element_spacing_small">
|
android:padding="@dimen/element_spacing_small">
|
||||||
|
|
||||||
<org.mariotaku.twidere.view.themed.ThemedTextView
|
<TextView
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:padding="@dimen/element_spacing_small"
|
android:padding="@dimen/element_spacing_small"
|
||||||
|
@ -195,7 +195,7 @@
|
||||||
android:color="?android:textColorPrimary"
|
android:color="?android:textColorPrimary"
|
||||||
android:src="@drawable/ic_action_location"/>
|
android:src="@drawable/ic_action_location"/>
|
||||||
|
|
||||||
<org.mariotaku.twidere.view.themed.ThemedTextView
|
<TextView
|
||||||
android:id="@+id/location"
|
android:id="@+id/location"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
@ -252,7 +252,7 @@
|
||||||
android:color="?android:textColorPrimary"
|
android:color="?android:textColorPrimary"
|
||||||
android:src="@drawable/ic_action_time"/>
|
android:src="@drawable/ic_action_time"/>
|
||||||
|
|
||||||
<org.mariotaku.twidere.view.themed.ThemedTextView
|
<TextView
|
||||||
android:id="@+id/created_at"
|
android:id="@+id/created_at"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
@ -289,7 +289,7 @@
|
||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
android:padding="@dimen/element_spacing_small">
|
android:padding="@dimen/element_spacing_small">
|
||||||
|
|
||||||
<org.mariotaku.twidere.view.themed.ThemedTextView
|
<TextView
|
||||||
android:id="@+id/followers_count"
|
android:id="@+id/followers_count"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
@ -298,7 +298,7 @@
|
||||||
android:textColor="?android:textColorPrimary"
|
android:textColor="?android:textColorPrimary"
|
||||||
tools:text="255"/>
|
tools:text="255"/>
|
||||||
|
|
||||||
<org.mariotaku.twidere.view.themed.ThemedTextView
|
<TextView
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:singleLine="true"
|
android:singleLine="true"
|
||||||
|
@ -318,7 +318,7 @@
|
||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
android:padding="@dimen/element_spacing_small">
|
android:padding="@dimen/element_spacing_small">
|
||||||
|
|
||||||
<org.mariotaku.twidere.view.themed.ThemedTextView
|
<TextView
|
||||||
android:id="@+id/friends_count"
|
android:id="@+id/friends_count"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
@ -327,7 +327,7 @@
|
||||||
android:textColor="?android:textColorPrimary"
|
android:textColor="?android:textColorPrimary"
|
||||||
tools:text="255"/>
|
tools:text="255"/>
|
||||||
|
|
||||||
<org.mariotaku.twidere.view.themed.ThemedTextView
|
<TextView
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:singleLine="true"
|
android:singleLine="true"
|
||||||
|
@ -347,7 +347,7 @@
|
||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
android:padding="@dimen/element_spacing_small">
|
android:padding="@dimen/element_spacing_small">
|
||||||
|
|
||||||
<org.mariotaku.twidere.view.themed.ThemedTextView
|
<TextView
|
||||||
android:id="@+id/listed_count"
|
android:id="@+id/listed_count"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
@ -356,7 +356,7 @@
|
||||||
android:textColor="?android:textColorPrimary"
|
android:textColor="?android:textColorPrimary"
|
||||||
tools:text="255"/>
|
tools:text="255"/>
|
||||||
|
|
||||||
<org.mariotaku.twidere.view.themed.ThemedTextView
|
<TextView
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:singleLine="true"
|
android:singleLine="true"
|
||||||
|
@ -376,7 +376,7 @@
|
||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
android:padding="@dimen/element_spacing_small">
|
android:padding="@dimen/element_spacing_small">
|
||||||
|
|
||||||
<org.mariotaku.twidere.view.themed.ThemedTextView
|
<TextView
|
||||||
android:id="@+id/groups_count"
|
android:id="@+id/groups_count"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
@ -385,7 +385,7 @@
|
||||||
android:textColor="?android:textColorPrimary"
|
android:textColor="?android:textColorPrimary"
|
||||||
tools:text="255"/>
|
tools:text="255"/>
|
||||||
|
|
||||||
<org.mariotaku.twidere.view.themed.ThemedTextView
|
<TextView
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:singleLine="true"
|
android:singleLine="true"
|
||||||
|
|
|
@ -22,6 +22,7 @@
|
||||||
<!-- ATE attributes -->
|
<!-- ATE attributes -->
|
||||||
<item name="ateThemeKey">light</item>
|
<item name="ateThemeKey">light</item>
|
||||||
|
|
||||||
|
<item name="actionBarTheme">@null</item>
|
||||||
<item name="preferenceTheme">@style/PreferenceThemeOverlay.v14.Material</item>
|
<item name="preferenceTheme">@style/PreferenceThemeOverlay.v14.Material</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
@ -50,6 +51,8 @@
|
||||||
<!-- ATE attributes -->
|
<!-- ATE attributes -->
|
||||||
<item name="ateThemeKey">light</item>
|
<item name="ateThemeKey">light</item>
|
||||||
|
|
||||||
|
<item name="actionBarTheme">@null</item>
|
||||||
|
<item name="preferenceTheme">@style/PreferenceThemeOverlay.v14.Material</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
|
||||||
|
@ -75,11 +78,14 @@
|
||||||
<!-- ATE attributes -->
|
<!-- ATE attributes -->
|
||||||
<item name="ateThemeKey">light</item>
|
<item name="ateThemeKey">light</item>
|
||||||
|
|
||||||
|
<item name="actionBarTheme">@null</item>
|
||||||
|
<item name="preferenceTheme">@style/PreferenceThemeOverlay.v14.Material</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
|
||||||
<style name="Theme.Twidere.Compose" parent="Theme.Twidere.Dialog">
|
<style name="Theme.Twidere.Compose" parent="Theme.Twidere.Dialog">
|
||||||
|
|
||||||
|
<item name="windowNoTitle">true</item>
|
||||||
<item name="windowActionBar">false</item>
|
<item name="windowActionBar">false</item>
|
||||||
<item name="windowActionModeOverlay">false</item>
|
<item name="windowActionModeOverlay">false</item>
|
||||||
|
|
||||||
|
|
|
@ -23,6 +23,7 @@
|
||||||
<!-- ATE attributes -->
|
<!-- ATE attributes -->
|
||||||
<item name="ateThemeKey">dark</item>
|
<item name="ateThemeKey">dark</item>
|
||||||
|
|
||||||
|
<item name="actionBarTheme">@null</item>
|
||||||
<item name="preferenceTheme">@style/PreferenceThemeOverlay.v14.Material</item>
|
<item name="preferenceTheme">@style/PreferenceThemeOverlay.v14.Material</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
@ -58,6 +59,8 @@
|
||||||
<!-- ATE attributes -->
|
<!-- ATE attributes -->
|
||||||
<item name="ateThemeKey">dark</item>
|
<item name="ateThemeKey">dark</item>
|
||||||
|
|
||||||
|
<item name="actionBarTheme">@null</item>
|
||||||
|
<item name="preferenceTheme">@style/PreferenceThemeOverlay.v14.Material</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style name="Theme.Twidere.Dialog" parent="Theme.AppCompat.Dialog">
|
<style name="Theme.Twidere.Dialog" parent="Theme.AppCompat.Dialog">
|
||||||
|
@ -82,6 +85,8 @@
|
||||||
<!-- ATE attributes -->
|
<!-- ATE attributes -->
|
||||||
<item name="ateThemeKey">dark</item>
|
<item name="ateThemeKey">dark</item>
|
||||||
|
|
||||||
|
<item name="actionBarTheme">@null</item>
|
||||||
|
<item name="preferenceTheme">@style/PreferenceThemeOverlay.v14.Material</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
|
||||||
|
@ -164,6 +169,8 @@
|
||||||
<!-- ATE attributes -->
|
<!-- ATE attributes -->
|
||||||
<item name="ateThemeKey">dark</item>
|
<item name="ateThemeKey">dark</item>
|
||||||
|
|
||||||
|
<item name="actionBarTheme">@null</item>
|
||||||
|
<item name="preferenceTheme">@style/PreferenceThemeOverlay.v14.Material</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style name="Theme.Nyan" parent="Theme.AppCompat.NoActionBar">
|
<style name="Theme.Nyan" parent="Theme.AppCompat.NoActionBar">
|
||||||
|
|
Loading…
Reference in New Issue