Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
74 changes: 44 additions & 30 deletions src/main/java/org/amahi/anywhere/fragment/NavigationFragment.java
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@
import android.accounts.AuthenticatorException;
import android.accounts.OnAccountsUpdateListener;
import android.accounts.OperationCanceledException;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
Expand Down Expand Up @@ -90,10 +92,22 @@ public class NavigationFragment extends Fragment implements AccountManagerCallba
ServerClient serverClient;
View view;
private Intent tvIntent;
private Context mContext;
private Activity mActivity;

private boolean areServersVisible;
private List<Server> serversList;

@Override
public void onAttach(Context context) {
super.onAttach(context);
mContext = context;

if (context instanceof Activity) {
mActivity = (Activity) context;
}
}

@Override
public View onCreateView(LayoutInflater layoutInflater, ViewGroup container, Bundle savedInstanceState) {
view = layoutInflater.inflate(R.layout.fragment_navigation, container, false);
Expand All @@ -117,7 +131,7 @@ public void onActivityCreated(Bundle savedInstanceState) {
}

private void setUpInjections() {
AmahiApplication.from(getActivity()).inject(this);
AmahiApplication.from(mActivity).inject(this);
}

private void setUpSettingsMenu() {
Expand All @@ -129,13 +143,13 @@ private void setUpAuthenticationListener() {
}

private AccountManager getAccountManager() {
return AccountManager.get(getActivity());
return AccountManager.get(mContext);
}

@Override
public void onAccountsUpdated(Account[] accounts) {

if (Preferences.getFirstRun(getContext())) {
if (Preferences.getFirstRun(mContext)) {
launchIntro();
}

Expand All @@ -145,8 +159,8 @@ public void onAccountsUpdated(Account[] accounts) {
}

private void launchIntro() {
startActivity(new Intent(getContext(), IntroductionActivity.class));
getActivity().finishAffinity();
startActivity(new Intent(mContext, IntroductionActivity.class));
mActivity.finishAffinity();
}

private void setUpContentRefreshing() {
Expand All @@ -159,7 +173,7 @@ private void setUpContentRefreshing() {
android.R.color.holo_red_light);

refreshLayout.setOnRefreshListener(() -> {
ViewDirector.of(getActivity(), R.id.animator_content).show(R.id.empty_view);
ViewDirector.of(mActivity, R.id.animator_content).show(R.id.empty_view);
setUpServers(new Bundle());
});
}
Expand All @@ -169,13 +183,13 @@ private List<Account> getAccounts() {
}

private void setUpAccount() {
getAccountManager().addAccount(AmahiAccount.TYPE, AmahiAccount.TYPE_TOKEN, null, null, getActivity(), this, null);
getAccountManager().addAccount(AmahiAccount.TYPE, AmahiAccount.TYPE_TOKEN, null, null, mActivity, this, null);
}

private void setUpAuthenticationToken() {
Account account = getAccounts().get(0);

getAccountManager().getAuthToken(account, AmahiAccount.TYPE, null, getActivity(), this, null);
getAccountManager().getAuthToken(account, AmahiAccount.TYPE, null, mActivity, this, null);
}

@Override
Expand All @@ -198,7 +212,7 @@ public void run(AccountManagerFuture<Bundle> accountManagerFuture) {
}

private void tearDownActivity() {
getActivity().finish();
mActivity.finish();
}

private void setUpServers(Bundle state) {
Expand Down Expand Up @@ -236,11 +250,11 @@ private void setUpServersState(Bundle state) {
}

private void setUpServersContent(List<Server> servers) {
if (!CheckTV.isATV(getContext())) {
if (!CheckTV.isATV(mContext)) {
replaceServersList(filterActiveServers(servers));
} else {
serversList = filterActiveServers(servers);
String serverName = Preferences.getPreference(getContext()).getString(getString(R.string.pref_server_select_key), serversList.get(0).getName());
String serverName = Preferences.getPreference(mContext).getString(getString(R.string.pref_server_select_key), serversList.get(0).getName());

if (serversList.get(0).getName().matches(serverName))
replaceServersList(serversList);
Expand All @@ -258,7 +272,7 @@ private void replaceServersList(List<Server> servers) {
}

private int findTheServer(List<Server> serverList) {
String serverName = Preferences.getPreference(getContext()).getString(getString(R.string.pref_server_select_key), serverList.get(0).getName());
String serverName = Preferences.getPreference(mContext).getString(getString(R.string.pref_server_select_key), serverList.get(0).getName());

for (int i = 0; i < serverList.size(); i++) {
if (serverName.matches(serverList.get(i).getName()))
Expand Down Expand Up @@ -299,7 +313,7 @@ private void setUpAuthentication() {
if (getAccounts().isEmpty()) {
setUpAccount();
} else {
if (Preferences.getFirstRun(getActivity()) && !CheckTV.isATV(getActivity())) {
if (Preferences.getFirstRun(mActivity) && !CheckTV.isATV(mActivity)) {
launchIntro();
}
setUpAuthenticationToken();
Expand All @@ -317,7 +331,7 @@ private void setUpServers(String authenticationToken) {
}

private void setUpServersContent(String authenticationToken) {
amahiClient.getServers(getContext(), authenticationToken);
amahiClient.getServers(mContext, authenticationToken);
}

@Subscribe
Expand All @@ -330,7 +344,7 @@ public void onServersLoaded(ServersLoadedEvent event) {

showContent();

tvIntent = new Intent(getContext(), MainTVActivity.class);
tvIntent = new Intent(mContext, MainTVActivity.class);

tvIntent.putParcelableArrayListExtra(getString(R.string.intent_servers), new ArrayList<>(filterActiveServers(event.getServers())));
}
Expand All @@ -347,7 +361,7 @@ private void setUpNavigation() {

private void setUpNavigationList() {
getNavigationListView().setVisibility(View.VISIBLE);
getNavigationListView().setLayoutManager(new LinearLayoutManager(getContext(), LinearLayoutManager.VERTICAL, false));
getNavigationListView().setLayoutManager(new LinearLayoutManager(mContext, LinearLayoutManager.VERTICAL, false));

if (!areServersVisible) {
showNavigationItems();
Expand All @@ -371,14 +385,14 @@ private void setUpNavigationAdapter() {
//Setting the layout of a vertical list dynamically.

if (!serverClient.isConnected()) {
getNavigationListView().setAdapter(NavigationDrawerAdapter.newRemoteAdapter(getActivity()));
getNavigationListView().setAdapter(NavigationDrawerAdapter.newRemoteAdapter(mActivity));
return;
}

if (serverClient.isConnectedLocal()) {
getNavigationListView().setAdapter(NavigationDrawerAdapter.newLocalAdapter(getActivity()));
getNavigationListView().setAdapter(NavigationDrawerAdapter.newLocalAdapter(mActivity));
} else {
getNavigationListView().setAdapter(NavigationDrawerAdapter.newRemoteAdapter(getActivity()));
getNavigationListView().setAdapter(NavigationDrawerAdapter.newRemoteAdapter(mActivity));
}
}

Expand All @@ -403,7 +417,7 @@ private TextView getServerNameTextView() {
}

private void setUpNavigationListener() {
getNavigationListView().addOnItemTouchListener(new RecyclerItemClickListener(getContext(), (view, position) -> {
getNavigationListView().addOnItemTouchListener(new RecyclerItemClickListener(mContext, (view, position) -> {
getNavigationListView().dispatchSetActivated(false);

view.setActivated(true);
Expand Down Expand Up @@ -531,11 +545,11 @@ private void showOfflineNavigation() {
areServersVisible = false;
setUpNavigationList();
getLinearLayoutSelectedServer().setOnClickListener((v) -> {
Toast.makeText(getContext(), R.string.message_connection_error, Toast.LENGTH_SHORT).show();
Toast.makeText(mContext, R.string.message_connection_error, Toast.LENGTH_SHORT).show();
});

showContent();
Toast.makeText(getContext(), R.string.message_connection_error, Toast.LENGTH_SHORT).show();
Toast.makeText(mContext, R.string.message_connection_error, Toast.LENGTH_SHORT).show();
}

@Subscribe
Expand All @@ -547,16 +561,16 @@ private void setUpServerConnection(Server server) {
if (serverClient.isConnected(server)) {
setUpServerConnection();
} else {
serverClient.connect(getContext(), server);
serverClient.connect(mContext, server);
}
}

private void storeServerName(Server server) {
Preferences.setServerName(getContext(), server.getName());
Preferences.setServerName(mContext, server.getName());
}

private String getServerName() {
return Preferences.getServerName(getContext());
return Preferences.getServerName(mContext);
}

@Subscribe
Expand All @@ -565,7 +579,7 @@ public void onServerConnected(ServerConnectedEvent event) {
setUpNavigationList();
showContent();

if (CheckTV.isATV(getContext())) launchTV();
if (CheckTV.isATV(mContext)) launchTV();
}

private void setUpServerConnection() {
Expand All @@ -586,20 +600,20 @@ private void launchTV() {
}

private boolean isConnectionAvailable() {
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getActivity());
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(mActivity);

return preferences.contains(getString(R.string.preference_key_server_connection));
}

private boolean isConnectionAuto() {
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getActivity());
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(mActivity);
String preferenceConnection = preferences.getString(getString(R.string.preference_key_server_connection), null);

return preferenceConnection.equals(getString(R.string.preference_key_server_connection_auto));
}

private boolean isConnectionLocal() {
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getActivity());
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(mActivity);
String preferenceConnection = preferences.getString(getString(R.string.preference_key_server_connection), null);

return preferenceConnection.equals(getString(R.string.preference_key_server_connection_local));
Expand Down Expand Up @@ -686,7 +700,7 @@ private void tearDownAuthenticationListener() {
public void showServers() {
areServersVisible = true;
getNavigationListView().setAdapter(null);
getNavigationListView().setAdapter(new NavigationDrawerAdapter(getContext(), getServerNames()));
getNavigationListView().setAdapter(new NavigationDrawerAdapter(mContext, getServerNames()));
getServerNameTextView().setCompoundDrawablesWithIntrinsicBounds(
0, 0, R.drawable.nav_arrow_up, 0);
}
Expand Down