diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index fc1c151dc..058d165b3 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -16,10 +16,11 @@ android:theme="@style/AppTheme" android:name=".TuskyApplication"> - + - diff --git a/app/src/main/java/com/keylesspalace/tusky/SplashActivity.java b/app/src/main/java/com/keylesspalace/tusky/SplashActivity.java index 96c766171..9e1b732f8 100644 --- a/app/src/main/java/com/keylesspalace/tusky/SplashActivity.java +++ b/app/src/main/java/com/keylesspalace/tusky/SplashActivity.java @@ -19,28 +19,13 @@ import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.os.Bundle; -import android.os.Handler; -import android.preference.PreferenceManager; import android.support.v7.app.AppCompatActivity; -import android.view.Window; -import android.view.WindowManager; public class SplashActivity extends AppCompatActivity { - private static final int SPLASH_TIME_OUT = 2000; - @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - if (PreferenceManager.getDefaultSharedPreferences(this).getBoolean("lightTheme", false)) { - setTheme(R.style.AppTheme_Light); - } - - requestWindowFeature(Window.FEATURE_NO_TITLE); - getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); - - setContentView(R.layout.activity_splash); - /* Determine whether the user is currently logged in, and if so go ahead and load the * timeline. Otherwise, start the activity_login screen. */ SharedPreferences preferences = getSharedPreferences( @@ -48,20 +33,13 @@ public class SplashActivity extends AppCompatActivity { String domain = preferences.getString("domain", null); String accessToken = preferences.getString("accessToken", null); - final Intent intent; - + Intent intent; if (domain != null && accessToken != null) { intent = new Intent(this, MainActivity.class); } else { intent = new Intent(this, LoginActivity.class); } - - new Handler().postDelayed(new Runnable() { - @Override - public void run() { - startActivity(intent); - finish(); - } - }, SPLASH_TIME_OUT); + startActivity(intent); + finish(); } } diff --git a/app/src/main/java/com/keylesspalace/tusky/fragment/AccountListFragment.java b/app/src/main/java/com/keylesspalace/tusky/fragment/AccountListFragment.java index df2f57034..eed0d72a1 100644 --- a/app/src/main/java/com/keylesspalace/tusky/fragment/AccountListFragment.java +++ b/app/src/main/java/com/keylesspalace/tusky/fragment/AccountListFragment.java @@ -128,16 +128,22 @@ public class AccountListFragment extends BaseFragment implements AccountActionLi } recyclerView.setAdapter(adapter); + return rootView; + } + + @Override + public void onActivityCreated(@Nullable Bundle savedInstanceState) { + super.onActivityCreated(savedInstanceState); + BaseActivity activity = (BaseActivity) getActivity(); + if (jumpToTopAllowed()) { - TabLayout layout = (TabLayout) getActivity().findViewById(R.id.tab_layout); + TabLayout layout = (TabLayout) activity.findViewById(R.id.tab_layout); onTabSelectedListener = new TabLayout.OnTabSelectedListener() { @Override - public void onTabSelected(TabLayout.Tab tab) { - } + public void onTabSelected(TabLayout.Tab tab) {} @Override - public void onTabUnselected(TabLayout.Tab tab) { - } + public void onTabUnselected(TabLayout.Tab tab) {} @Override public void onTabReselected(TabLayout.Tab tab) { @@ -147,16 +153,10 @@ public class AccountListFragment extends BaseFragment implements AccountActionLi layout.addOnTabSelectedListener(onTabSelectedListener); } - return rootView; - } - - @Override - public void onActivityCreated(@Nullable Bundle savedInstanceState) { - super.onActivityCreated(savedInstanceState); /* MastodonAPI on the base activity is only guaranteed to be initialised after the parent * activity is created, so everything needing to access the api object has to be delayed * until here. */ - api = ((BaseActivity) getActivity()).mastodonAPI; + api = activity.mastodonAPI; scrollListener = new EndlessOnScrollListener(layoutManager) { @Override public void onLoadMore(int page, int totalItemsCount, RecyclerView view) { diff --git a/app/src/main/java/com/keylesspalace/tusky/fragment/TimelineFragment.java b/app/src/main/java/com/keylesspalace/tusky/fragment/TimelineFragment.java index 4353c43fe..822059965 100644 --- a/app/src/main/java/com/keylesspalace/tusky/fragment/TimelineFragment.java +++ b/app/src/main/java/com/keylesspalace/tusky/fragment/TimelineFragment.java @@ -45,6 +45,7 @@ import java.util.List; import retrofit2.Call; import retrofit2.Callback; +import retrofit2.Response; public class TimelineFragment extends SFragment implements SwipeRefreshLayout.OnRefreshListener, @@ -53,8 +54,6 @@ public class TimelineFragment extends SFragment implements SharedPreferences.OnSharedPreferenceChangeListener { private static final String TAG = "Timeline"; // logging tag - private Call> listCall; - public enum Kind { HOME, PUBLIC_LOCAL, @@ -121,6 +120,23 @@ public class TimelineFragment extends SFragment implements adapter = new TimelineAdapter(this); recyclerView.setAdapter(adapter); + return rootView; + } + + private void onLoadMore(RecyclerView view) { + TimelineAdapter adapter = (TimelineAdapter) view.getAdapter(); + Status status = adapter.getItem(adapter.getItemCount() - 2); + if (status != null) { + sendFetchTimelineRequest(status.id, null); + } else { + sendFetchTimelineRequest(null, null); + } + } + + @Override + public void onActivityCreated(@Nullable Bundle savedInstanceState) { + super.onActivityCreated(savedInstanceState); + if (jumpToTopAllowed()) { TabLayout layout = (TabLayout) getActivity().findViewById(R.id.tab_layout); onTabSelectedListener = new TabLayout.OnTabSelectedListener() { @@ -138,23 +154,6 @@ public class TimelineFragment extends SFragment implements layout.addOnTabSelectedListener(onTabSelectedListener); } - return rootView; - } - - private void onLoadMore(RecyclerView view) { - TimelineAdapter adapter = (TimelineAdapter) view.getAdapter(); - Status status = adapter.getItem(adapter.getItemCount() - 2); - if (status != null) { - sendFetchTimelineRequest(status.id, null); - } else { - sendFetchTimelineRequest(); - } - } - - @Override - public void onActivityCreated(@Nullable Bundle savedInstanceState) { - super.onActivityCreated(savedInstanceState); - /* This is delayed until onActivityCreated solely because MainActivity.composeButton isn't * guaranteed to be set until then. */ if (composeButtonPresent()) { @@ -199,12 +198,6 @@ public class TimelineFragment extends SFragment implements recyclerView.addOnScrollListener(scrollListener); } - @Override - public void onDestroy() { - super.onDestroy(); - if (listCall != null) listCall.cancel(); - } - @Override public void onDestroyView() { if (jumpToTopAllowed()) { @@ -232,9 +225,9 @@ public class TimelineFragment extends SFragment implements adapter.setFooterState(TimelineAdapter.FooterState.LOADING); } - Callback> cb = new Callback>() { + Callback> callback = new Callback>() { @Override - public void onResponse(Call> call, retrofit2.Response> response) { + public void onResponse(Call> call, Response> response) { if (response.isSuccessful()) { onFetchTimelineSuccess(response.body(), fromId); } else { @@ -248,6 +241,7 @@ public class TimelineFragment extends SFragment implements } }; + Call> listCall; switch (kind) { default: case HOME: { @@ -276,11 +270,7 @@ public class TimelineFragment extends SFragment implements } } callList.add(listCall); - listCall.enqueue(cb); - } - - private void sendFetchTimelineRequest() { - sendFetchTimelineRequest(null, null); + listCall.enqueue(callback); } public void removePostsByUser(String accountId) { @@ -322,7 +312,7 @@ public class TimelineFragment extends SFragment implements if (status != null) { sendFetchTimelineRequest(null, status.id); } else { - sendFetchTimelineRequest(); + sendFetchTimelineRequest(null, null); } } diff --git a/app/src/main/res/drawable/background_splash.xml b/app/src/main/res/drawable/background_splash.xml new file mode 100644 index 000000000..548f87bad --- /dev/null +++ b/app/src/main/res/drawable/background_splash.xml @@ -0,0 +1,14 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/splash_pattern.png b/app/src/main/res/drawable/splash_pattern.png new file mode 100644 index 000000000..dcc6f6476 Binary files /dev/null and b/app/src/main/res/drawable/splash_pattern.png differ diff --git a/app/src/main/res/layout/activity_splash.xml b/app/src/main/res/layout/activity_splash.xml deleted file mode 100644 index 210118930..000000000 --- a/app/src/main/res/layout/activity_splash.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - \ No newline at end of file diff --git a/app/src/main/res/mipmap-hdpi/ic_logo.png b/app/src/main/res/mipmap-hdpi/ic_logo.png index 249bd6e17..d6eda0b2a 100644 Binary files a/app/src/main/res/mipmap-hdpi/ic_logo.png and b/app/src/main/res/mipmap-hdpi/ic_logo.png differ diff --git a/app/src/main/res/mipmap-ldpi/ic_logo.png b/app/src/main/res/mipmap-ldpi/ic_logo.png index 4f6885797..200de0489 100644 Binary files a/app/src/main/res/mipmap-ldpi/ic_logo.png and b/app/src/main/res/mipmap-ldpi/ic_logo.png differ diff --git a/app/src/main/res/mipmap-mdpi/ic_logo.png b/app/src/main/res/mipmap-mdpi/ic_logo.png index 579902fbe..683db8b41 100644 Binary files a/app/src/main/res/mipmap-mdpi/ic_logo.png and b/app/src/main/res/mipmap-mdpi/ic_logo.png differ diff --git a/app/src/main/res/mipmap-xhdpi/ic_logo.png b/app/src/main/res/mipmap-xhdpi/ic_logo.png index 0fb7aa16b..ce42064e3 100644 Binary files a/app/src/main/res/mipmap-xhdpi/ic_logo.png and b/app/src/main/res/mipmap-xhdpi/ic_logo.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_logo.png b/app/src/main/res/mipmap-xxhdpi/ic_logo.png index ff9e734e6..a514b484c 100644 Binary files a/app/src/main/res/mipmap-xxhdpi/ic_logo.png and b/app/src/main/res/mipmap-xxhdpi/ic_logo.png differ diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_logo.png b/app/src/main/res/mipmap-xxxhdpi/ic_logo.png index e9a98a481..b1dcf4b64 100644 Binary files a/app/src/main/res/mipmap-xxxhdpi/ic_logo.png and b/app/src/main/res/mipmap-xxxhdpi/ic_logo.png differ diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 0256ee020..91a842e9c 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -14,6 +14,11 @@ 0dp @android:color/black + +