v1.7.3 layout fix, performance improvement, update dependency

This commit is contained in:
nuclearfog 2020-03-18 15:04:57 +01:00
parent 36ac684ba3
commit 23eb7a9c66
No known key found for this signature in database
GPG Key ID: ED35E22099354A64
28 changed files with 68 additions and 98 deletions

View File

@ -8,8 +8,8 @@ android {
applicationId 'org.nuclearfog.twidda'
minSdkVersion 16
targetSdkVersion 29
versionCode 10
versionName '1.7.2'
versionCode 11
versionName '1.7.3'
vectorDrawables.useSupportLibrary true
}
@ -44,5 +44,5 @@ dependencies {
implementation 'com.squareup.picasso:picasso:2.71828'
implementation 'com.github.QuadFlask:colorpicker:0.0.13'
implementation 'com.github.nuclearfog:ZoomView:1.0.2'
implementation 'com.github.nuclearfog:Tagger:2.1'
implementation 'com.github.nuclearfog:Tagger:2.2'
}

View File

@ -106,7 +106,7 @@ public class AppSettings extends AppCompatActivity implements OnClickListener, O
fontSpinner.setAdapter(fontAdapter);
fontSpinner.setSelection(settings.getFont());
FontTool.setViewFont(root, settings.getFontFace());
FontTool.setViewFont(settings, root);
toggleImg.setChecked(settings.getImageLoad());
toggleAns.setChecked(settings.getAnswerLoad());
root.setBackgroundColor(settings.getBackgroundColor());

View File

@ -38,7 +38,7 @@ public class DirectMessage extends AppCompatActivity {
GlobalSettings settings = GlobalSettings.getInstance(this);
root.setBackgroundColor(settings.getBackgroundColor());
FontTool.setViewFont(root, settings.getFontFace());
FontTool.setViewFont(settings, root);
}

View File

@ -49,7 +49,7 @@ public class ListDetail extends AppCompatActivity implements OnTabSelectedListen
getSupportActionBar().setTitle(name);
GlobalSettings settings = GlobalSettings.getInstance(this);
FontTool.setViewFont(root, settings.getFontFace());
FontTool.setViewFont(settings, root);
root.setBackgroundColor(settings.getBackgroundColor());
adapter = new FragmentAdapter(getSupportFragmentManager(), LISTCONTENT_PAGE, id, "");
pager.setAdapter(adapter);

View File

@ -60,7 +60,7 @@ public class LoginPage extends AppCompatActivity implements OnClickListener {
btnVeri.setTypeface(settings.getFontFace());
pin.setTypeface(settings.getFontFace());
root.setBackgroundColor(settings.getBackgroundColor());
FontTool.setViewFont(root, settings.getFontFace());
FontTool.setViewFont(settings, root);
}

View File

@ -63,7 +63,7 @@ public class MessagePopup extends AppCompatActivity implements OnClickListener {
GlobalSettings settings = GlobalSettings.getInstance(this);
root.setBackgroundColor(settings.getPopupColor());
FontTool.setViewFont(root, settings.getFontFace());
FontTool.setViewFont(settings, root);
receiver.append(addtion);
send.setOnClickListener(this);

View File

@ -73,7 +73,7 @@ public class ProfileEditor extends AppCompatActivity implements OnClickListener
if (getSupportActionBar() != null)
getSupportActionBar().setTitle(R.string.page_profile_edior);
GlobalSettings settings = GlobalSettings.getInstance(this);
FontTool.setViewFont(root, settings.getFontFace());
FontTool.setViewFont(settings, root);
root.setBackgroundColor(settings.getBackgroundColor());
txtImg.setOnClickListener(this);
pb_image.setOnClickListener(this);

View File

@ -132,11 +132,10 @@ public class TweetDetail extends AppCompatActivity implements OnClickListener, O
getSupportActionBar().setDisplayShowTitleEnabled(false);
FragmentAdapter adapter = new FragmentAdapter(getSupportFragmentManager(), AdapterType.TWEET_PAGE, tweetID, username);
FontTool.setViewFont(root, settings.getFontFace());
FontTool.setViewFont(settings, root);
tweetLoc.setMovementMethod(LinkMovementMethod.getInstance());
tweetText.setMovementMethod(LinkMovementMethod.getInstance());
tweetText.setLinkTextColor(settings.getHighlightColor());
tweetText.setTextColor(settings.getFontColor());
root.setBackgroundColor(settings.getBackgroundColor());
pager.setOffscreenPageLimit(1);
pager.setAdapter(adapter);

View File

@ -104,7 +104,7 @@ public class TweetPopup extends AppCompatActivity implements OnClickListener, Lo
mediaPath = new LinkedList<>();
GlobalSettings settings = GlobalSettings.getInstance(this);
FontTool.setViewFont(root, settings.getFontFace());
FontTool.setViewFont(settings, root);
root.setBackgroundColor(settings.getPopupColor());
tweetText.append(addition);

View File

@ -78,6 +78,6 @@ public class UserDetail extends AppCompatActivity {
adapter = new FragmentAdapter(getSupportFragmentManager(), AdapterType.SUBSCRIBER_PAGE, id, "");
pager.setAdapter(adapter);
}
FontTool.setViewFont(root, settings.getFontFace());
FontTool.setViewFont(settings, root);
}
}

View File

@ -39,7 +39,7 @@ public class UserList extends AppCompatActivity {
FragmentAdapter adapter = new FragmentAdapter(getSupportFragmentManager(), LIST_PAGE, userId, "");
pager.setAdapter(adapter);
FontTool.setViewFont(root, settings.getFontFace());
FontTool.setViewFont(settings, root);
root.setBackgroundColor(settings.getBackgroundColor());
}
}

View File

@ -127,7 +127,7 @@ public class UserProfile extends AppCompatActivity implements OnClickListener,
if (getSupportActionBar() != null)
getSupportActionBar().setDisplayShowTitleEnabled(false);
FontTool.setViewFont(root, settings.getFontFace());
FontTool.setViewFont(settings, root);
bioTxt.setMovementMethod(LinkMovementMethod.getInstance());
tab.setSelectedTabIndicatorColor(settings.getHighlightColor());
bioTxt.setLinkTextColor(settings.getHighlightColor());
@ -143,6 +143,8 @@ public class UserProfile extends AppCompatActivity implements OnClickListener,
favorTabTxt.setTextSize(10);
tweetTabTxt.setTypeface(settings.getFontFace());
favorTabTxt.setTypeface(settings.getFontFace());
tweetTabTxt.setTextColor(settings.getFontColor());
favorTabTxt.setTextColor(settings.getFontColor());
adapter = new FragmentAdapter(getSupportFragmentManager(), AdapterType.PROFILE_TAB, userId, "");
pager.setOffscreenPageLimit(2);

View File

@ -126,7 +126,7 @@ public class ImageAdapter extends Adapter<ImageAdapter.ImageHolder> {
}
class ImageHolder extends ViewHolder {
static class ImageHolder extends ViewHolder {
final View view;
ImageHolder(View view) {

View File

@ -16,6 +16,7 @@ import androidx.recyclerview.widget.RecyclerView.ViewHolder;
import com.squareup.picasso.Picasso;
import org.nuclearfog.twidda.R;
import org.nuclearfog.twidda.backend.helper.FontTool;
import org.nuclearfog.twidda.backend.helper.StringTools;
import org.nuclearfog.twidda.backend.items.TwitterList;
import org.nuclearfog.twidda.backend.items.TwitterUser;
@ -89,17 +90,8 @@ public class ListAdapter extends Adapter<ListAdapter.ListHolder> {
public ListHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_list, parent, false);
final ListHolder vh = new ListHolder(v);
vh.title.setTextColor(settings.getFontColor());
vh.ownername.setTextColor(settings.getFontColor());
vh.description.setTextColor(settings.getFontColor());
vh.createdAt.setTextColor(settings.getFontColor());
vh.title.setTypeface(settings.getFontFace());
vh.ownername.setTypeface(settings.getFontFace());
vh.description.setTypeface(settings.getFontFace());
vh.createdAt.setTypeface(settings.getFontFace());
vh.memberCount.setTypeface(settings.getFontFace());
vh.subscriberCount.setTypeface(settings.getFontFace());
vh.followList.setTypeface(settings.getFontFace());
FontTool.setViewFont(settings, v);
vh.pb_image.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
@ -189,7 +181,7 @@ public class ListAdapter extends Adapter<ListAdapter.ListHolder> {
}
class ListHolder extends ViewHolder {
static class ListHolder extends ViewHolder {
final ImageView pb_image;
final Button followList, deleteList;
final TextView title, ownername, description, createdAt;

View File

@ -19,6 +19,7 @@ import com.squareup.picasso.Picasso;
import org.nuclearfog.tag.Tagger;
import org.nuclearfog.tag.Tagger.OnTagClickListener;
import org.nuclearfog.twidda.R;
import org.nuclearfog.twidda.backend.helper.FontTool;
import org.nuclearfog.twidda.backend.helper.StringTools;
import org.nuclearfog.twidda.backend.items.Message;
import org.nuclearfog.twidda.backend.items.TwitterUser;
@ -83,6 +84,8 @@ public class MessageAdapter extends Adapter<MessageAdapter.MessageHolder> {
public MessageHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_dm, parent, false);
final MessageHolder vh = new MessageHolder(view);
FontTool.setViewFont(settings, view);
vh.message.setMovementMethod(LinkMovementMethod.getInstance());
vh.answer.setOnClickListener(new View.OnClickListener() {
@Override
@ -127,24 +130,13 @@ public class MessageAdapter extends Adapter<MessageAdapter.MessageHolder> {
text = Tagger.makeTextWithLinks(message.getText(), settings.getHighlightColor(), itemClickListener.get());
else
text = Tagger.makeTextWithLinks(message.getText(), settings.getHighlightColor());
vh.message.setText(text);
vh.username.setText(sender.getUsername());
vh.screenname.setText(sender.getScreenname());
vh.createdAt.setText(StringTools.getTimeString(message.getTime()));
vh.receivername.setText(message.getReceiver().getScreenname());
vh.message.setTypeface(settings.getFontFace());
vh.username.setTypeface(settings.getFontFace());
vh.screenname.setTypeface(settings.getFontFace());
vh.receivername.setTypeface(settings.getFontFace());
vh.createdAt.setTypeface(settings.getFontFace());
vh.answer.setTypeface(settings.getFontFace());
vh.delete.setTypeface(settings.getFontFace());
vh.message.setTextColor(settings.getFontColor());
vh.username.setTextColor(settings.getFontColor());
vh.screenname.setTextColor(settings.getFontColor());
vh.receivername.setTextColor(settings.getFontColor());
vh.createdAt.setTextColor(settings.getFontColor());
vh.message.setLinkTextColor(settings.getHighlightColor());
if (sender.isVerified())
vh.username.setCompoundDrawablesWithIntrinsicBounds(R.drawable.verify, 0, 0, 0);
else
@ -158,7 +150,7 @@ public class MessageAdapter extends Adapter<MessageAdapter.MessageHolder> {
}
class MessageHolder extends ViewHolder {
static class MessageHolder extends ViewHolder {
final ImageView profile_img;
final TextView username;
final TextView screenname;

View File

@ -1,7 +1,6 @@
package org.nuclearfog.twidda.adapter;
import android.content.res.Resources;
import android.graphics.Typeface;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
@ -14,6 +13,7 @@ import androidx.recyclerview.widget.RecyclerView.Adapter;
import androidx.recyclerview.widget.RecyclerView.ViewHolder;
import org.nuclearfog.twidda.R;
import org.nuclearfog.twidda.backend.helper.FontTool;
import org.nuclearfog.twidda.backend.items.TwitterTrend;
import org.nuclearfog.twidda.database.GlobalSettings;
@ -73,6 +73,8 @@ public class TrendAdapter extends Adapter<TrendAdapter.ItemHolder> {
public ItemHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_trend, parent, false);
final ItemHolder vh = new ItemHolder(v);
FontTool.setViewFont(settings, v);
v.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
@ -89,15 +91,7 @@ public class TrendAdapter extends Adapter<TrendAdapter.ItemHolder> {
@Override
public void onBindViewHolder(@NonNull ItemHolder vh, int index) {
Typeface font = settings.getFontFace();
int color = settings.getFontColor();
TwitterTrend trend = trends.get(index);
vh.pos.setTextColor(color);
vh.name.setTextColor(color);
vh.vol.setTextColor(color);
vh.pos.setTypeface(font);
vh.name.setTypeface(font);
vh.vol.setTypeface(font);
vh.pos.setText(trend.getRankStr());
vh.name.setText(trend.getName());
if (trend.hasRangeInfo()) {
@ -111,7 +105,7 @@ public class TrendAdapter extends Adapter<TrendAdapter.ItemHolder> {
}
class ItemHolder extends ViewHolder {
static class ItemHolder extends ViewHolder {
final TextView name, pos, vol;
ItemHolder(View v) {

View File

@ -1,6 +1,5 @@
package org.nuclearfog.twidda.adapter;
import android.graphics.Typeface;
import android.text.Spanned;
import android.view.LayoutInflater;
import android.view.View;
@ -18,6 +17,7 @@ import com.squareup.picasso.Picasso;
import org.nuclearfog.tag.Tagger;
import org.nuclearfog.twidda.R;
import org.nuclearfog.twidda.backend.helper.FontTool;
import org.nuclearfog.twidda.backend.helper.StringTools;
import org.nuclearfog.twidda.backend.items.Tweet;
import org.nuclearfog.twidda.backend.items.TwitterUser;
@ -90,6 +90,8 @@ public class TweetAdapter extends Adapter<TweetAdapter.ItemHolder> {
public ItemHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_tweet, parent, false);
final ItemHolder vh = new ItemHolder(v);
FontTool.setViewFont(settings, v);
v.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
@ -107,8 +109,6 @@ public class TweetAdapter extends Adapter<TweetAdapter.ItemHolder> {
public void onBindViewHolder(@NonNull ItemHolder vh, int index) {
Tweet tweet = tweets.get(index);
TwitterUser user = tweet.getUser();
Typeface font = settings.getFontFace();
int color = settings.getFontColor();
if (tweet.getEmbeddedTweet() != null) {
String retweeter = "RT " + user.getScreenname();
@ -118,17 +118,6 @@ public class TweetAdapter extends Adapter<TweetAdapter.ItemHolder> {
} else {
vh.retweeter.setText("");
}
vh.username.setTypeface(font);
vh.screenname.setTypeface(font);
vh.tweet.setTypeface(font);
vh.retweet.setTypeface(font);
vh.favorite.setTypeface(font);
vh.time.setTypeface(font);
vh.retweeter.setTypeface(font);
vh.username.setTextColor(color);
vh.screenname.setTextColor(color);
vh.tweet.setTextColor(color);
vh.time.setTextColor(color);
Spanned text = Tagger.makeTextWithLinks(tweet.getTweet(), settings.getHighlightColor());
vh.tweet.setText(text);
vh.username.setText(user.getUsername());
@ -158,7 +147,7 @@ public class TweetAdapter extends Adapter<TweetAdapter.ItemHolder> {
vh.profile.setImageResource(0);
}
class ItemHolder extends ViewHolder {
static class ItemHolder extends ViewHolder {
final TextView username, screenname, tweet, retweet;
final TextView favorite, retweeter, time;
final ImageView profile;

View File

@ -15,6 +15,7 @@ import androidx.recyclerview.widget.RecyclerView.ViewHolder;
import com.squareup.picasso.Picasso;
import org.nuclearfog.twidda.R;
import org.nuclearfog.twidda.backend.helper.FontTool;
import org.nuclearfog.twidda.backend.items.TwitterUser;
import org.nuclearfog.twidda.database.GlobalSettings;
@ -63,6 +64,8 @@ public class UserAdapter extends Adapter<UserAdapter.ItemHolder> {
public ItemHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_user, parent, false);
final ItemHolder vh = new ItemHolder(v);
FontTool.setViewFont(settings, v);
v.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
@ -80,10 +83,6 @@ public class UserAdapter extends Adapter<UserAdapter.ItemHolder> {
@Override
public void onBindViewHolder(@NonNull ItemHolder vh, int index) {
TwitterUser user = users.get(index);
vh.username.setTextColor(settings.getFontColor());
vh.screenname.setTextColor(settings.getFontColor());
vh.username.setTypeface(settings.getFontFace());
vh.screenname.setTypeface(settings.getFontFace());
vh.username.setText(user.getUsername());
vh.screenname.setText(user.getScreenname());
if (settings.getImageLoad()) {
@ -102,7 +101,7 @@ public class UserAdapter extends Adapter<UserAdapter.ItemHolder> {
}
class ItemHolder extends ViewHolder {
static class ItemHolder extends ViewHolder {
final ImageView profileImg;
final TextView username, screenname;

View File

@ -964,7 +964,7 @@ public class TwitterEngine {
/**
* Internal Exception
*/
public class EngineException extends Exception {
public static class EngineException extends Exception {
private static final int FILENOTFOUND = 600;
private static final int TOKENNOTSET = 601;

View File

@ -1,10 +1,11 @@
package org.nuclearfog.twidda.backend.helper;
import android.graphics.Typeface;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import org.nuclearfog.twidda.database.GlobalSettings;
/**
* Class for converting all fonts in a view
*/
@ -12,19 +13,21 @@ public abstract class FontTool {
/**
* Set fonts to all text elements in a view
*
* @param settings current font settings
* @param v Root view containing views
* @param font Font type
*/
public static void setViewFont(View v, Typeface font) {
public static void setViewFont(GlobalSettings settings, View v) {
if (v instanceof ViewGroup) {
ViewGroup group = (ViewGroup) v;
for (int pos = 0; pos < group.getChildCount(); pos++) {
View child = group.getChildAt(pos);
if (child instanceof ViewGroup)
setViewFont(child, font);
else if (child instanceof TextView)
((TextView) child).setTypeface(font);
setViewFont(settings, child);
else if (child instanceof TextView) {
TextView tv = (TextView) child;
tv.setTypeface(settings.getFontFace());
tv.setTextColor(settings.getFontColor());
}
}
}
}

View File

@ -61,7 +61,7 @@ public class TrendFragment extends Fragment implements OnRefreshListener, TrendC
if (trendTask == null)
load();
if (notifyChange) {
adapter.notifyDataSetChanged();
list.setAdapter(adapter); // re-initialize List
notifyChange = false;
load();
}

View File

@ -90,7 +90,7 @@ public class TweetFragment extends Fragment implements OnRefreshListener, TweetC
if (tweetTask == null)
load();
if (notifyChange) {
adapter.notifyDataSetChanged();
list.setAdapter(adapter); // re-initialize List
notifyChange = false;
}
reload.setProgressBackgroundColorSchemeColor(settings.getHighlightColor());

View File

@ -63,13 +63,6 @@
android:layout_height="match_parent"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/listitem_margin"
android:layout_marginEnd="@dimen/listitem_margin"
android:text="@string/list_created" />
<TextView
android:id="@+id/list_createdat"
android:layout_width="match_parent"

View File

@ -47,19 +47,21 @@
android:id="@+id/color_background"
style="@style/Widget.AppCompat.Button.Borderless"
android:layout_width="0dp"
android:layout_height="@dimen/button_dm"
android:layout_height="@dimen/button_settings_color"
android:layout_margin="@dimen/button_margin"
android:layout_weight="1"
android:singleLine="true"
android:text="@string/background" />
<Button
android:id="@+id/color_font"
style="@style/Widget.AppCompat.Button.Borderless"
android:layout_width="0dp"
android:layout_height="@dimen/button_dm"
android:layout_height="@dimen/button_settings_color"
android:layout_margin="@dimen/button_margin"
android:layout_weight="1"
android:includeFontPadding="false"
android:singleLine="true"
android:text="@string/font"
android:textColor="@android:color/black" />
@ -75,18 +77,20 @@
android:id="@+id/color_popup"
style="@style/Widget.AppCompat.Button.Borderless"
android:layout_width="0dp"
android:layout_height="@dimen/button_dm"
android:layout_height="@dimen/button_settings_color"
android:layout_margin="@dimen/button_margin"
android:layout_weight="1"
android:singleLine="true"
android:text="@string/popup" />
<Button
android:id="@+id/highlight_color"
style="@style/Widget.AppCompat.Button.Borderless"
android:layout_width="0dp"
android:layout_height="@dimen/button_dm"
android:layout_height="@dimen/button_settings_color"
android:layout_margin="@dimen/button_margin"
android:layout_weight="1"
android:singleLine="true"
android:text="@string/highlight" />
</LinearLayout>
@ -201,20 +205,22 @@
android:id="@+id/delete_db"
style="@style/Widget.AppCompat.Button.Borderless"
android:layout_width="0dp"
android:layout_height="@dimen/button_dm"
android:layout_height="@dimen/button_settings_data"
android:layout_margin="@dimen/button_margin"
android:layout_weight="1"
android:background="@drawable/button"
android:singleLine="true"
android:text="@string/delete_database" />
<Button
android:id="@+id/logout"
style="@style/Widget.AppCompat.Button.Borderless"
android:layout_width="0dp"
android:layout_height="@dimen/button_dm"
android:layout_height="@dimen/button_settings_data"
android:layout_margin="@dimen/button_margin"
android:layout_weight="1"
android:background="@drawable/button"
android:singleLine="true"
android:text="@string/logout" />
</LinearLayout>

View File

@ -55,7 +55,7 @@
<string name="logout">ausloggen</string>
<string name="pin_verification_failed">PIN verifizierung fehlgeschlagen!</string>
<string name="answer">Antworten</string>
<string name="delete_dm">löschen..</string>
<string name="delete_dm">löschen</string>
<string name="yes_confirm">Ja</string>
<string name="no_confirm">Nein</string>
<string name="confirm_cancel_tweet">Tweet verwerfen?</string>

View File

@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="halftrancparency">#40000000</color>
<color name="darktrancparency">#80000000</color>
<color name="brighttrancparency">#afffffff</color>
</resources>

View File

@ -42,6 +42,8 @@
<integer name="text_bio_lines">5</integer>
<dimen name="button_dm">40dp</dimen>
<dimen name="button_settings_color">40dp</dimen>
<dimen name="button_settings_data">30dp</dimen>
<dimen name="button_load">48dp</dimen>
<dimen name="button_margin">5dp</dimen>
<dimen name="button_padding">5dp</dimen>

View File

@ -62,7 +62,7 @@
<string name="logout">log out!</string>
<string name="pin_verification_failed">PIN verification failed!</string>
<string name="answer">answer</string>
<string name="delete_dm">delete..</string>
<string name="delete_dm">delete</string>
<string name="yes_confirm">Yes</string>
<string name="no_confirm">No</string>
<string name="confirm_unfollow">unfollow user?</string>