diff --git a/app/src/main/java/com/keylesspalace/tusky/Account.java b/app/src/main/java/com/keylesspalace/tusky/Account.java
index c22eab6fc..3b9ca9971 100644
--- a/app/src/main/java/com/keylesspalace/tusky/Account.java
+++ b/app/src/main/java/com/keylesspalace/tusky/Account.java
@@ -24,17 +24,17 @@ import org.json.JSONObject;
import java.util.ArrayList;
import java.util.List;
-public class Account {
- public String id;
- public String username;
- public String displayName;
- public Spanned note;
- public String url;
- public String avatar;
- public String header;
- public String followersCount;
- public String followingCount;
- public String statusesCount;
+class Account {
+ String id;
+ String username;
+ String displayName;
+ Spanned note;
+ String url;
+ String avatar;
+ String header;
+ String followersCount;
+ String followingCount;
+ String statusesCount;
public static Account parse(JSONObject object) throws JSONException {
Account account = new Account();
diff --git a/app/src/main/java/com/keylesspalace/tusky/AccountActionListener.java b/app/src/main/java/com/keylesspalace/tusky/AccountActionListener.java
index e45cbc932..eb63175b6 100644
--- a/app/src/main/java/com/keylesspalace/tusky/AccountActionListener.java
+++ b/app/src/main/java/com/keylesspalace/tusky/AccountActionListener.java
@@ -15,7 +15,7 @@
package com.keylesspalace.tusky;
-public interface AccountActionListener {
+interface AccountActionListener {
void onViewAccount(String id);
void onBlock(final boolean block, final String id, final int position);
}
diff --git a/app/src/main/java/com/keylesspalace/tusky/AccountActivity.java b/app/src/main/java/com/keylesspalace/tusky/AccountActivity.java
index 822f765d6..83959bdec 100644
--- a/app/src/main/java/com/keylesspalace/tusky/AccountActivity.java
+++ b/app/src/main/java/com/keylesspalace/tusky/AccountActivity.java
@@ -31,6 +31,7 @@ import android.util.TypedValue;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
+import android.view.ViewGroup;
import android.widget.TextView;
import com.android.volley.AuthFailureError;
@@ -96,8 +97,8 @@ public class AccountActivity extends BaseActivity {
}
// Setup the tabs and timeline pager.
- AccountPagerAdapter adapter = new AccountPagerAdapter(
- getSupportFragmentManager(), this, accountId);
+ AccountPagerAdapter adapter = new AccountPagerAdapter(getSupportFragmentManager(), this,
+ accountId);
String[] pageTitles = {
getString(R.string.title_statuses),
getString(R.string.title_follows),
@@ -115,7 +116,7 @@ public class AccountActivity extends BaseActivity {
for (int i = 0; i < tabLayout.getTabCount(); i++) {
TabLayout.Tab tab = tabLayout.getTabAt(i);
if (tab != null) {
- tab.setCustomView(adapter.getTabView(i));
+ tab.setCustomView(adapter.getTabView(i, tabLayout));
}
}
}
diff --git a/app/src/main/java/com/keylesspalace/tusky/AccountPagerAdapter.java b/app/src/main/java/com/keylesspalace/tusky/AccountPagerAdapter.java
index fade04ec7..46f39ffdd 100644
--- a/app/src/main/java/com/keylesspalace/tusky/AccountPagerAdapter.java
+++ b/app/src/main/java/com/keylesspalace/tusky/AccountPagerAdapter.java
@@ -21,20 +21,21 @@ import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.view.LayoutInflater;
import android.view.View;
+import android.view.ViewGroup;
import android.widget.TextView;
-public class AccountPagerAdapter extends FragmentPagerAdapter {
+class AccountPagerAdapter extends FragmentPagerAdapter {
private Context context;
private String accountId;
private String[] pageTitles;
- public AccountPagerAdapter(FragmentManager manager, Context context, String accountId) {
+ AccountPagerAdapter(FragmentManager manager, Context context, String accountId) {
super(manager);
this.context = context;
this.accountId = accountId;
}
- public void setPageTitles(String[] titles) {
+ void setPageTitles(String[] titles) {
pageTitles = titles;
}
@@ -66,8 +67,8 @@ public class AccountPagerAdapter extends FragmentPagerAdapter {
return pageTitles[position];
}
- public View getTabView(int position) {
- View view = LayoutInflater.from(context).inflate(R.layout.tab_account, null);
+ View getTabView(int position, ViewGroup root) {
+ View view = LayoutInflater.from(context).inflate(R.layout.tab_account, root, false);
TextView title = (TextView) view.findViewById(R.id.title);
title.setText(pageTitles[position]);
return view;
diff --git a/app/src/main/java/com/keylesspalace/tusky/AdapterItemRemover.java b/app/src/main/java/com/keylesspalace/tusky/AdapterItemRemover.java
index 3791d7c50..e35a1d2ac 100644
--- a/app/src/main/java/com/keylesspalace/tusky/AdapterItemRemover.java
+++ b/app/src/main/java/com/keylesspalace/tusky/AdapterItemRemover.java
@@ -15,6 +15,6 @@
package com.keylesspalace.tusky;
-public interface AdapterItemRemover {
+interface AdapterItemRemover {
void removeItem(int position);
}
diff --git a/app/src/main/java/com/keylesspalace/tusky/Assert.java b/app/src/main/java/com/keylesspalace/tusky/Assert.java
new file mode 100644
index 000000000..11b6af3e9
--- /dev/null
+++ b/app/src/main/java/com/keylesspalace/tusky/Assert.java
@@ -0,0 +1,27 @@
+/* Copyright 2017 Andrew Dawson
+ *
+ * This file is part of Tusky.
+ *
+ * Tusky 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.
+ *
+ * Tusky 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 Tusky. If not, see
+ * . */
+
+package com.keylesspalace.tusky;
+
+/** Android Studio complains about built-in assertions so here's this is an alternative. */
+class Assert {
+ private static boolean ENABLED = BuildConfig.DEBUG;
+
+ static void expect(boolean expression) {
+ if (ENABLED && !expression) {
+ throw new AssertionError();
+ }
+ }
+}
diff --git a/app/src/main/java/com/keylesspalace/tusky/BlocksAdapter.java b/app/src/main/java/com/keylesspalace/tusky/BlocksAdapter.java
index c3d233944..c37ae1ba6 100644
--- a/app/src/main/java/com/keylesspalace/tusky/BlocksAdapter.java
+++ b/app/src/main/java/com/keylesspalace/tusky/BlocksAdapter.java
@@ -81,7 +81,7 @@ class BlocksAdapter extends AccountAdapter {
}
}
- public void setBlocked(boolean blocked, int position) {
+ void setBlocked(boolean blocked, int position) {
if (blocked) {
unblockedAccountPositions.remove(position);
} else {
diff --git a/app/src/main/java/com/keylesspalace/tusky/ComposeActivity.java b/app/src/main/java/com/keylesspalace/tusky/ComposeActivity.java
index b222c91ca..4019389dd 100644
--- a/app/src/main/java/com/keylesspalace/tusky/ComposeActivity.java
+++ b/app/src/main/java/com/keylesspalace/tusky/ComposeActivity.java
@@ -39,6 +39,7 @@ import android.os.Parcelable;
import android.provider.OpenableColumns;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
+import android.support.annotation.StringRes;
import android.support.design.widget.Snackbar;
import android.support.v4.app.ActivityCompat;
import android.support.v4.content.ContextCompat;
@@ -174,14 +175,15 @@ public class ComposeActivity extends BaseActivity {
};
}
- private void doErrorDialog(int descriptionId, int actionId, View.OnClickListener listener) {
+ private void doErrorDialog(@StringRes int descriptionId, @StringRes int actionId,
+ View.OnClickListener listener) {
Snackbar bar = Snackbar.make(findViewById(R.id.activity_compose), getString(descriptionId),
Snackbar.LENGTH_SHORT);
bar.setAction(actionId, listener);
bar.show();
}
- private void displayTransientError(int stringId) {
+ private void displayTransientError(@StringRes int stringId) {
Snackbar.make(findViewById(R.id.activity_compose), stringId, Snackbar.LENGTH_LONG).show();
}
diff --git a/app/src/main/java/com/keylesspalace/tusky/CountUpDownLatch.java b/app/src/main/java/com/keylesspalace/tusky/CountUpDownLatch.java
index 3e32a1413..d23c400bb 100644
--- a/app/src/main/java/com/keylesspalace/tusky/CountUpDownLatch.java
+++ b/app/src/main/java/com/keylesspalace/tusky/CountUpDownLatch.java
@@ -15,24 +15,24 @@
package com.keylesspalace.tusky;
-public class CountUpDownLatch {
+class CountUpDownLatch {
private int count;
- public CountUpDownLatch() {
+ CountUpDownLatch() {
this.count = 0;
}
- public synchronized void countDown() {
+ synchronized void countDown() {
count--;
notifyAll();
}
- public synchronized void countUp() {
+ synchronized void countUp() {
count++;
notifyAll();
}
- public synchronized void await() throws InterruptedException {
+ synchronized void await() throws InterruptedException {
while (count != 0) {
wait();
}
diff --git a/app/src/main/java/com/keylesspalace/tusky/DateUtils.java b/app/src/main/java/com/keylesspalace/tusky/DateUtils.java
index 202cf353a..96a43e025 100644
--- a/app/src/main/java/com/keylesspalace/tusky/DateUtils.java
+++ b/app/src/main/java/com/keylesspalace/tusky/DateUtils.java
@@ -15,10 +15,10 @@
package com.keylesspalace.tusky;
-public class DateUtils {
+class DateUtils {
/* This is a rough duplicate of android.text.format.DateUtils.getRelativeTimeSpanString,
* but even with the FORMAT_ABBREV_RELATIVE flag it wasn't abbreviating enough. */
- public static String getRelativeTimeSpanString(long then, long now) {
+ static String getRelativeTimeSpanString(long then, long now) {
final long MINUTE = 60;
final long HOUR = 60 * MINUTE;
final long DAY = 24 * HOUR;
diff --git a/app/src/main/java/com/keylesspalace/tusky/DownsizeImageTask.java b/app/src/main/java/com/keylesspalace/tusky/DownsizeImageTask.java
index 1fb49f010..4ad52a657 100644
--- a/app/src/main/java/com/keylesspalace/tusky/DownsizeImageTask.java
+++ b/app/src/main/java/com/keylesspalace/tusky/DownsizeImageTask.java
@@ -22,17 +22,17 @@ import java.io.ByteArrayOutputStream;
import java.util.ArrayList;
import java.util.List;
-public class DownsizeImageTask extends AsyncTask {
+class DownsizeImageTask extends AsyncTask {
private Listener listener;
private int sizeLimit;
private List resultList;
- public DownsizeImageTask(int sizeLimit, Listener listener) {
+ DownsizeImageTask(int sizeLimit, Listener listener) {
this.listener = listener;
this.sizeLimit = sizeLimit;
}
- public static Bitmap scaleDown(Bitmap source, float maxImageSize, boolean filter) {
+ private static Bitmap scaleDown(Bitmap source, float maxImageSize, boolean filter) {
float ratio = Math.min(maxImageSize / source.getWidth(), maxImageSize / source.getHeight());
int width = Math.round(ratio * source.getWidth());
int height = Math.round(ratio * source.getHeight());
@@ -67,7 +67,7 @@ public class DownsizeImageTask extends AsyncTask {
scaledImageSize /= 2;
iterations++;
} while (stream.size() > sizeLimit);
- assert(iterations < 3);
+ Assert.expect(iterations < 3);
resultList.add(stream.toByteArray());
if (isCancelled()) {
return false;
diff --git a/app/src/main/java/com/keylesspalace/tusky/EndlessOnScrollListener.java b/app/src/main/java/com/keylesspalace/tusky/EndlessOnScrollListener.java
index e79e92b84..6b4b7e564 100644
--- a/app/src/main/java/com/keylesspalace/tusky/EndlessOnScrollListener.java
+++ b/app/src/main/java/com/keylesspalace/tusky/EndlessOnScrollListener.java
@@ -18,16 +18,20 @@ package com.keylesspalace.tusky;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
-public abstract class EndlessOnScrollListener extends RecyclerView.OnScrollListener {
- private int visibleThreshold = 15;
- private int currentPage = 0;
- private int previousTotalItemCount = 0;
- private boolean loading = true;
- private int startingPageIndex = 0;
+abstract class EndlessOnScrollListener extends RecyclerView.OnScrollListener {
+ private static final int VISIBLE_THRESHOLD = 15;
+ private int currentPage;
+ private int previousTotalItemCount;
+ private boolean loading;
+ private int startingPageIndex;
private LinearLayoutManager layoutManager;
- public EndlessOnScrollListener(LinearLayoutManager layoutManager) {
+ EndlessOnScrollListener(LinearLayoutManager layoutManager) {
this.layoutManager = layoutManager;
+ currentPage = 0;
+ previousTotalItemCount = 0;
+ loading = true;
+ startingPageIndex = 0;
}
@Override
@@ -45,14 +49,14 @@ public abstract class EndlessOnScrollListener extends RecyclerView.OnScrollListe
loading = false;
previousTotalItemCount = totalItemCount;
}
- if (!loading && lastVisibleItemPosition + visibleThreshold > totalItemCount) {
+ if (!loading && lastVisibleItemPosition + VISIBLE_THRESHOLD > totalItemCount) {
currentPage++;
onLoadMore(currentPage, totalItemCount, view);
loading = true;
}
}
- public void reset() {
+ void reset() {
currentPage = startingPageIndex;
previousTotalItemCount = 0;
loading = true;
diff --git a/app/src/main/java/com/keylesspalace/tusky/FlowLayout.java b/app/src/main/java/com/keylesspalace/tusky/FlowLayout.java
index 587592337..c2844cdde 100644
--- a/app/src/main/java/com/keylesspalace/tusky/FlowLayout.java
+++ b/app/src/main/java/com/keylesspalace/tusky/FlowLayout.java
@@ -45,7 +45,7 @@ public class FlowLayout extends ViewGroup {
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
- assert (MeasureSpec.getMode(widthMeasureSpec) != MeasureSpec.UNSPECIFIED);
+ Assert.expect(MeasureSpec.getMode(widthMeasureSpec) != MeasureSpec.UNSPECIFIED);
int width = MeasureSpec.getSize(widthMeasureSpec) - getPaddingLeft() - getPaddingRight();
int height = MeasureSpec.getSize(heightMeasureSpec) - getPaddingTop() - getPaddingBottom();
int count = getChildCount();
diff --git a/app/src/main/java/com/keylesspalace/tusky/FooterViewHolder.java b/app/src/main/java/com/keylesspalace/tusky/FooterViewHolder.java
index cd47c139c..d285d8a84 100644
--- a/app/src/main/java/com/keylesspalace/tusky/FooterViewHolder.java
+++ b/app/src/main/java/com/keylesspalace/tusky/FooterViewHolder.java
@@ -21,7 +21,7 @@ import android.widget.Button;
import android.widget.ProgressBar;
import android.widget.TextView;
-public class FooterViewHolder extends RecyclerView.ViewHolder {
+class FooterViewHolder extends RecyclerView.ViewHolder {
private View retryBar;
private TextView retryMessage;
private Button retry;
@@ -34,7 +34,7 @@ public class FooterViewHolder extends RecyclerView.ViewHolder {
END_OF_TIMELINE,
}
- public FooterViewHolder(View itemView) {
+ FooterViewHolder(View itemView) {
super(itemView);
retryBar = itemView.findViewById(R.id.footer_retry_bar);
retryMessage = (TextView) itemView.findViewById(R.id.footer_retry_message);
@@ -44,7 +44,7 @@ public class FooterViewHolder extends RecyclerView.ViewHolder {
endOfTimelineMessage = (TextView) itemView.findViewById(R.id.footer_end_of_timeline_text);
}
- public void setupButton(final FooterActionListener listener) {
+ void setupButton(final FooterActionListener listener) {
retry.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
@@ -53,15 +53,15 @@ public class FooterViewHolder extends RecyclerView.ViewHolder {
});
}
- public void setRetryMessage(int messageId) {
+ void setRetryMessage(int messageId) {
retryMessage.setText(messageId);
}
- public void setEndOfTimelineMessage(int messageId) {
+ void setEndOfTimelineMessage(int messageId) {
endOfTimelineMessage.setText(messageId);
}
- public void setState(State state) {
+ void setState(State state) {
switch (state) {
case LOADING: {
retryBar.setVisibility(View.GONE);
diff --git a/app/src/main/java/com/keylesspalace/tusky/HtmlUtils.java b/app/src/main/java/com/keylesspalace/tusky/HtmlUtils.java
index 7d62b4642..029cc3336 100644
--- a/app/src/main/java/com/keylesspalace/tusky/HtmlUtils.java
+++ b/app/src/main/java/com/keylesspalace/tusky/HtmlUtils.java
@@ -19,7 +19,7 @@ import android.os.Build;
import android.text.Html;
import android.text.Spanned;
-public class HtmlUtils {
+class HtmlUtils {
private static CharSequence trimTrailingWhitespace(CharSequence s) {
int i = s.length();
do {
@@ -28,7 +28,7 @@ public class HtmlUtils {
return s.subSequence(0, i + 1);
}
- public static Spanned fromHtml(String html) {
+ static Spanned fromHtml(String html) {
Spanned result;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
result = Html.fromHtml(html, Html.FROM_HTML_MODE_LEGACY);
diff --git a/app/src/main/java/com/keylesspalace/tusky/IOUtils.java b/app/src/main/java/com/keylesspalace/tusky/IOUtils.java
index 5e54aeef1..82c98c669 100644
--- a/app/src/main/java/com/keylesspalace/tusky/IOUtils.java
+++ b/app/src/main/java/com/keylesspalace/tusky/IOUtils.java
@@ -20,8 +20,8 @@ import android.support.annotation.Nullable;
import java.io.IOException;
import java.io.InputStream;
-public class IOUtils {
- public static void closeQuietly(@Nullable InputStream stream) {
+class IOUtils {
+ static void closeQuietly(@Nullable InputStream stream) {
try {
if (stream != null) {
stream.close();
diff --git a/app/src/main/java/com/keylesspalace/tusky/MainActivity.java b/app/src/main/java/com/keylesspalace/tusky/MainActivity.java
index afab447a3..360cd62ea 100644
--- a/app/src/main/java/com/keylesspalace/tusky/MainActivity.java
+++ b/app/src/main/java/com/keylesspalace/tusky/MainActivity.java
@@ -63,7 +63,7 @@ public class MainActivity extends BaseActivity {
setSupportActionBar(toolbar);
// Setup the tabs and timeline pager.
- TimelinePagerAdapter adapter = new TimelinePagerAdapter(getSupportFragmentManager(), this);
+ TimelinePagerAdapter adapter = new TimelinePagerAdapter(getSupportFragmentManager());
String[] pageTitles = {
getString(R.string.title_home),
getString(R.string.title_notifications),
diff --git a/app/src/main/java/com/keylesspalace/tusky/MultipartRequest.java b/app/src/main/java/com/keylesspalace/tusky/MultipartRequest.java
index c9bcbafa1..41dd05e73 100644
--- a/app/src/main/java/com/keylesspalace/tusky/MultipartRequest.java
+++ b/app/src/main/java/com/keylesspalace/tusky/MultipartRequest.java
@@ -29,14 +29,14 @@ import java.io.DataOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
-public class MultipartRequest extends Request {
+class MultipartRequest extends Request {
private static final String CHARSET = "utf-8";
private final String boundary = "something-" + System.currentTimeMillis();
private JSONObject parameters;
private Response.Listener listener;
- public MultipartRequest(int method, String url, JSONObject parameters,
+ MultipartRequest(int method, String url, JSONObject parameters,
Response.Listener listener, Response.ErrorListener errorListener) {
super(method, url, errorListener);
this.parameters = parameters;
@@ -108,10 +108,10 @@ public class MultipartRequest extends Request {
return null;
}
- public static class DataItem {
- public String name;
- public String filename;
- public String mimeType;
- public byte[] content;
+ static class DataItem {
+ String name;
+ String filename;
+ String mimeType;
+ byte[] content;
}
}
diff --git a/app/src/main/java/com/keylesspalace/tusky/Notification.java b/app/src/main/java/com/keylesspalace/tusky/Notification.java
index 6dce737c5..83aee6c4a 100644
--- a/app/src/main/java/com/keylesspalace/tusky/Notification.java
+++ b/app/src/main/java/com/keylesspalace/tusky/Notification.java
@@ -24,8 +24,8 @@ import org.json.JSONObject;
import java.util.ArrayList;
import java.util.List;
-public class Notification {
- public enum Type {
+class Notification {
+ enum Type {
MENTION,
REBLOG,
FAVOURITE,
@@ -37,39 +37,39 @@ public class Notification {
/** Which of the user's statuses has been mentioned, reblogged, or favourited. */
private Status status;
- public Notification(Type type, String id, String displayName) {
+ private Notification(Type type, String id, String displayName) {
this.type = type;
this.id = id;
this.displayName = displayName;
}
- public Type getType() {
+ Type getType() {
return type;
}
- public String getId() {
+ String getId() {
return id;
}
- public String getDisplayName() {
+ String getDisplayName() {
return displayName;
}
- public @Nullable Status getStatus() {
+ @Nullable Status getStatus() {
return status;
}
- public void setStatus(Status status) {
+ void setStatus(Status status) {
this.status = status;
}
- public boolean hasStatusType() {
+ private boolean hasStatusType() {
return type == Type.MENTION
|| type == Type.FAVOURITE
|| type == Type.REBLOG;
}
- public static List parse(JSONArray array) throws JSONException {
+ static List parse(JSONArray array) throws JSONException {
List notifications = new ArrayList<>();
for (int i = 0; i < array.length(); i++) {
JSONObject object = array.getJSONObject(i);
diff --git a/app/src/main/java/com/keylesspalace/tusky/NotificationsAdapter.java b/app/src/main/java/com/keylesspalace/tusky/NotificationsAdapter.java
index ca3064333..9e1e13905 100644
--- a/app/src/main/java/com/keylesspalace/tusky/NotificationsAdapter.java
+++ b/app/src/main/java/com/keylesspalace/tusky/NotificationsAdapter.java
@@ -28,7 +28,7 @@ import java.util.ArrayList;
import java.util.Date;
import java.util.List;
-public class NotificationsAdapter extends RecyclerView.Adapter implements AdapterItemRemover {
+class NotificationsAdapter extends RecyclerView.Adapter implements AdapterItemRemover {
private static final int VIEW_TYPE_MENTION = 0;
private static final int VIEW_TYPE_FOOTER = 1;
private static final int VIEW_TYPE_STATUS_NOTIFICATION = 2;
@@ -39,7 +39,7 @@ public class NotificationsAdapter extends RecyclerView.Adapter implements Adapte
private FooterActionListener footerListener;
private FooterViewHolder.State footerState;
- public NotificationsAdapter(StatusActionListener statusListener,
+ NotificationsAdapter(StatusActionListener statusListener,
FooterActionListener footerListener) {
super();
notifications = new ArrayList<>();
@@ -143,7 +143,7 @@ public class NotificationsAdapter extends RecyclerView.Adapter implements Adapte
return null;
}
- public int update(List new_notifications) {
+ int update(List new_notifications) {
int scrollToPosition;
if (notifications == null || notifications.isEmpty()) {
notifications = new_notifications;
@@ -162,7 +162,7 @@ public class NotificationsAdapter extends RecyclerView.Adapter implements Adapte
return scrollToPosition;
}
- public void addItems(List new_notifications) {
+ void addItems(List new_notifications) {
int end = notifications.size();
notifications.addAll(new_notifications);
notifyItemRangeInserted(end, new_notifications.size());
@@ -173,19 +173,19 @@ public class NotificationsAdapter extends RecyclerView.Adapter implements Adapte
notifyItemChanged(position);
}
- public void setFooterState(FooterViewHolder.State state) {
+ void setFooterState(FooterViewHolder.State state) {
footerState = state;
}
- public static class FollowViewHolder extends RecyclerView.ViewHolder {
+ private static class FollowViewHolder extends RecyclerView.ViewHolder {
private TextView message;
- public FollowViewHolder(View itemView) {
+ FollowViewHolder(View itemView) {
super(itemView);
message = (TextView) itemView.findViewById(R.id.notification_text);
}
- public void setMessage(String displayName) {
+ void setMessage(String displayName) {
Context context = message.getContext();
String format = context.getString(R.string.notification_follow_format);
String wholeMessage = String.format(format, displayName);
@@ -193,19 +193,19 @@ public class NotificationsAdapter extends RecyclerView.Adapter implements Adapte
}
}
- public static class StatusNotificationViewHolder extends RecyclerView.ViewHolder {
+ private static class StatusNotificationViewHolder extends RecyclerView.ViewHolder {
private TextView message;
private ImageView icon;
private TextView statusContent;
- public StatusNotificationViewHolder(View itemView) {
+ StatusNotificationViewHolder(View itemView) {
super(itemView);
message = (TextView) itemView.findViewById(R.id.notification_text);
icon = (ImageView) itemView.findViewById(R.id.notification_icon);
statusContent = (TextView) itemView.findViewById(R.id.notification_content);
}
- public void setMessage(Notification.Type type, String displayName, Status status) {
+ void setMessage(Notification.Type type, String displayName, Status status) {
Context context = message.getContext();
String format;
switch (type) {
diff --git a/app/src/main/java/com/keylesspalace/tusky/PreferencesActivity.java b/app/src/main/java/com/keylesspalace/tusky/PreferencesActivity.java
index 22187c716..53b29ceab 100644
--- a/app/src/main/java/com/keylesspalace/tusky/PreferencesActivity.java
+++ b/app/src/main/java/com/keylesspalace/tusky/PreferencesActivity.java
@@ -33,11 +33,7 @@ public class PreferencesActivity extends AppCompatActivity
themeSwitched = savedInstanceState.getBoolean("themeSwitched");
} else {
Bundle extras = getIntent().getExtras();
- if (extras != null) {
- themeSwitched = extras.getBoolean("themeSwitched");
- } else {
- themeSwitched = false;
- }
+ themeSwitched = extras != null && extras.getBoolean("themeSwitched");
}
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
diff --git a/app/src/main/java/com/keylesspalace/tusky/PullNotificationService.java b/app/src/main/java/com/keylesspalace/tusky/PullNotificationService.java
index 63fa2a3f4..13d75e75f 100644
--- a/app/src/main/java/com/keylesspalace/tusky/PullNotificationService.java
+++ b/app/src/main/java/com/keylesspalace/tusky/PullNotificationService.java
@@ -140,9 +140,9 @@ public class PullNotificationService extends IntentService {
}
private static class MentionResult {
- public String displayName;
- public String content;
- public String avatarUrl;
+ String displayName;
+ String content;
+ String avatarUrl;
}
private String truncateWithEllipses(String string, int limit) {
diff --git a/app/src/main/java/com/keylesspalace/tusky/Status.java b/app/src/main/java/com/keylesspalace/tusky/Status.java
index 6d018b3f3..34c8ba64e 100644
--- a/app/src/main/java/com/keylesspalace/tusky/Status.java
+++ b/app/src/main/java/com/keylesspalace/tusky/Status.java
@@ -56,7 +56,7 @@ public class Status {
private MediaAttachment[] attachments;
private Mention[] mentions;
- public static final int MAX_MEDIA_ATTACHMENTS = 4;
+ static final int MAX_MEDIA_ATTACHMENTS = 4;
public Status(String id, String accountId, String displayName, String username, Spanned content,
String avatar, Date createdAt, boolean reblogged, boolean favourited,
@@ -76,87 +76,87 @@ public class Status {
this.mentions = new Mention[0];
}
- public String getId() {
+ String getId() {
return id;
}
- public String getAccountId() {
+ String getAccountId() {
return accountId;
}
- public String getDisplayName() {
+ String getDisplayName() {
return displayName;
}
- public String getUsername() {
+ String getUsername() {
return username;
}
- public Spanned getContent() {
+ Spanned getContent() {
return content;
}
- public String getAvatar() {
+ String getAvatar() {
return avatar;
}
- public Date getCreatedAt() {
+ Date getCreatedAt() {
return createdAt;
}
- public String getRebloggedByDisplayName() {
+ String getRebloggedByDisplayName() {
return rebloggedByDisplayName;
}
- public boolean getReblogged() {
+ boolean getReblogged() {
return reblogged;
}
- public boolean getFavourited() {
+ boolean getFavourited() {
return favourited;
}
- public boolean getSensitive() {
+ boolean getSensitive() {
return sensitive;
}
- public String getSpoilerText() {
+ String getSpoilerText() {
return spoilerText;
}
- public Visibility getVisibility() {
+ Visibility getVisibility() {
return visibility;
}
- public MediaAttachment[] getAttachments() {
+ MediaAttachment[] getAttachments() {
return attachments;
}
- public Mention[] getMentions() {
+ Mention[] getMentions() {
return mentions;
}
- public void setRebloggedByDisplayName(String name) {
+ private void setRebloggedByDisplayName(String name) {
rebloggedByDisplayName = name;
}
- public void setReblogged(boolean reblogged) {
+ void setReblogged(boolean reblogged) {
this.reblogged = reblogged;
}
- public void setFavourited(boolean favourited) {
+ void setFavourited(boolean favourited) {
this.favourited = favourited;
}
- public void setSpoilerText(String spoilerText) {
+ private void setSpoilerText(String spoilerText) {
this.spoilerText = spoilerText;
}
- public void setMentions(Mention[] mentions) {
+ private void setMentions(Mention[] mentions) {
this.mentions = mentions;
}
- public void setAttachments(MediaAttachment[] attachments, boolean sensitive) {
+ private void setAttachments(MediaAttachment[] attachments, boolean sensitive) {
this.attachments = attachments;
this.sensitive = sensitive;
}
@@ -285,7 +285,7 @@ public class Status {
return statuses;
}
- public static class MediaAttachment {
+ static class MediaAttachment {
enum Type {
IMAGE,
VIDEO,
@@ -295,45 +295,45 @@ public class Status {
private String previewUrl;
private Type type;
- public MediaAttachment(String url, String previewUrl, Type type) {
+ MediaAttachment(String url, String previewUrl, Type type) {
this.url = url;
this.previewUrl = previewUrl;
this.type = type;
}
- public String getUrl() {
+ String getUrl() {
return url;
}
- public String getPreviewUrl() {
+ String getPreviewUrl() {
return previewUrl;
}
- public Type getType() {
+ Type getType() {
return type;
}
}
- public static class Mention {
+ static class Mention {
private String url;
private String username;
private String id;
- public Mention(String url, String username, String id) {
+ Mention(String url, String username, String id) {
this.url = url;
this.username = username;
this.id = id;
}
- public String getUrl() {
+ String getUrl() {
return url;
}
- public String getUsername() {
+ String getUsername() {
return username;
}
- public String getId() {
+ String getId() {
return id;
}
}
diff --git a/app/src/main/java/com/keylesspalace/tusky/StatusActionListener.java b/app/src/main/java/com/keylesspalace/tusky/StatusActionListener.java
index dabdf0e32..b8baf0d39 100644
--- a/app/src/main/java/com/keylesspalace/tusky/StatusActionListener.java
+++ b/app/src/main/java/com/keylesspalace/tusky/StatusActionListener.java
@@ -17,7 +17,7 @@ package com.keylesspalace.tusky;
import android.view.View;
-public interface StatusActionListener {
+interface StatusActionListener {
void onReply(int position);
void onReblog(final boolean reblog, final int position);
void onFavourite(final boolean favourite, final int position);
diff --git a/app/src/main/java/com/keylesspalace/tusky/StatusViewHolder.java b/app/src/main/java/com/keylesspalace/tusky/StatusViewHolder.java
index 249b38377..2c0a6ace1 100644
--- a/app/src/main/java/com/keylesspalace/tusky/StatusViewHolder.java
+++ b/app/src/main/java/com/keylesspalace/tusky/StatusViewHolder.java
@@ -34,7 +34,7 @@ import com.android.volley.toolbox.NetworkImageView;
import java.util.Date;
-public class StatusViewHolder extends RecyclerView.ViewHolder {
+class StatusViewHolder extends RecyclerView.ViewHolder {
private View container;
private TextView displayName;
private TextView username;
@@ -58,7 +58,7 @@ public class StatusViewHolder extends RecyclerView.ViewHolder {
private TextView contentWarningDescription;
private ToggleButton contentWarningButton;
- public StatusViewHolder(View itemView) {
+ StatusViewHolder(View itemView) {
super(itemView);
container = itemView.findViewById(R.id.status_container);
displayName = (TextView) itemView.findViewById(R.id.status_display_name);
@@ -94,18 +94,18 @@ public class StatusViewHolder extends RecyclerView.ViewHolder {
(ToggleButton) itemView.findViewById(R.id.status_content_warning_button);
}
- public void setDisplayName(String name) {
+ private void setDisplayName(String name) {
displayName.setText(name);
}
- public void setUsername(String name) {
+ void setUsername(String name) {
Context context = username.getContext();
String format = context.getString(R.string.status_username_format);
String usernameText = String.format(format, name);
username.setText(usernameText);
}
- public void setContent(Spanned content, Status.Mention[] mentions,
+ private void setContent(Spanned content, Status.Mention[] mentions,
final StatusActionListener listener) {
/* Redirect URLSpan's in the status content to the listener for viewing tag pages and
* account pages. */
@@ -154,7 +154,7 @@ public class StatusViewHolder extends RecyclerView.ViewHolder {
this.content.setMovementMethod(LinkMovementMethod.getInstance());
}
- public void setAvatar(String url) {
+ private void setAvatar(String url) {
if (url.isEmpty()) {
return;
}
@@ -163,7 +163,7 @@ public class StatusViewHolder extends RecyclerView.ViewHolder {
avatar.setImageUrl(url, imageLoader);
}
- public void setCreatedAt(@Nullable Date createdAt) {
+ private void setCreatedAt(@Nullable Date createdAt) {
String readout;
if (createdAt != null) {
long then = createdAt.getTime();
@@ -175,7 +175,7 @@ public class StatusViewHolder extends RecyclerView.ViewHolder {
sinceCreated.setText(readout);
}
- public void setRebloggedByDisplayName(String name) {
+ private void setRebloggedByDisplayName(String name) {
Context context = rebloggedByDisplayName.getContext();
String format = context.getString(R.string.status_boosted_format);
String boostedText = String.format(format, name);
@@ -183,11 +183,11 @@ public class StatusViewHolder extends RecyclerView.ViewHolder {
rebloggedBar.setVisibility(View.VISIBLE);
}
- public void hideRebloggedByDisplayName() {
+ private void hideRebloggedByDisplayName() {
rebloggedBar.setVisibility(View.GONE);
}
- public void setReblogged(boolean reblogged) {
+ private void setReblogged(boolean reblogged) {
this.reblogged = reblogged;
int attribute;
if (reblogged) {
@@ -199,7 +199,7 @@ public class StatusViewHolder extends RecyclerView.ViewHolder {
}
/** This should only be called after setReblogged, in order to override the tint correctly. */
- public void setRebloggingEnabled(boolean enabled) {
+ private void setRebloggingEnabled(boolean enabled) {
reblogButton.setEnabled(enabled);
if (enabled) {
reblogButton.setImageResource(R.drawable.ic_reblog);
@@ -209,7 +209,7 @@ public class StatusViewHolder extends RecyclerView.ViewHolder {
}
}
- public void setFavourited(boolean favourited) {
+ private void setFavourited(boolean favourited) {
this.favourited = favourited;
int attribute;
if (favourited) {
@@ -220,7 +220,7 @@ public class StatusViewHolder extends RecyclerView.ViewHolder {
ThemeUtils.setImageViewTint(favouriteButton, attribute);
}
- public void setMediaPreviews(final Status.MediaAttachment[] attachments,
+ private void setMediaPreviews(final Status.MediaAttachment[] attachments,
boolean sensitive, final StatusActionListener listener) {
final NetworkImageView[] previews = {
mediaPreview0,
@@ -268,11 +268,11 @@ public class StatusViewHolder extends RecyclerView.ViewHolder {
}
}
- public void hideSensitiveMediaWarning() {
+ private void hideSensitiveMediaWarning() {
sensitiveMediaWarning.setVisibility(View.GONE);
}
- public void setSpoilerText(String spoilerText) {
+ private void setSpoilerText(String spoilerText) {
contentWarningDescription.setText(spoilerText);
contentWarningBar.setVisibility(View.VISIBLE);
content.setVisibility(View.GONE);
@@ -289,12 +289,12 @@ public class StatusViewHolder extends RecyclerView.ViewHolder {
});
}
- public void hideSpoilerText() {
+ private void hideSpoilerText() {
contentWarningBar.setVisibility(View.GONE);
content.setVisibility(View.VISIBLE);
}
- public void setupButtons(final StatusActionListener listener, final int position) {
+ private void setupButtons(final StatusActionListener listener, final int position) {
avatar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
@@ -339,7 +339,7 @@ public class StatusViewHolder extends RecyclerView.ViewHolder {
container.setOnClickListener(viewThreadListener);
}
- public void setupWithStatus(Status status, StatusActionListener listener, int position) {
+ void setupWithStatus(Status status, StatusActionListener listener, int position) {
setDisplayName(status.getDisplayName());
setUsername(status.getUsername());
setCreatedAt(status.getCreatedAt());
diff --git a/app/src/main/java/com/keylesspalace/tusky/ThemeUtils.java b/app/src/main/java/com/keylesspalace/tusky/ThemeUtils.java
index 8db45facd..1d3cb82ec 100644
--- a/app/src/main/java/com/keylesspalace/tusky/ThemeUtils.java
+++ b/app/src/main/java/com/keylesspalace/tusky/ThemeUtils.java
@@ -22,8 +22,8 @@ import android.support.v4.content.ContextCompat;
import android.util.TypedValue;
import android.widget.ImageView;
-public class ThemeUtils {
- public static Drawable getDrawable(Context context, int attribute, int fallbackDrawable) {
+class ThemeUtils {
+ static Drawable getDrawable(Context context, int attribute, int fallbackDrawable) {
TypedValue value = new TypedValue();
int resourceId;
if (context.getTheme().resolveAttribute(attribute, value, true)) {
@@ -34,7 +34,7 @@ public class ThemeUtils {
return ContextCompat.getDrawable(context, resourceId);
}
- public static int getDrawableId(Context context, int attribute, int fallbackDrawableId) {
+ static int getDrawableId(Context context, int attribute, int fallbackDrawableId) {
TypedValue value = new TypedValue();
if (context.getTheme().resolveAttribute(attribute, value, true)) {
return value.resourceId;
@@ -43,7 +43,7 @@ public class ThemeUtils {
}
}
- public static int getColor(Context context, int attribute) {
+ static int getColor(Context context, int attribute) {
TypedValue value = new TypedValue();
if (context.getTheme().resolveAttribute(attribute, value, true)) {
return value.data;
@@ -52,7 +52,7 @@ public class ThemeUtils {
}
}
- public static void setImageViewTint(ImageView view, int attribute) {
+ static void setImageViewTint(ImageView view, int attribute) {
view.setColorFilter(getColor(view.getContext(), attribute), PorterDuff.Mode.SRC_IN);
}
}
diff --git a/app/src/main/java/com/keylesspalace/tusky/ThreadAdapter.java b/app/src/main/java/com/keylesspalace/tusky/ThreadAdapter.java
index cbbd7e488..a53e2b669 100644
--- a/app/src/main/java/com/keylesspalace/tusky/ThreadAdapter.java
+++ b/app/src/main/java/com/keylesspalace/tusky/ThreadAdapter.java
@@ -23,12 +23,12 @@ import android.view.ViewGroup;
import java.util.ArrayList;
import java.util.List;
-public class ThreadAdapter extends RecyclerView.Adapter implements AdapterItemRemover {
+class ThreadAdapter extends RecyclerView.Adapter implements AdapterItemRemover {
private List statuses;
private StatusActionListener statusActionListener;
private int statusIndex;
- public ThreadAdapter(StatusActionListener listener) {
+ ThreadAdapter(StatusActionListener listener) {
this.statusActionListener = listener;
this.statuses = new ArrayList<>();
this.statusIndex = 0;
@@ -53,7 +53,7 @@ public class ThreadAdapter extends RecyclerView.Adapter implements AdapterItemRe
return statuses.size();
}
- public Status getItem(int position) {
+ Status getItem(int position) {
return statuses.get(position);
}
@@ -62,20 +62,20 @@ public class ThreadAdapter extends RecyclerView.Adapter implements AdapterItemRe
notifyItemRemoved(position);
}
- public int insertStatus(Status status) {
+ int insertStatus(Status status) {
int i = statusIndex;
statuses.add(i, status);
notifyItemInserted(i);
return i;
}
- public void addAncestors(List ancestors) {
+ void addAncestors(List ancestors) {
statusIndex = ancestors.size();
statuses.addAll(0, ancestors);
notifyItemRangeInserted(0, statusIndex);
}
- public void addDescendants(List descendants) {
+ void addDescendants(List descendants) {
int end = statuses.size();
statuses.addAll(descendants);
notifyItemRangeInserted(end, descendants.size());
diff --git a/app/src/main/java/com/keylesspalace/tusky/TimelineAdapter.java b/app/src/main/java/com/keylesspalace/tusky/TimelineAdapter.java
index 0fe360de8..f0598d893 100644
--- a/app/src/main/java/com/keylesspalace/tusky/TimelineAdapter.java
+++ b/app/src/main/java/com/keylesspalace/tusky/TimelineAdapter.java
@@ -24,7 +24,7 @@ import android.view.ViewGroup;
import java.util.ArrayList;
import java.util.List;
-public class TimelineAdapter extends RecyclerView.Adapter implements AdapterItemRemover {
+class TimelineAdapter extends RecyclerView.Adapter implements AdapterItemRemover {
private static final int VIEW_TYPE_STATUS = 0;
private static final int VIEW_TYPE_FOOTER = 1;
@@ -33,7 +33,7 @@ public class TimelineAdapter extends RecyclerView.Adapter implements AdapterItem
private FooterActionListener footerListener;
private FooterViewHolder.State footerState;
- public TimelineAdapter(StatusActionListener statusListener,
+ TimelineAdapter(StatusActionListener statusListener,
FooterActionListener footerListener) {
super();
statuses = new ArrayList<>();
@@ -88,7 +88,7 @@ public class TimelineAdapter extends RecyclerView.Adapter implements AdapterItem
}
}
- public int update(List newStatuses) {
+ int update(List newStatuses) {
int scrollToPosition;
if (statuses == null || statuses.isEmpty()) {
statuses = newStatuses;
@@ -107,7 +107,7 @@ public class TimelineAdapter extends RecyclerView.Adapter implements AdapterItem
return scrollToPosition;
}
- public void addItems(List newStatuses) {
+ void addItems(List newStatuses) {
int end = statuses.size();
statuses.addAll(newStatuses);
notifyItemRangeInserted(end, newStatuses.size());
@@ -118,14 +118,14 @@ public class TimelineAdapter extends RecyclerView.Adapter implements AdapterItem
notifyItemRemoved(position);
}
- public @Nullable Status getItem(int position) {
+ @Nullable Status getItem(int position) {
if (position >= 0 && position < statuses.size()) {
return statuses.get(position);
}
return null;
}
- public void setFooterState(FooterViewHolder.State state) {
+ void setFooterState(FooterViewHolder.State state) {
footerState = state;
}
}
diff --git a/app/src/main/java/com/keylesspalace/tusky/TimelineFragment.java b/app/src/main/java/com/keylesspalace/tusky/TimelineFragment.java
index 0c2d6983c..f4e48da4d 100644
--- a/app/src/main/java/com/keylesspalace/tusky/TimelineFragment.java
+++ b/app/src/main/java/com/keylesspalace/tusky/TimelineFragment.java
@@ -314,8 +314,11 @@ public class TimelineFragment extends SFragment implements
public void onViewAccount(int position) {
Status status = adapter.getItem(position);
- String id = status.getAccountId();
- String username = status.getUsername();
- super.viewAccount(id, username);
+ Assert.expect(status != null);
+ if (status != null) {
+ String id = status.getAccountId();
+ String username = status.getUsername();
+ super.viewAccount(id, username);
+ }
}
}
diff --git a/app/src/main/java/com/keylesspalace/tusky/TimelinePagerAdapter.java b/app/src/main/java/com/keylesspalace/tusky/TimelinePagerAdapter.java
index fdea632bf..7cf0642d1 100644
--- a/app/src/main/java/com/keylesspalace/tusky/TimelinePagerAdapter.java
+++ b/app/src/main/java/com/keylesspalace/tusky/TimelinePagerAdapter.java
@@ -15,24 +15,18 @@
package com.keylesspalace.tusky;
-import android.content.Context;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.widget.TextView;
-public class TimelinePagerAdapter extends FragmentPagerAdapter {
+class TimelinePagerAdapter extends FragmentPagerAdapter {
private String[] pageTitles;
- private Context context;
- public TimelinePagerAdapter(FragmentManager manager, Context context) {
+ TimelinePagerAdapter(FragmentManager manager) {
super(manager);
- this.context = context;
}
- public void setPageTitles(String[] titles) {
+ void setPageTitles(String[] titles) {
pageTitles = titles;
}
diff --git a/app/src/main/java/com/keylesspalace/tusky/ViewThreadFragment.java b/app/src/main/java/com/keylesspalace/tusky/ViewThreadFragment.java
index 72b77de1a..d3aeebb38 100644
--- a/app/src/main/java/com/keylesspalace/tusky/ViewThreadFragment.java
+++ b/app/src/main/java/com/keylesspalace/tusky/ViewThreadFragment.java
@@ -36,6 +36,8 @@ import org.json.JSONObject;
import java.util.List;
public class ViewThreadFragment extends SFragment implements StatusActionListener {
+ private static final String TAG = "ViewThread"; // logging tag
+
private RecyclerView recyclerView;
private ThreadAdapter adapter;
@@ -113,8 +115,8 @@ public class ViewThreadFragment extends SFragment implements StatusActionListene
}
private void onThreadRequestFailure() {
+ Log.e(TAG, "The request to fetch the thread has failed.");
//TODO: no
- assert(false);
}
public void onReply(int position) {
diff --git a/app/src/main/java/com/keylesspalace/tusky/VolleySingleton.java b/app/src/main/java/com/keylesspalace/tusky/VolleySingleton.java
index c0bb215e9..7ef7ee948 100644
--- a/app/src/main/java/com/keylesspalace/tusky/VolleySingleton.java
+++ b/app/src/main/java/com/keylesspalace/tusky/VolleySingleton.java
@@ -56,7 +56,7 @@ public class VolleySingleton {
return instance;
}
- public RequestQueue getRequestQueue() {
+ private RequestQueue getRequestQueue() {
if (requestQueue == null) {
/* getApplicationContext() is key, it keeps you from leaking the
* Activity or BroadcastReceiver if someone passes one in. */
@@ -65,15 +65,15 @@ public class VolleySingleton {
return requestQueue;
}
- public void addToRequestQueue(Request request) {
+ void addToRequestQueue(Request request) {
getRequestQueue().add(request);
}
- public void cancelAll(String tag) {
+ void cancelAll(String tag) {
getRequestQueue().cancelAll(tag);
}
- public ImageLoader getImageLoader() {
+ ImageLoader getImageLoader() {
return imageLoader;
}
}